سه شنبه, ۲ مرداد, ۱۴۰۳ / 23 July, 2024
مجله ویستا

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


فایل ها یكی از بنیادی ترین مفاهیم سیستم عامل هستند هر سیستم عاملی برای ساخت یك فایل, نگهداری اطلاعات آن, دسترسی و بازیابی فایل, تغییر خصوصیات فایل و عملیات و مفاهیم مرتبط با فایل از ساختاری بهره می برد كه از آن به سیستم فایل File system یاد می شود

فایل‌ها یكی از بنیادی‌ترین مفاهیم سیستم‌عامل هستند. هر سیستم‌عاملی برای ساخت یك فایل، نگهداری اطلاعات آن، دسترسی و بازیابی فایل، تغییر خصوصیات فایل و عملیات‌ و مفاهیم مرتبط با فایل از ساختاری بهره می‌برد كه از آن به سیستم فایل (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 ها فاصله‌ای بسیار نزدیك با بلوك‌ داده‌ها دارد كارایی سیستم چندین برابر می‌شود و سرعت دستیابی به اطلاعات هر بلوك از فایل‌ها افزایش می‌یابد. همچنین با ایجاد یك ساختار بلوك‌بندی شده فضای آدرس‌دهی منطقی كمتری مصرف می‌شود.


شما در حال مطالعه صفحه 1 از یک مقاله 2 صفحه ای هستید. لطفا صفحات دیگر این مقاله را نیز مطالعه فرمایید.