یکشنبه, ۹ اردیبهشت, ۱۴۰۳ / 28 April, 2024
مجله ویستا

آشنایی با سیستم فایل GNU/Linux


آشنایی با سیستم فایل GNU/Linux
فایل‌ها یكی از بنیادی‌ترین مفاهیم سیستم‌عامل هستند. هر سیستم‌عاملی برای ساخت یك فایل، نگهداری اطلاعات آن، دسترسی و بازیابی فایل، تغییر خصوصیات فایل و عملیات‌ و مفاهیم مرتبط با فایل از ساختاری بهره می‌برد كه از آن به سیستم فایل (File system) یاد می‌شود. FAT۱۶ سیستم فایل معروفMS-DOS است، FAT۳۲ وNTFS در ویندوز استفاده می‌شوند و یونیكس، سولاریس،BSD و OSL۲ هر كدام سیستم فایل مرتبط با ساختار كرنل خود را دارندExt . هم سیستم فایل انحصاری سیستم‌عامل اپن‌سورس گنو/ لینوكس است كه همزمان با توسعه این سیستم‌عامل خلق شد. گنو/ لینوكس بخشی از پایداری و قدرتمندی خود را همراه ویژگی‌های منحصربه ‌فردی مانند دادن مجوزها و مالكیت‌ها به هر فایل را مدیون سیستم ‌فایل خود است. در نوشتار زیر نگاهی اجمالی به این سیستم فایلی داریم.
تاریخچه
لینوس توروالدز در طراحی سیستم‌عامل آزمایشی خود در سال ۱۹۹۱ از سیستم فایلMinix استفاده كرد. سیستم فایلMinix جوابگوی نیازهای توروالدز بود و به خوبی در سیستم‌عامل جدید جا افتاد. با به‌وجود آمدن یك جنبش اینترنتی برای توسعه این سیستم‌عامل جدید و تبدیل آن به یك سیستم‌عامل اپن‌سورسِ قابل استفاده برای عامه مردم، نارسایی و مشكلات سیستم فایلMinix ظهور كرد و نیاز به طراحی یك سیستم فایل جدید توسط مشتاقان لینوكس حِس شد. دو مشكل عمده Minix در سیستم فایل عبارت بودند از كوچك بودن نام فایل‌ها (حداكثر ۱۴ كاراكتر) و فضای حافظه بسیار محدود (بلوك آدرس‌دهی فقط ۱۶ بیتی بود یعنی ۲۱۶=۴۶ مگابایت)طراحی Virtual File System) VFS) توسط <كریس پروون زنو> راه را برای خلق یك سیستم فایل جدید با توانایی و كارایی بهتر ازMinix هموار ساختVFS . یا همان لایه مجازی سیستم‌ فایل توسط خود آقای توروالدز توسعه داده شد و به كرنل لینوكس اضافه گردید. بلافاصله در آوریل ۱۹۹۲ سیستم‌ فایل جدید،Extended File system ، در نسخه ۹۶/۰ لینوكس به‌جای سیستم فایلMinix استفاده شد. در واقع بنیان‌گذارانEXT fs عبارتند از Remy Card از آزمایشگاه ماساچوست، "Theodor Ts o" از انجمن تكنولوژی ماسوچوست و Stephan Tweedie از دانشگاه رادینبرگ.
Minix Ext Fs Ext۲ Fs Xia Fs ـ
Max FS Size ۶۴ MB ۲ GB ۲ GB ۲ GB
Max File Size ۶۴ MB ۲ GB ۲ GB ۶۴ MB
Max File Name ۱۶/۳۰ c ۲۵۵ c ۲۵۵ c ۲۴۸ c
۳time Support no no yes yes .
Extensible no no yes no
var. block size no no yes no
?Maintained yes no yes
ویژگی مهم EXT fs حافظه دو گیگا بایتی برای سیستم فایل و نامگذاری ۲۵۵ كاراكتری فایل‌ها است. همراه سایر بخش‌های لینوكس كه روح توسعه در آن‌ها جریان داشت، در ژانویه ۱۹۹۳،EXT fs بهSecond Extended File system ارتقاء داده شد. EXT مشكلاتی داشت كه می‌بایست برطرف می‌شدند. مانند عدم كارایی مناسب Inode ها وLink List ها و عدم امكان استفاده از Time stamps (ثبت زمان‌های مربوط به هر فایل) EXT۲ fs نسبت به نگارش قبلی خود بسیار بهتر و مطمئن‌تر بود و مشكلات و باگ‌های موجود برطرف شده بودند. ولی از پایداری لازم برخوردار نبود. همزمان باEXT۲ fs ، سیستم فایلی هم براساس ساختارMinix به نام Xia طراحی شد كه یك سیستم فایل مطمئن و پایدار بود. در نسخه‌های بعدیEXT۲ fs ، پایداری آن هم به حد مناسب رسید و به عنوان سیستم فایل مخصوص لینوكس معرفی و عرضه شد. پس از مدت زیادی كه از زمان عرضه و استفاده EXT۳ fs گذشت، نسل جدیدEXT به نامEXT۳ fs طراحی شد. پررنگ‌ترین ویژگی ۳EXT استفاده از فناوری journaling است. Journaling روشی برای ثبت وقایع هر فایل است تا انسجام و سازگاری داده‌ها با سیستم برای همیشه تضمین شود.Vfs این توانایی را هم ایجاد كرده است كه لینوكس بتواند با دیگر سیستم‌ فایل‌های موجود نیز در تعامل باشد و سیستم‌ فایل‌های دیگری هم برای عملیات‌خود تعریف كند. همان‌طور كه در تاریخچه گفته شد، اولین نسخه‌‌های لینوكس همراه با سیستم فایلMinix عرضه شدند كه یك سیستم فایل مناسب و كارا می‌نمود ولی پیشرفت پروژه گنو و طراحی یك سیستم‌عامل اپن‌سورس فراگیر، نیازمند سیستم‌ فایل جدیدتری بود. كلید سیستم فایلext به وسیله طراحی ساختارVFS رقم خورد. برای شناخت بیشتر این سیستم فایلی، ابتدا لایه مجازی سیستم فایل استفاده شده در لینوكس را بررسی می‌كنیم.
Virtual File system) VFS)
لینوكس از یك لایه مجازیVFS برای سیستم فایل خود استفاده می‌كند. این لایه مجازی میان سیستم فایل در كرنل و لایه فراخوانی فرایندهای كاربران لینوكس واقع شده است . ،VFS بر روی سیستم فایل قرار گرفته و با گرفتن توابع فراخوانی پروسس‌های كاربران، اطلاعات تجزیه و تحلیل شده را به سمت یك بلوك سیستم‌ فایل هدایت می‌كند. هر پروسس در وضعیت كاری كاربر با این لایه سیستم فایل در ارتباط است نه به‌صورت مستقیم با رویه‌های سیستم فایل. هسته سیستم‌عامل با به‌كارگیریVFS این توانایی را به كرنل می‌دهد كه بدون هیچ نگرانی از فرمت‌های گوناگون پشتیبانی كند، مانند فرمت فایل یونیكس و ویندوز. همچنینVFS باعث تسریع در عملیات‌های سیستم فایل شده و در هر فراخوانی فقط نیاز به دسترسی به یك بلوك است.
مفاهیم اولیهext
Extendedfs از مفاهیم یونیكس برای ساختاربندی خود استفاده می‌كند. مهم‌ترین این مفاهیمInode ،Directories وLink List ها می‌باشند.
Inode
برای هر فایل یك ساختار بلوك مانندInode وجود دارد و هر فایل در لایه فیزیكی سیستم‌عامل تبدیل به یكInode می‌شود. هرInode از بخش‌های مختلفی تشكیل می‌شود كه هر بخش شامل یك سری اطلاعات است. نوع فایل، اندازه فایل،owner یا مالك فایل، مجوزها و خصوصیات فایل، تاریخ‌های ثبت شده برای فایل مانند تاریخ ایجاد، آخرین دسترسی، اصلا‌ح و اشاره‌گرها، مهم‌ترین اطلاعات هرInode را تشكیل می‌دهند. داده‌های هر فایل درData Block ها ذخیره و نگهداری می‌شوند كه هر Inode تعدادی اشاره‌گر به این دیتابلوك‌ها دارد. هر فرایندی در سطح سیستم‌عامل كه نیاز به فایلی مشخص دارد كافیست شماره آن فایل را به دست بیاورد و با رجوع بهInode فایل تمام اطلاعات لازم را در اختیار خواهد داشتInode.
Directories
دایركتوری‌ها همان ساختار درختی آشنای سازمان‌دهی فایل‌ها هستند.ساختار هر دایركتوری به صورت زیر می‌باشد: Inode number entry length file name
Lengthها مدخل‌های اشاره‌كننده به Link ها هستند.هر دایركتوری می‌تواند شامل فایل یا زیردایركتوری باشد. دایركتوری‌ها نام هر فایل همراه شمارهInode آن را در خود ذخیره می‌كنند. هسته سیستم‌عامل برای یافتن یك فایل ابتدا دایركتوری‌ها را اسكن می‌كند و با پیدا كردن شمارهInode فایل آدرس فیزیكی فایل در دیسك تولید می‌شود . از دیگر وظایف دایركتوری‌ها مدیریتLink List ها است.
Link
همانند یونیكس، مفهوم لینك هم درext مطرح و به كار برده شده استLink List . می‌تواند یك اشاره‌كننده به فایل یا دایركتوری یا بلوك‌هایی از داده‌ها باشد. شما با ایجاد یك لینك می‌توانید دسترسی سریع به فایل یا دایركتوری داشته باشید. خود هسته سیستم‌عامل هم برای دسته‌بندی اطلاعات ازLink List ها استفاده می‌كندLink .ها در سطح كاربر هم قابل تعریف و به‌كارگیری هستند و به لینك‌های سخت‌افزاری و نرم‌افزاری تقسیم‌بندی می‌شوند.
ساختار فیزیكی Ext Fs
سیستم فایلext لینوكس ساختار فیزیكی‌ همانند سیستم فایلBSD دارد. بدین‌صورت كه حافظه سیستم‌ فایل تماماً بهBlock Group ها تقسیم می‌شود. این بلوك‌ها در اندازه‌های ۱K، ۲K،۴K قرار می‌گیرند و هر بلوك برای یك سری اطلاعات با كاربردی خاص استفاده می‌شود. ساختار حافظه فیزیكی سیستم فایلext به این شكل است:
Boot Sector Block Group ۱ Block Group ۲ ... Block Group N
هر یك از اینBlock Group ها هم ساختاری این چنین دارند: Super Block FS Description Block Bitmap Inode Table Data Block همان‌طور كه مشاهده می‌شود هرBlock Group در ابتدا شامل یكSuper Block است كه اطلاعات مدیر سیستم(Root) به همراه اطلاعات كلی مربوط به بلوك در آن قرار می‌گیرد. بخش بعدی اطلاعات مربوط به سیستم‌ فایل است و در ادامه جدولInode ها، داده‌های هر بلوك و بیت‌های كنترلی بلوك وInode قرار می‌گیرند.در این شیوه از ساختار‌بندی فایل، چون جدولInode ها فاصله‌ای بسیار نزدیك با بلوك‌ داده‌ها دارد كارایی سیستم چندین برابر می‌شود و سرعت دستیابی به اطلاعات هر بلوك از فایل‌ها افزایش می‌یابد. همچنین با ایجاد یك ساختار بلوك‌بندی شده فضای آدرس‌دهی منطقی كمتری مصرف می‌شود.Ext۲ fs سیستم فایل استاندارد گنو / لینوكس
پس از به كار گرفته شدن سیستم فایلExt fs در هسته گنو/ لینوكس برخی نواقص و نارسایی‌های آن ظاهر شد و بنابراین به سیستم فایل Second Extended fs ارتقاء داده شد. قریب یك دههExt۲ fs پیش‌فرض سیستم فایل لینوكس در كرنل و توزیع‌های تجاری بود. شاید بتوان مهمترین شاخصه‌هایExt۲ fs كه باعث متمایز شدن آن از تمامی سیستم‌ فایل‌های قبل از خود شد را به‌صورت زیر لیست كرد:
Ext۲ fs توانایی كار و پشتیبانی با فایل‌هایی با فرمتی غیر ازExt را هم داراست. به راحتی با داشتن یكVFS فایل‌های ویندوز و یونیكس و دیگر سیستم‌عامل‌های تجاری همانندBSD و فرمتV را شناخته و از این فرمت‌ها در كنارExt استفاده می‌كند. Ext۲ fs قابلیت نامگذاری فایل‌ها تا ۲۵۵ كاراكتر را میسر می‌كند و حتی در صورت تعریف بلوك‌های بزرگ‌تر باز هم این اندازه قابل افزایش است. به‌صورت پیش‌فرض، حافظه فیزیكی ۲Ext برابر۲ گیگا بایت است. این اندازه از سیستم فایل همراهVFS امكان ایجاد یك پارتیشن بزرگ تا اندازه۴ گیگا بایت را میسر می‌كند و دیگر نیازی به تقسیم یك پارتیشن بزرگ به اندازه‌های كوچك‌تر به وجود نمی‌آید. Ext fs با تخصیص پنجاه درصد بلوك‌های حافظه به حساب ریشه (Root) توانایی‌های بالقوه‌ای در اختیار مدیر سیستم قرار می‌دهد. با استفاده از این بلوك‌ها امكان پیگیری فرایندهای كاربران به آسانی میسر می‌شود. از خصوصیات ویژهExt۲ fs امكان‌دهی به كاربر درset كردن خصوصیات یك فایل در زمان ساخت یا بعد از آن است. حتی یك كاربر می‌تواند برخی رفتارهای سیستم فایل را هم به تناسب خود تغییر دهد. این اعمال تغییرات به‌وسیله ارایه ابزارهای بسیار ساده‌ای كه از طرف جامعه اپن‌سورس به كاربران هدیه می‌شود، به آسانی صورت می‌گیرد. اجازه تعریف اندازه بلوك‌های فیزیكی سیستم فایل به مدیر سیستم دیگر مزیتExt۲ fs است. مدیر سیستم می‌تواند برحسب نیاز بلوك‌ها را به صورت دستی سایزبندی كند. این امر موجب كارایی هر چه بیشتر سیستم در مواجه با فرایندهای بلوكه شده می‌شود. استفاده ازLink ها درExt۲ fs به راحتی امكان‌پذیر است و با یك دستور <>Ln در پوسته فرمان می‌توانید برای فایل‌ها و دایركتوری‌ها، یكLink درست كنید. در سیستم فایلExt۲ fs ،State های سیستم فایل قابل ثبت و نگهداری است. فیلدSuper Block در هر بلوك سیستم فایل وظیفه‌ای برای نگهداری این اطلاعات دارد كه قابل بازخوانی هستند. و مزیت آخرExt۲ fs در دسترس و همگانی بودن توابع كتابخانه‌ای سیستم فایل است كه این امكان را می‌دهد، هر كاربری با به‌كارگیری این توابع توانایی هرگونه تغییر، اصلاح و به‌وجود آوردن و ساخت را در ۲Ext به‌دست آورد. به همین خاطر ابزارهای بسیاری برای كار باExt۲ fs موجود و قابل تهیه هستند. از ابزار پیكربندی سیستم فایل تا ابزار اشكال‌زدایی آن. مهمترین این ابزارها عبارتند ازDebugfs :،dump۲ fs ،tune fs ،e۲fsck ،Mk۲ fs .
Ext۳ fs نسل جدید سیستم فایل گنو / لینوكس
در كرنلی كه ازExt۲ fs استفاده می‌كند اگر عملیاتshut down به درستی انجام نشود، به عنوان مثال قطع برق یاCrash كردن سیستم، شاهد بروز دو مشكل عمده هستیم: امكان خرابی و از بین رفتن داده‌ها و دوم این‌كه سیستم برای بوت مجدد نیازمند به استفاده از ابزار اسكن داده‌ها برای شناسایی و تشخیص داده جهت سازگاری آن‌ها با سیستم فایل است. گاهی در این موارد مدت زمان زیادی باید صبر كنید تا چند گیگابایت اطلاعات توسط سیستم خوانده شوند كه این بسیار نامطلوب استthree Extended fs . نسل جدیدExt۲ fs مشكل را برطرف كرده استExt۳ fs . با بهره‌گیری از تكنولوژی <>journaling یا <سیستم ثبت وقایع فایل‌ها>، امنیت داده‌ها و سازگاری و انسجام اطلاعات را در هنگام وقوع خطاهای سخت‌افزاری تظمین می‌كند. Ext۳ fs توسط آقای Tweedie (از بنیان‌گذاران سیستم فایل (Ext fs توسعه یافته و از هسته ۱۵.۴.۲ به بعد قابل استفاده است. Journaling از روشی در ذخیره و نگهداری داده‌ها بر روی دیسك استفاده می‌كند كه دیگر نیازی به سازمان‌دهی اطلاعات بلوك‌های سیستم فایل و تنظیم كردن آدرس‌های منطقی نیست و هیچ زمانی در فرایند بوت برای شناخت داده‌ها و انسجام آن‌ها با سیستم فایل صرف نمی‌شود. در ضمن امنیت داده‌ها هم تأمین می‌شود. در زمان وقوع یك خطای سخت‌افزاری، ژورنالینگ از اطلاعات داده‌ها پشتیبانی می‌كند و باعث می‌شود هیچ‌گونه اطلاعات جدیدی بر روی داده‌ها نوشته نشود.سرعت و بهره توان عملیاتیExt۳ fs به مراتب بیشتر ازExt۲ fs استExt۳ fs . از سه روش برای بالا بردن سرعت استفاده می‌كند. در روشData = write back ، پس ازCrash كردن سیستم، داده‌های قدیمی استفاده می‌شود. در این روش اطمینان صحت داده‌ها پایین می‌آید ولی سرعت بالا‌ می‌رود. در روش Data = ordered (پیش‌فرض) از هر گونه اضافه شدن اطلاعات به داده‌های بلوك‌های سیستم فایلInode ها جلوگیری می‌شود. این مد بهترین كارایی را دارد. در سومین روشData= journal ، سیستم از یك فایل بزرگjournal برای نگهداری اطلاعات سیستمی ضروری برای ذخیره و بازیابی داده‌های دیسك استفاده می‌كند. می‌شود گفت كه فایل journal در واقع فایلBackup سیستم است. Ext۳ fs باExt۲ fs سازگاری كامل دارد و تبدیل و ارتقاء به آسانی و با چند خط فرمان‌نویسی درshell سیستم صورت می‌پذیرد. و این كار بدون هیچ‌گونه نیاز به فرمت كردن یا پارتیشن‌بندی یا اختلال در بلوك‌های داده‌های سیستم فایل صورت می‌پذیرد. یعنی شما فقط فایلjournal را به سیستم فایلExt۲ fs اضافه می‌كنید.به‌كارگیری تكنولوژیjournaling در سیستم فایل علاوه بر مزایای گفته شده، باعث ایجاد یك تاریخچه از هر فایل در سیستم شده و عملیات پیگیری وقایع هر فایل به آسانی امكان‌پذیر می‌شود. گذشته از این ژورنالینگ در دیگر امكانات هسته هم استفاده می‌كند. همه این ویژگی‌ها باعث شده‌اند كه بسیاری از شركت‌های تجاری سیستم فایل ۳Ext را به عنوان پیش‌فرض توزیع گنو/ لینوكس خود انتخاب كنندRed Hat . از نسخه ۲/۷،Ext۳ fs را در نسخه لینوكس خود به‌كار برد.
منابع:
۱) www.Technotux.com
۲) www.tldp.org/Howto/filesystemhowto.html
۳) http://web.mit.edu/tytso/www/linux/ext۲intro/html
۴) http://web.mit.edu/tytso/www/linux:ext۲.html
۵) www.linuxtoday/redhatext۳information.html
مقالات مرتبط
ویروس اینترنتی "لاپر" سیستم‌عامل "لینوكس" را هدف گرفته‌است
( لینوكس )
ائتلاف "لینوكس موبایل" اعلام موجودیت كرد
( لینوكس )
راهنمای ابزار پیكربندی PPP در لینوكس
( لینوكس )
Ubuntu Linux برنده جایزه بهترین توزیع لینوکس در سال ۲۰۰۵
( لینوكس )
واگذاری طرح ملی نرم افزارهای Open Source به دانشگاه شریف (Update)
( لینوكس )
لینوكس مهمان سراسر جهان – قسمت چهارم: لینوکس در آفریقا
( Linux )
نسخه ۱۰ لینوكس SUSE مهر ماه سال جاری عرضه خواهد شد
( لینوكس )
لینوكس مهمان سراسر جهان – قسمت اول: لینوکس در آسیا
( لینوكس )
اخبار دنیای اپن سورس
( لینوكس )
معرفی نرم افزار : Fedora Core ۴.۰
( لینوكس )
نسخه جدیدی از هسته لینوکس منتشر شد
( لینوكس - Linux )
لینوكس سحرآمیز ، Mandrake Linux ۱۰.۱
( لینوكس )
KDE ۳.۰ میزكاری مناسب تر
( Linux - لینوكس )
لینوكس جایگزین NET Server.
( لینوكس )
منبع : ماهنامه شبکه


همچنین مشاهده کنید