علی آجریان
علی آجریان
خواندن ۳ دقیقه·۵ سال پیش

فایل سیستم

فایل سیستم در واقع مکانیزم یا سیستم سامان دهی و مدیریت فایل های مختلف در یک سیستم عامل است. اگر کاربر ویندوزی باشید وقتی کلمه ی فایل را می شنوید به طور ناخودآگاه به یاد داده ها و برنامه هایتان می افتید. به عبارت دیگر از نظر یک کاربر ویندوزی یک فایل، محلی برای ذخیره سازی داده یا برنامه های اجرایی است. اما در لینوکس داستان بسیار مهیج تر و عجیب تر است. در لینوکس همه چیز اعم از داده، برنامه، فولدر و حتی سخت افزارهای مختلف به صورت فایل مدیریت و شناخته می شود. از این رو طبیعی است که فایل سیستم لینوکس اندکی متفاوت تر و پیچیده تر از فایل سیستم ویندوز باشد. در واقع از آنجایی که در لینوکس هر نوع فایل وظیفه مندی کاملا مستقل و مختص به خود را دارد، باید فایل سیستم های متفاوت و مختلفی وجود داشته باشد که هریک بتواند یکی از این وظیفه مندی ها را پشتیبانی کند.

file system tree
file system tree

درخت فایل سیستم

همان طور که گفتیم لینوکس انواع مختلفی از فایل سیستم ها با ویژگی های متفاوت و مسئولیت های متفاوت دارد. این فایل سیستم ها در قالبت یک درخت پویا پیکربندی می شوند. به این درخت در اصطلاح ((درخت فایل سیستم یا به اختصار فایل سیستم)) گفته می شود. طبیعی است که به علت پویا بودن درخت فایل سیستم می توان فایل سیستم های مختلف را به آن افزود یا از آن کاست. به عمل افزودن فایل سیستم جدید به این درخت در اصطلاح mounting گفته می شود. به محل وصل شدن یک فایل سیستم خاص به درخت فایل سیستم نیز mount point می گوییم. طبیعی است که عمل جدا کردن یک فایل سیستم از درخت فایل سیستم را نیز unmounting بنامیم!

انواع فایل سیستم در لینوکس:

لینوکس انواع مختلفی از فایل سیستم را به منظورهای متفاوتی ابداع کرده است. برخی از آن ها برای شما بسیار آشنا هستند. نظیر ext2 و ext3 و ext4. احتمالا شما با این فایل سیستم ها در حین نصب لینوکس و پارتیشن بندی هارد دیسکتان مواجه شده اید و به احتمال زیاد می دانید که فایل سیستم های دیگری نظیر dosfs و fat و ntfs نیز توسط لینوکس پشتیبانی می شوند. از آنجایی که مواجهه ی کاربران با فایل سیستم ها عمدتا در حین پارتیشن بندی هارد دیسک صورت می گیرد ممکن است این برداشت اشتباه صورت بگیرد که فایل سیستم ها مربوط به هارد دیسک هستند. اما همان طور که گفته شد در لینوکس سخت افزار ها نیز فایل هستند پس طبیعی است که فایل سیستم مربوط به خود را داشته باشند. به هر یک از فایل های معادل یک سخت افزار خاص اصطلاحا یک device file می گوییم. فایل سیستمی که device file ها را مدیریت می کند devtmpfs نام دارد و در مسیر /dev مانت می شود.

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

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

فایل سیستم های دیگری نظیر tmpfs نیز وجود دارد که کاربردهای متفاوتی دارد.

روت فایل سیستم:

همان طوری که گفته شد فایل سیستم های مختلف لینوکس به صورت یک درخت سامان دهی می شوند. از آنجایی که هر درختی یک راس دارد، این درخت نیز یک راس دارد که آن را با / می شناسیم. اصطلاحا به فایل سیستمی که در این محل یعنی راس درخت مانت می شود، ((روت فایل سیستم)) می گوییم. دقت کنید که می توان انواع مختلفی از فایل سیستم را به این نقطه مانت کرد. به طور خاص در مورد دسکتاپ شما پارتیشنی از هارد دیسکتان که سیستم عامل بر روی آن نصب شده است به این محل مانت شده است. اگر چه در سیستم های embedded می توان فایل سیستمی مثل tmpfs یا ramfs را به این محل متصل کرده و سرعت بوت سیستم را افزایش داد!

همچنین باید دقت کنید که آدرس root file system را باید به عنوان یک پارامتر به کرنل پاس کرد تا کرنل بتواند پس از راه اندازی سیستم و شروع پروسه ی init آن را در مسیر / مانت کند. عمل پاس کردن این آدرس توسط بوت لودر شما انجام می شود.

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