38.23529411764706% Complete

طراحی ساختار دیسک

یکی از وظایف اصلی و دلیل وجودی رایانه ها مدیریت داده ها است. داده هایی که هر روز رو به افزایش است. هر کدام از سیستم عامل ها این داده ها را در ساختار متفاوتی طبقه بندی می‌کند و در اختیار کاربر قرار می دهد. در لینوکس این ساختار «فایل سیستم سلسله مراتبی» یا «Filesysetem Hierarchy Standard» خوانده می‌شود.

فایل سیستم

کلمه فایل سیستم به دو مفهموم متفاوت ولی نزدیک به هم اشاره دارد

  • ساختار طراحی شده برای طبقه بندی و دسترسی به فایل‌ ها و پوشه ها. در لینوکس برای این منظور فایل سیستم سلسله مراتبی تعریف شده است.
  • ساختمان داده لازم برای ذخیره سازی داده ها بر روی دیسک سخت. مانند، ntfs، fat در سیستم عامل ویندوز و ext2، ext3، ext4، xfs، btrfs، reiserfs و ... در لینوکس

فایل سیستم سلسله مراتبی

سیستم عامل لینوکس و همه سیستم عامل های خانواده یونیکس فایل‌ها و پوشه های خود را در یک ساختار درختی مدیریت می کنند. ریشه این درخت از پوشه ای به نام «ریشه» یا «root» که با «/» نام گذاری شده است، شروع می شود.

پوشه root فایل‌ ها و پوشه های دیگر را در خود جای داده است. این پوشه ها در سند استانداری در این آدرس در دسترس است. پوشه‌هایی هستند که در سیستم عامل های جدید پیش بینی شده اند و در این استاندارد پوشش داده نشده است. از این استاندارد تنها به عنوان یک مرجع استفاده کنید.

معرفی پوشه ها

boot/ این پوشه محل فایل‌های مورد نیاز در زمان بوت سیستم است. مانند هسته سیستم عامل، فایل‌های مرتبط با بوت لودر

bin/ در این پوشه فایل‌های اجرایی در دسترس کاربران و مدیر سیستم قرار می گیرد. این پوشه یکی از پوشه‌های اساسی است که باید در حالت بازیابی و بوت سیستم در دسترس باشد

sbin/ ابزارهایی که مدیر سیستم از آن ها استفاده می کند در مسیرهای sbin/، usr/sbin/ و usr/local/sbin/ قرار دارد. پوشه sbin/ مانند bin/ جزو پوشه‌های اساسی سیتم است

etc/ این پوشه شامل فایل‌های پیکربندی است. تمامی سرویس‌های سیستم و فایل پیکربندی بسیاری از نرم افزارهای در این مسیر قرار دارد. این مسیر تنها توسط کاربر مدیر امکان تغییر دارد

home/ در این پوشه هر کاربر یک پوشه به نام خود دارد. مانند home/behrad/ که مربوط به کاربر ب behrad است. تمام کاربران به غیر از کاربر مدیر تنها به پوشه خانگی خود دسترسی ویرایش و تغییر دارد.

var/ این پوشه شامل داده هایی است که دائما تغییر می کنند. مانند پوشه var/log/ که فایل‌های حاوی پیغام های سیستم و سرویس ها یا همان log ها را در بردارد

usr/ یکی از پوشه‌های اساسی سیستم است. این پوشه شامل داده های فقط خواندنی و مشترک کاربران و نرم افزارهاست. خود این پوشه حاوی پوشه‌های مهم دیگری است. usr/local/ مدیر سیستم نرم افزارهایی به صورت دستی و بدون مدیر بسته‌های سیستم عامل نصب می کند در این مسیر قرار می دهد. این مسیر در هنگام به روزرسانی سیستم تغییر نمی کند. usr/share/ این مسیر شامل پوشه های زیادی مانند man و doc است. این پوشه‌ها مستندات مرتبط با نرم افزار ها و راهنمای استفاده از آنها است.

media/ این مسیر محلی است که شما به رسانه‌های ذخیره سازی قابل حمل خود دسترسی خواهید داشت. در صورتی که میزکار گرافیکی نصب کرده باشید، شناسایی اضافه کردن رسانه شما به این پوشه به صورت خودکار انجام می گردد. در غیر این صورت باید به صورت دستی انجام گردد. در محیط‌های گرافیکی زمانی که شما رسانه خود را به سیستم متصل می کنید، یکی پوشه با نام آن رسانه در این مسیر ساخته می شود و شما می توانید با وارد شدن به این پوشه جدید به محتویات رسانه خود دسترسی داشته باشد. این رسانه می تواند سی دی ، دی وی دی و یا یک دیسک یو اس بی باشد.

به این عمل mount کردن می گویند که در ادامه به طور کامل توضیح داده خواهد شد.

mnt/ این پوشه محلی است که شما به رسانه های غیر قابل حمل خود دسترسی دارید. مانند پارتیشن یا دیسک سخت دیگر که مربوط به سیستم عمل نیستند. شما بایدبه ازای هر رسانه یک پوشه در این مسیر بسازید و رسانه خود را به اصطلاح به آن mount کنید. به مفهوم mount در ادامه خواهیم پرداخت

srv/ محل قرار گرفتن فایل هایی که توسط یک سرویس استفاده می شود. مانند ftp

dev/ این پوشه یک پوشه مجازی است و در زمان بوت سیستم توسط سیستم عامل در آن محتوا قرار می گیرد. محتوای آن نام تجهیزات سخت افزاری است که سیستم شناسایی کرده است. مانند دیسک سخت و پارتیشن های آن.

proc/ این پوشه نیز یک پوشه مجازی است و مقادیر موجود در آن در حافظه RAM نگهداری می شود. این پوشه مربوط به هسته سیستم عامل است. در این پوشه بخش‌ های مختلف مانند پروسه های اجرا شده در سیستم و اطلاعات مربوط به آن ها و بخش های مختلف دیگر قرار دارد. محتوای این پوشه قابل تغییر نیست، به غیر یک پوشه به نام sys.

sys/ این پوشه نیز یک فایل سیستم مجازی دیگر است. در این پوشه اطلاعات زیادی از زیر بخش‌ های هسته و سخت افزارها در دسترس است.

mount کردن

سوال اولی که به احتمال زیاد برای شما مطرح می شود این است که این ساختار به چه شکل در دیسک سخت قرار می گیرد؟ آیا همه این ساختار در یک پارتیشن است یا می تواند در چند پارتیشن قرار بگیرد؟

برای فهمیدن این موضوع باید با مفهومی به نام mount کردن آشنا شوید. در لینوکس، یونیکس و سیستم عامل‌ های شبه یونیکس دیگر، برای آنکه به محتوای یک رسانه دسترسی داشته باشید باید آن را به یک پوشه نگاشت کنید. این عمل را mount یا متصل کردن و به این پوشه mount point می گویند. شما بعد از mount کردن یک پوشه به یک رسانه یا پارتیشن با ورود به آن پوشه، به محتوای آن رسانه دسترسی خواهید داشت. این پوشه می تواند در هر جای «فایل سیستم سلسله مراتبی» می تواند باشد. در حقیقت «/» نیز به یک پارتیشن mount شده است.

سوال بعدی که ممکن است پیش بیاد آن است که برای نصب یک لینوکس به چند پارتیشن نیاز است؟

برای نصب لینوکس در قدم اول نیاز به یک پارتیشن برای قرار گرفتن «/» دارید. علاوه بر پارتیشن «/» شما به یک فضای دیگر به نام swap نیاز دارید. مقدار swap باید یک یا دو برابر فضای حافظه RAM شما باشد. این فضا به عنوان حافظه مجازی مورد استفاده قرار می گیرد. در صورتی که سیستم عامل با کمبود حافظه RAM مواجه شود، داده هایی که کمتر مورد استفاده قرار می گیرند را از RAM به SWAP منتقل می کند و از SWAP به عنوان فضای کمکی استفاده می کند.

علاوه بر آن شما می توانید در صورت نیاز خود بخش‌ هایی از «فایل سیستم سلسله مراتبی» را با توجه به نیاز خود در پارتیشنی جدا mount کنید. برای مثال در صورتی که از لینوکس به عنوان سیستم عامل کاربری خود استفاده می کنید، می توانید پوشه home/ را در پارتیشن جدا با فضایی بیشتر mount کنید. مزیت این کار این است که در صورتی که شما تصمیم به نصب دوباره یا بروزرسانی سیستم عامل خود گرفتید می توانید پوشه home/ را که محل فایل‌ های شخصی شما است، دست نخورده نگه دارید.

این موضوع برای بقیه پارتیشن با توجه به نیاز شما می تواند اتفاق بیافتد. بخش‌ هایی مثل boot، var و یا usr ممکن است در پارتیشن جدایی mount شوند.

طراحی ساختار دیسک سخت

سیستمی را با حافظه ۴ گیگابایت حافظه RAM و ۸۰ گیگابایت دیست سخت در نظر بگیرید. به همراه هم دیسک سخت را مناسب یک سیستم کاربری پیکربندی می کنیم. قصد داریم یک لینوکس دبیان بر روی این سیستم نصب کنیم.

  • / یا همان root اولین پارتیشن مربوط به پارتیشن «/» است. برای این پارتیشن حداقل فضایی به اندازه ۱۰ گیگابایت نیاز است. در صورتی که با آینده نگری بخواهیم فضای مورد نظر را انتخاب کنیم، می توانیم تا ۳۰ گیگابایت را به این mount point اختصاص دهیم. ما در این جا ۱۵ گیگ به آن اختصاص می دهیم.

  • swap برای حافظه مجازی نیز فضایی برابر RAM یعنی ۴ گیگابایت به آن اختصاص می دهیم.

  • home/ فضای باقی مانده را که تقریبا برابر ۴۶ گیگابایت هست به پوشه home اختصاص می دهیم.

این تقسیم بندی را می توانید در هنگام نصب لینوکس مورد نظرتون انجام دهید.

نام گذاری رسانه های ذخیره سازی

در لینوکس رسانه های ذخیره سازی را می توانید در پوشه dev/ پیدا کنید. در این پوشه به ازاری هر رسانه ذخیره سازی و هر پارتیشن یک فایل وجود دارد.

dev/sdx/ این نام رسانه x ام از رسانه های متصل به سیستم است. تمامی رسانه های ذخیره سازی با sd که مخفف scsi disk است شروع می شوند. دیسک اول sda، دیسک دوم sdb و به همین شکل ادامه دارد.

dev/sdxy به ازای هر پارتیشن از دیسک یک فایل جداگانه وجوددارد. dev/sda1/ پارتیشن اول از ها دیسک اول است. شماره های ۱ الی ۴ مربوط به پارتیشن های primary و اعداد ۵ به بعد مربوط به پارتیشن های logical است. البته در مورد سیستم های جدید تر که ساختار پارتیشن ها به جای مدل MSDOS-Compatible قدیمی از GPT استفاده می کنند، از ۱ الی ۱۲۸ مربوط به پارتیشن primary است. پارتیشن مدل GPT در سیستم هایی که UEFI جایگزین سیستم BIOS شده است قابل استفاده است. برای مطالعه بیشتر در این مورد به فصل های ساخت پارتیشن و فایل سیستم و نصب یک مدیر بوت مراجعه کنید.

Logical Volume Management

زمانی را تصور کنید، فضای پارتیشن مربوط به home شما پر شده است. دیسک جدیدی تهیه می کنید و به سیستم خود متصل می کنید. دیسک جدید پارتیشن های جدایی دارد و شما باید آنها را به صورت مجزا mount کنید. مشکل از آنجا آغاز می شود که شما فضای مجزایی در دسترس دارید و اگر نیاز داشته باشید تا در همان mount point قبلی که پوشه home است، فضای بیشتری در اختیار داشته باشید این امکان نیست و فضا به صورت یکپارچه در دسترس نیست.

برای این مشکل راه حلی به نام LVM یا Logical Volume Management وجود دارد. LVM یک نگاه سطح بالا به دیسک سخت است نسبت به روش سنتی است. در این روش شما اجازه این را پیدا می کنید، تا پارتیشن های مجازی داشته باشید که قابلیت تغییر اندازه پویا را داشته باشند. درهر زمان می توانید اندازه این پارتیشن ها کوچک یا بزرگ کنید، می توانید از دو فضای خالی در دو دیسک متفاوت یک فضای یکپارچه ایجاد کنید.

      sda1   sdc1      (PV:s on partitions or whole disks)
         \   /
          \ /
         diskvg        (VG)
         /  |  \
        /   |   \      
    usrlv rootlv varlv (LV:s)
     |      |      |
   ext2  reiserfs  xfs (filesystems)
38.23529411764706% Complete

کامپیوترها، نرم افزارها و سیستم عامل ها کامپیوتر چیست؟ بخش‌های مختلف یک کامپیوتر نرم افزار سیستم عامل‌های مهم لینوکس و نرم افزار آزاد لینوکس: داستان یک موفقیت آزاد یا متن باز نرم افزارهای آزاد مهم توزیع های لینوکس مهم نصب یک توزیع معماری سیستم استخراج و پیکربندی تنظیمات سخت افزار روند بوت سیستم مدیریت Runlevelها و shutdown و reboot نصب لینوکس و مدیریت بسته ها

طراحی ساختار دیسک

نصب یک مدیر بوت مدیریت Share library ها مدیریت بسته‌های نرم افزاری در دبیان استفاده از RPM و YUM دستورات گنو و یونیکس کار با خط فرمان پردازش جریان‌های داده باکمک فیلتر ها مدیریت فایل‌ها - مقدماتی استفاده از stream‌ها, pipe‌ها و redirect ایجاد، رصد و حذف یک فرایند ویرایش اولویت اجرای فرایندها جستجوی فایل‌های متنی توسط regular expressionها ویرایش فایل با کمک vi تجهیزات، فایل سیستم های لینوکسی و فایل سیستم سلسله مراتبی ساخت پارتیشن و فایل سیستم نگهداری از یکپارچگی فایل سیستم کنترل mount و unmount شدن فایل سیستم سهمیه بندی فضای دیسک یا quota مدیریت مجوزهاو مالکیت‌ فایل ساخت و تغییر hard و symbolic link جستجوی فایل سیستم و محل درست فایل‌ها راهنمای استفاده از Docpad نصب و راه اندازی اولیه نحوه تهیه مستندات