سیستم فایل هر کامپیوتر، امکان ذخیره سازی فایلها و اطلاعات را روی آن فراهم میسازد. هنگامی که از داخل برنامه واژه پرداز خود سندی را ذخیره میکنید، این سیستم فایل است که تعیین میکند سند چگونه و کجا ذخیره شود. ابزارهای ذخیره سازی مانند فلاپی دیسکها، دیسکهای سخت، درایوهای سی دی رام و غیره . تا قبل از اینکه سیستمعامل سیستم فایل را روی آنها تشکیل دهد، قابل استفاده نیستند. سیستم فایلهای گوناگونی برای سیستمعاملهای مبتنی بر یونیکس و لینوکس ارائه شدهاند که برخی از آنها عبارتند از ext2، ext3، xfs، reiserfsو غیره. این سیستم فایلها در جزئیات فنی دارای تفاوتهایی با هم هستند ولی از نظر ساختاری که ایجاد میکنند مشابه بوده و تفاوت چندانی باهم ندارند.
در این مقاله ما وارد جزئیات فنی هر نوع از سیستم فایلها نشده و تنها ساختار آنها را بررسی خواهیم کرد. سیستم فایل یا درخت؟ سیستم فایل سیستمعاملهای مبتنی بر یونیکس و لینوکس بصورت یک درخت وارونه پیاده سازی شده است. در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای A، Cو ... ندارید. تمام ابزارها و سیستم فایلها شاخههایی از این درخت وارونه هستند. مرکز این درخت ریشه یا rootنام دارد که بالترین سطح سیستم فایل را تشکیل میدهد. زیر ریشه، پوشههایی قرار دارند که سایر قسمتهای سیستم فایل را تشکیل میدهند که اکنون درباره آنها توضیح میدهم. سیستم فایل از تعداد زیادی پوشه تشکیل شدهاست که این پوشهها تقریبا در تمامی سیستمعاملهای مبتنی بر یونیکس و لینوکس مشترک هستند. اکنون به تشریح تک تک این شاخهها پرداخته و در میان آن توضیحات اضافه را به شما ارائه خواهم کرد. پارتیشنها در سیستم فایل سیستمعاملهای مبتنی بر لینوکس و یونیکس، دیسکهای سخت میتوانند پارتیشنهای متعددی داشته باشند. در این صورت هر پارتیشن دارای یک نقطه اتصال یا mount pointمیباشد که در آن نقطه به درخت سیستم فایل متصل میشود. مثل میتوانید اطلعات کاربران سیستم را در یک پارتیشن جداگانه ذخیره نموده و نقطه اتصال آنرا homeتعیین کنید که محل قرارگیری اطلعات کاربران است و به همین ترتیب. بخشهای درخت سیستم فایل اکنون به بررسی تک تک شاخههای سیستم فایل میپردازیم. توجه داشته باشید که دسترسی به اکثر این شاخهها فقط توسط کاربر ریشه امکان پذیر است. شاخه :binدر این شاخه، دستورات سیستمعامل که برای تمام کاربران قابل دستیابی هستند و برخی دستوراتمدیریتی سیستم قرار میگیرند. شاخه :bootاین شاخه که میتواند در یک پارتیشن جداگانه بوده و به پوشه bootمتصل شده باشد، حاویبرنامه راهنداز بوت سیستم عامل میباشد. مانند Grubو .Lilo شاخه :devمحل قرارگیری نقطه دسترسیهای ابزارهای سخت افزاری است. مثل تمام پورتها، پارتیشنها و...در اینجا دارای یک فایل هستند. برای مثال فایل 0 dev/fdنشاندهنده فلپی درایو سیستم است و به همین ترتیب. بسیاری از برنامههای کاربردی از این فایلهای دسترسی برای خواندن و نوشتن دادهها بر روی ابزار مورد نظرشان استفاده میکنند. مثل یک برنامه کاربردی فایل 0 dev/fdرا باز کرده و در آن مینویسد. در حقیقت اطلعات روی درایو فلپی و دیسکی که در آن قرار دارد، نوشته خواهد شد. -شاخه :etcدر این شاخه فایلهای پیکربندی برنامههای سرویس دهنده و برخی فایلهای سیستمی دیگر قرار میگیرند. مثل فایل پیکربندی سرویس دهنده وب آپاچی در سیستمهای دبیان در etc/apache/http.confقرار دارد و به همین ترتیب. شاخه :homeدر این شاخه دایرکتوریهای خانگی کاربران سیستم و اطلعات آنها قرار میگیرد. بهتر است اینشاخه در یک پارتیشن جداگانه قرار گرفته و متصل شود. این کار حفاظت از دادههای کاربران را بالتر خواهد برد. ضمنا در صورت نیاز به فرمت و نصب مجدد سیستم، اطلعات کاربران دست نخورده باقی مانده و پس از نصب مجدد، کلیه تنظیمات شخصی و اطلعات آنها بدون تغییر باقی خواهند ماند. شاخه :libاین شاخه همانطور که از نام آن پیداست، محل قرار گیری فایلهای کتابخانه برنامهها است. اینکتابخانهها توسط برنامههای کاربردی و ابزارهای برنامه نویسی بکار گرفته میشوند. شاخه :mntاین شاخه معمول دارای زیرشاخههایی مانند floppyو cdromبوده و محل اتصال سنتی درایوهایفلپی و CD-ROMمیباشد. همچنین پارتیشنها دیگر دیسک سخت را نیز میتوانید در این شاخه متصل نمایید. البته اجباری به این کار وجود ندارد. مثل در سیستمهای مبتنی بر دبیان، درایوهای فلپی و CDROMدر شاخههای floppy و cdromکه در زیر ریشه قرار دارند، متصل میشوند. اتصال و برداشتن اتصال پارتیشنها و درایوها با استفاده از دستور mountصورت میگیرد. اشتراکات شبکه را نیز میتوانید در این شاخه متصل نمایید. شاخه :procاین شاخه یک سیستم فایل مجازی است که برخی اطلعات مربوط به سیستم و هسته از آن قابلدستیابی میباشد. مثل فایل versionدر این شاخه حاوی اطلعات هسته سیستم عامل مانند نسخه آن و ... میباشد. شاخه :sbinدستورات و برنامههای مدیریتی سیستم در این شاخه قرار میگیرند که مخصوص کاربر rootاست. شاخه :tmpمحل قرارگیری برخی فایلهای موقتی برنامههای کاربردی است.شاخه :usrبسیاری از برنامههای کاربردی در این شاخه نصب میشوند. مثل Xwindowدر این شاخه قرار دارد.همچنین برخی دستورات و دستورات مدیریتی نیز در مسیرهای usr/binو usr/sbinقرار میگیرند. شاخه :varاین شاخه که معمول در کامپیوترهای سرویس دهنده در یک پارتیشن جداگانه قرار میگیرد، مخصوصبرنامههای سرویس دهندهای مانند وب و FTPو بانکهای اطلعاتی است. مثل فایلهای مربوط به یک وب سایت میتوانند در var/wwwقرار گیرند. به دلیل اینکه در برخی از حملت DOSدیسک سخت سیستم با فایلهای آشغال پر میشود، این شاخه را در یک پارتیشن جداگانه قرار میدهند که در صورت قرارگیری تحت حمله و پرشدن احتمالی دیسک سخت، کل سیستم عامل دچار وقفه نگردد و آسیب به همان قسمت محدود شود. تمامی شاخههایی که در بال توضیح داده شد، میتوانند در پارتیشنهای جداگانه قرار داده شوند. ولی ضرورتی ندارد. پارتیشن swap هنگام نصب لینوکس، پارتیشنی به نام swapمیسازید. کاربرد این پارتیشن چیست؟ این پارتیشن که تحت ساختار سیستم فایل جایی متصل نمیشود، محل قرارگیری swapping fileلینوکس که همان حافظه مجازی روی دیسک سخت است، میباشد. بهتر است حجم آنرا برابر یا ۲ برابر حافظه سیستم خود تعیین نمایید.
بیان دیگر اینکه :

