آشنایی با فایل سیستم لینوکس و ویژگیها و انواع آن
فایل سیستم لینوکس چیست؟
فایل سیستم لینوکس مجموعهای ساختاریافته از فایلها بر روی یک درایو دیسک یا یک پارتیشن است. سیستم فایل لینوکس بهطورکلی یکلایه داخلی از یک سیستمعامل لینوکس است که برای مدیریت دادههای ذخیرهسازی استفاده میشود. این ابزار کمک میکند تا فایل را در فضای ذخیرهسازی دیسک مرتب کنید. همچنین نام فایل، اندازه فایل، تاریخ ایجاد و اطلاعات بسیار بیشتر در مورد یک فایل را مدیریت میکند.
(پارتیشن بخشی از حافظه است و حاوی دادههای خاصی است. در کامپیوتر ما، پارتیشنهای مختلف حافظه میتواند وجود داشته باشد. بهطورکلی، هر پارتیشن حاوی یک سیستم فایل است.)
سیستم کامپیوتری همهمنظوره نیاز به ذخیره سیستماتیک دادهها دارد تا بتوانیم بهراحتی در زمان کمتری به فایلها دسترسی داشته باشیم. فایل سیستم دادهها را بر روی هارددیسک (HDD) یا نوعی فضای ذخیرهسازی معادل ذخیره میکند. ممکن است دلایل زیر برای وجود فایل سیستم لینوکس وجود داشته باشد:
- در درجه اول کامپیوتر دادهها را در حافظه RAM ذخیره میکند. اگر خاموش شود ممکن است دادهها را از دست بدهد. بااینحال، رم غیر فرار (دیسک سخت و SSD) وجود دارد که برای حفظ دادهها پس از قطع برق و خاموشی مورد استفاده قرار خواهد گرفت.
- ذخیرهسازی اطلاعات در هارددیسک در مقایسه با رم ترجیح داده میشود زیرا فضای آن در مقایسه با رم بیشتر است. از طرفی هزینه هارددیسک نسبت به رم بسیار پایینتر است.
فایل سیستم لینوکس شامل بخشهای زیر است:
- دایرکتوری ریشه (/) یا root directory (/)
- فرمت خاص ذخیرهسازی داده (EXT3، EXT4، BTRFS، XFS و غیره)
- یک پارتیشن یا حجم منطقی که دارای یک سیستم فایل خاص است.
سیستم فایل لینوکس بهطورکلی یکلایه داخلی از یک سیستمعامل لینوکس است که برای مدیریت دادههای ذخیرهسازی استفاده میشود. این ابزار کمک میکند تا فایل را در فضای ذخیرهسازی دیسک مرتب کنید. همچنین نام فایل، اندازه فایل، تاریخ ایجاد و اطلاعات بسیار بیشتر در مورد یک فایل را مدیریت میکند.
برای یادگیری نحوه کار کردن با سیستم عامل لینوکس و استفادههای مختلفی که از آن میشود میتوانید به صفحه آموزش لینوکس مراجعه کنید.
ساختار فایل سیستم لینوکس
سیستم فایل لینوکس دارای ساختار فایل سلسله مراتبی است زیرا شامل یک دایرکتوری ریشه و زیرشاخههای آن است. همه دایرکتوریهای دیگر از دایرکتوری ریشه قابلدسترسی هستند. یک پارتیشن معمولاً فقط یک دایرکتوری روت یا ریشه دارد، اما ممکن است بیش از یک سیستم فایل داشته باشد.
یک سیستم فایل بهگونهای طراحیشده است که بتواند دادههای ذخیرهسازی غیر فرار را مدیریت کرده و فضایی را فراهم کند. همه سیستمهای فایل نیاز به فضای نامی دارند که یک نامگذاری و متدولوژی سازمانی است. فضای نام، فرآیند نامگذاری، طول نام فایل، یا زیرمجموعهای از کاراکترها را که میتوان برای نام فایل استفاده کرد، تعریف میکند. همچنین ساختار منطقی فایلها را در یک بخش حافظه تعریف میکند، مانند استفاده از فهرستها برای سازماندهی فایلهای خاص. هنگامیکه یک فضای نام توضیح داده شد، باید برای آن فایل خاص، توضیحات فراداده تعریف شود.
ساختار داده باید از ساختار دایرکتوری سلسله مراتبی پشتیبانی کند. این ساختار برای توصیف فضای موجود و استفادهشده دیسک برای یک بلوک خاص استفاده میشود. همچنین دارای جزئیات دیگری در مورد فایلها مانند اندازه فایل، تاریخ و زمان ایجاد، بهروزرسانی و آخرین ویرایش است. همچنین، اطلاعات پیشرفته مربوط به بخش دیسک مانند پارتیشنها و حجمها را ذخیره میکند.
دادههای پیشرفته و ساختارهایی که حاوی اطلاعات مربوط به سیستم فایل ذخیرهشده در درایو است متمایز و مستقل از فراداده سیستم فایل است. سیستم فایل لینوکس شامل معماری اجرای نرمافزار سیستم فایل دوبخشی است. تصویر زیر را در نظر بگیرید:
سیستم فایل برای دسترسی به فراخوانیهای تابع برای تعامل با اجزای سیستم فایل مانند فایلها و دایرکتوریها به یک API (واسط برنامهنویسی برنامه) نیاز دارد. API کارهایی مانند ایجاد، حذف و کپی فایلها را تسهیل میکند. این ابزار کار الگوریتمی را که ترتیب فایلها را در یک سیستم فایل تعریف میکند را مدیریت خواهد کرد.
دو بخش اول فایل سیستم دادهشده باهم یک سیستم فایل مجازی لینوکس نامیده میشود. مجموعهای از دستورات را برای هسته و توسعهدهندگان برای دسترسی به سیستم فایل فراهم میکند. این فایل سیستم مجازی به درایور سیستم خاص نیاز دارد تا یک رابط به سیستم فایل بدهد.
ویژگیهای سیستم فایل لینوکس
در لینوکس، سیستم فایل یک ساختار درختی ایجاد میکند. تمامی فایلها بهصورت درخت و شاخههای آن مرتبشدهاند. بالاترین دایرکتوری به نام دایرکتوری root (/) است. همه دایرکتوریهای دیگر در لینوکس از دایرکتوری ریشه قابلدسترسی هستند.
برخی از ویژگیهای کلیدی سیستم فایل لینوکس به شرح زیر است:
-
تعیین مسیرها:
لینوکس از بک اسلش (\) برای جداسازی اجزا استفاده نمیکند. از اسلش رو به جلو (/) بهعنوان جایگزین استفاده میکند. بهعنوانمثال، مانند ویندوز، دادهها ممکن است در C:\ My Documents\ Work ذخیره شوند، درحالیکه در لینوکس، در /home/ My Document/ Work ذخیره میشوند.
-
پارتیشن، دایرکتوریها و درایوها:
لینوکس مانند ویندوز از حروف درایو برای سازماندهی درایو استفاده نمیکند. در لینوکس، نمیتوانیم بگوییم که به یک پارتیشن، یک دستگاه شبکه، یا یک Drive آدرس میدهیم.
-
حساسیت به حروف کوچک:
سیستم فایل لینوکس به حروف کوچک و بزرگ حساس است. بین نام فایلهای کوچک و بزرگ تمایز قائل میشود. مثلاً بین txt و Test.txt در لینوکس تفاوت وجود دارد. این قانون برای دایرکتوریها و دستورات لینوکس نیز اعمال میشود.
-
پسوند فایل:
در لینوکس، یک فایل ممکن است پسوند ‘.txt’ داشته باشد، اما لازم نیست که یک فایل پسوند فایل داشته باشد. در حین کار با شل، برای افراد مبتدی مشکلاتی ایجاد میکند تا بین فایلها و دایرکتوریها تفاوت قائل شوند. اگر از فایل منیجر گرافیکی استفاده کنیم، نماد فایلها و پوشهها است.
-
فایلهای مخفی:
لینوکس بین فایلهای استاندارد و فایلهای مخفی تمایز قائل میشود، اکثر فایلهای پیکربندی در سیستمعامل لینوکس پنهان هستند. معمولاً نیازی به دسترسی یا خواندن فایلهای مخفی نداریم. فایلهای پنهان در لینوکس با یک نقطه (.) قبل از نام فایل نشان داده میشوند (بهعنوانمثال، .ignore). برای دسترسی به فایلها باید نمای فایل منیجر را تغییر دهیم یا از دستور خاصی در پوسته استفاده کنیم.
انواع سیستم فایل لینوکس
وقتی سیستمعامل لینوکس را نصب میکنیم، لینوکس فایل سیستمهای زیادی مانند Ext، Ext2، Ext3، Ext4، JFS، ReiserFS، XFS، btrfs و swap را ارائه میدهد. تصویر زیر انواع فایل سیستم لینوکس را به ما نشان میدهد که در ادامه با همه آنها بهصورت مختصر آشنا خواهیم شد.
1. سیستم فایل Ext، Ext2، Ext3 و Ext4
سیستم فایل Ext مخفف Extended File System است. این سیستم فایل لینوکس در اصل برای سیستمعامل MINIX توسعه داده شد. فایل سیستم Ext یک نسخه قدیمی است و به دلیل برخی محدودیتها دیگر استفاده نمیشود.
Ext2 اولین فایل سیستم لینوکس است که امکان مدیریت دو ترابایت داده را فراهم میکند. Ext3 از طریق Ext2 توسعهیافته است و درواقع یک نسخه ارتقا یافته از Ext2 است و دارای سازگاری به عقب است. اشکال عمده Ext3 این است که از سرورها پشتیبانی نمیکند زیرا این سیستم فایل از بازیابی فایل و عکس فوری دیسک پشتیبانی نمیکند.
سیستم فایل Ext4 سریعترین فایل سیستم لینوکس در بین تمامی فایل سیستمهای Ext است. این فایل سیستم یک گزینه بسیار سازگار برای دیسکهای SSD (درایو حالتجامد) است و سیستم فایل پیشفرض در توزیع لینوکس است.
2. سیستم فایل لینوکس JFS
JFS مخفف Journaled File System است و توسط IBM برای AIX Unix توسعهیافته است. این سیستم فایل لینوکس یک جایگزین برای سیستم فایل Ext است. همچنین میتوان از آن بهجای Ext4 استفاده کرد، جایی که ثبات با منابع کمی موردنیاز است. زمانی که قدرت CPU محدود است، این نوع سیستم فایل لینوکس بسیار مفید است.
3. فایل سیستم ReiserFS
ReiserFS جایگزینی برای فایل سیستم Ext3 است و عملکرد و ویژگیهای پیشرفتهای دارد. قبلاً ReiserFS بهعنوان سیستم فایل پیشفرض در لینوکس SUSE استفاده میشد، اما بعدا این توزیع برخی از سیاستها را تغییر داد، بنابراین SUSE به Ext3 بازگشت. این فایل سیستم بهصورت پویا از پسوند فایل پشتیبانی میکند، اما در عملکرد آن دارای اشکالاتی است.
4. سیستم فایل XFS
سیستم فایل XFS بهعنوان JFS پرسرعت در نظر گرفته شد که برای پردازش I/O موازی توسعهیافته است. ناسا از این فایل سیستم با سرور ذخیرهسازی بالا (سرور 300 ترا بایتی) استفاده میکند.
5. سیستم فایل Btrfs
Btrfs مخفف سیستم فایل درختی B است. برای تحمل خطا، سیستم تعمیر، مدیریت سرگرمکننده، پیکربندی ذخیرهسازی گسترده و موارد دیگر استفاده میشود.
6. فایل سیستم لینوکس swap
سیستم فایل swap برای صفحهبندی حافظه در سیستمعامل لینوکس در طول حالت system hibernation استفاده میشود. سیستمی که هرگز در حالت Hibernate قرار نمیگیرد، باید فضای swap برابر با اندازه RAM خود داشته باشد.
سیستم من از چه فایل سیستمی استفاده میکند؟
اگر میپرسید که توزیع شما بهطور پیشفرض دارای کدام فایل سیستم لینوکس است یا کدامیک را در حال حاضر دارید، میتوانید با استفاده از چند دستور بسیار ساده در ترمینال خود آن را برای خودتان تعریف کنید.
چندین راه وجود دارد که میتوانید این کار را انجام دهید، اما ما سادهترین آنها را در زیر به شما نشان میدهیم:
df
مخفف “disk free” دستوری است که برای نمایش فضای آزاد دیسک در لینوکس و سایر سیستمعاملهای مشابه استفاده میشود. همچنین برای فهمیدن و تعیین فایل سیستمهای نصبشده استفاده میشود.
این دستور میتوان برای تعریف سیستم فایل نصبشده استفاده کرد، اما وقتی خودتان دستور “df” را اجرا میکنید، احتمالاً هیچ نوع فایل سیستمی ذکر نشده باشد.
اگر برای شما سیستم فایل لینوکس با روش بالا نمایش داده نشد، ترمینال خود را بازکنید و این دستور را اجرا کنید:
df -T
این دستور یک تغییر از دستور df است. نوع سیستم فایل را همراه با سایر اطلاعات مربوطه در حال حاضر نمایش میدهد. به تصویر زیر دقت کنید.
همانطور که مشاهده میکنید، در ستون دوم در قسمت “Type” نوع فایل سیستم تعریفشده است. اکنون برای شما مشخص است که کدام فایل سیستم را در حال حاضر در توزیع لینوکس خود نصبکردهاید.
دایرکتوری در فایل سیستم لینوکس
در سیستمعامل فایل مانند برگهای است که اطلاعاتی را روی آن چاپ کردهایم و دایرکتوری پوشهای است که این فایلها را در آن ذخیره کردهایم. در فایل سیستم لینوکس نیز به همین شیوه است. مهمترین دایرکتوریها در فایل سیستم لینوکس عبارتاند از:
- / – یک دایرکتوری ریشه است که همه فایلها در آن قرار دارند.
- bin/ – این دایرکتوری حاوی مهمترین فایلهای اجرایی است.
- boot/ – فایلهای مرتبط با بوت سیستمعامل در آن قرارگرفته است.
- dev/ – حاوی ابزارهای اساسی سیستمعامل است.
- etc/ – این دایرکتوری حاوی فایلهای مرتبط با تنظیمات سیستمی است.
- home/ – دایرکتوری شخصی کاربران در اینجا قرار دارد.
- Lib- حاوی کتابخانههای برنامهنویسی لینوکس.
- media/ – دایرکتوری موقت برای ماونت کردن ابزارهای جانبی متصل به کامپیوتر.
- Mnt/ – برای ماونت کردن ابزارهای ذخیرهسازی.
- Opt/ – دایرکتوری برای نصب برنامههای مستقل.
- Proc/ – دایرکتوری برای برخورد فایل با پروسه.
- Root/ – دایرکتوری کاربر ریشه یا ابر کاربر و حاوی تنظیمات کاربر.
- Run/ – دایرکتوری حاوی اطلاعات سیستم از آخرین بوت تابهحال.
- sbin/ – حاوی فایلهای اجرایی حیاتی است.
- tmp/ – حاوی فایلهای موقت ساختهشده توسط کاربر یا سیستم.
- usr/- این دایرکتوری و دایرکتوریهای درون آن حاوی کتابخانههای برنامهنویسی، اسناد، حتی سورس برنامهها و.. است. این دایرکتوری حاوی چندین دایرکتوری دیگر است.
- var/- این دایرکتوری حاوی فایلهایی است که در طول کار سیستم تغیر میکنند. مثلاً لاگ سیستم، فایل سرور و… که خود حاوی چندین دایرکتوری دیگر است.
- و…
نتیجهگیری
در این پست آموزشی از مکتب خونه ما به معرفی مختصر سیستم فایل لینوکس پرداختیم و آن را معرفی کردیم. همچنین با معماری فایل سیستم لینوکس آشنا شدیم و انواع فایل سیستمها و کاربردهایشان را نیز شناختیم. در آخر به بررسی فایل سیستم توزیع لینوکس خودپرداختیم و توانستیم اطلاعات فایل سیستم را از ترمینال بگیریم. امیدوارم که این مقاله موردتوجه شما واقعشده باشد.