جدول تخصیص فایل
جدول تخصیص فایل(FAT) فایل سیستم اولیه در سیستمعاملهای داس و ویندوز میباشد. فایل سیستم جدول تخصیص فایل (FAT) به صورت ساده طراحی گردیده، و به همین دلیل آن یک فرمت عمومی برای فلاپی دیسکها (دیسک نرم) میباشد؛ علاوه براین، این فرمت به صورت واقعی توسط تمامی سیستمعاملهای مختص IBM/PC پشتیبانی میگردد، و به همین دلیل اغلب جهت اشتراک اطلاعات بین سیستمعاملهای متفاوت که روی یک کامپیوتر بوت میشوند بکارگرفته میشود (دریک محیط چند-بوتی). همچنین در روی تکه حافظههای سخت-حالت (Solid-state memory) و سایر دستگاههای مشابه بکار گرفته میشود.
FAT از لحاظ طراحی قدیمی به نظر میآید، و طراحان آن بهنظر میرسد اطلاع دقیقی از طراحی یک فایل سیستم مناسب نداشتهاند، و به همین دلیل دارای اشکالات عمدهای میباشد. اولین ایراد آن سادگی لایه فایل آن است که اجازه تکه-تکه نمودن (Fragmentation) آسان آن، که منجر به کندی عملیات در سیستمعامل استفادهکننده میگردد. دومین ایراد،FAT برای پشتیبانی ایرادات سیستم طراحی نگردیدهاست. سومین ایراد این است که نگارشهای اصلی آن اجازه استفاده از نامهای فایل بیش از ۱۱ کاراکتر را نمیدهند (۸ کاراکتر برای نام فایل، ۳ کاراکتر برای پسوند آن)، همچنین تغییراتی که بروی این سیستم از سوی مایکروسافت انجام گرفته اما در سیستمی به نام VFAT پیادهسازی گردیده این امکان را میدهد که بتوان ۲۵۵ کاراکتر و بیشتر را بهعنوان نام فایل قرار داد. در نهایت چهارمین ایراد این که بروی خوشهها (Cluster) وسیع مقدار زیادی از فضای مورد استفاده به دلیل تعدد فایلهای با ظرفیت پایین به هدر میرود.
هرچند به دلیل اینکه IBM طراحی نموده MS-DOS را به عنوان سیستمعامل منتخب بروی PCها، و اینکه MS-DOS استفاده میکند از FAT، این فایل سیستم به صورت گسترده در بخشهای مهمی استفاده میگردد. به دلیل طراحی اولیه آن، پیادهسازی دستورالعملهای این فایل سیستم به سادگی میسر میگردد، و همچنین به دلیل گستردگی بی مثال ویندوز و داس، FAT در بعضی مواقع تبدیل به استانداری جهت تبادل اطلاعات میشود.
ساختار فایل سیستمی FAT
یک فایل سیستم FAT بروی یک پارتیشن حاوی بخشهای ذیل میباشد :
- Partition Boot Record، که حاوی یک یا چند سکتور در ابتدای پارتیشن میباشد که دربرگیرنده اطلاعاتی ابتدایی در مورد سیستمعامل (بطور خاص، نوع آن) و برنامه هدایتکننده عملیات بوت (Boot Loader) میباشد.
- جدول تخصیص فایل(File Allocation Table) فهرستی از اتصالات(Link) بین کلاسترها میباشد. کلاسترها قطعات کوچک و مرتبطی میباشند که دادههای موجود در فایلها در آنها ذخیره میگردند. این زنجیرههای اطلاعاتی لزوماً برای ثبت دادههای فایلها و شاخهها به ترتیب روی دیسک قرار نگرفتهاند، در واقع این کلاسترها روی سطح دیسک پخش میباشند. هر رکورد فایلی یا inode، (که در ذیل شرح داده شدهاند) محل قرارگیری هر اولین کلاستر را نشان میدهد و آن کلاستر نیز به نوبه خود محل قرارگیری کلاسترهای مرتبط بعدی را در دیسک در خود نگه میدارند (و به همین ترتیب تا به انتهای فایل). تعداد بیت هایی که برای آدرس دهی کلاسترها اختصاص مییابد در حقیقت ظرفیت FAT را نشان میدهد. اعدادی مثل ۱۲، ۱۶، ۳۲ در حقیقت ماکسیمم ظرفیت یک پارتیشن FAT را که میتوان آدرس دهی نمود نمایش میدهد. FAT یک یا چند (معمولاً دو) کپی از خود را بروی دیسک نگهداری میکند تا اگر به دلیل فعالیتهای مختلف سیستمعامل آسیب دید به دادههای قرارگرفته روی دیسک آسیبی نرسد، همچنین سیستمعامل نتواند ورودیهای اضافهای برای آنها ایجاد نماید.
- شاخه ریشه (Root Directory) برای پارتیشن (که حداکثر ظرفیت را دارد، معمولاً ۵۱۲ ورودی روی هارددیسک دارد، نوشته شده بروی بوت رکورد) رکوردهایی از فایلها و شاخههایی که در درون آن قرارمیگیرند دارد. رکوردها یا inodeها حاوی اطلاعاتی در مورد فایلها و شاخههای پارتیشن از قبیل تاریخ ها، ظرفیت، نام، و کلاستر اول را در خود نگهداری میکنند.
- ناحیه داده (Data Area) جایی که دادهها , inodeها (زیرشاخهها) ذخیره شده هستند و اکثر فضای پارتیشن را اشغال نمودهاست. این بخش به قطعات کوچکی بنام کلاستر تقسیم میشود. ظرفیت فایلها و زیرشاخهها میتواند به صورت دلخواه افزایش یابد (تا جایی که فضای خالی از کلاسترها وجود داشته باشد) به آسانی توسط افزودن لینکهای بیشتری به زنجیره فایلها در FAT. بخاطر داشته باشید هر کلاستر توسط تنها یک فایل میتواند اشغال شود پس بنابراین اگر برای مثال ۲۰ بایت از یک فایل روی یک کلاستر به ظرفیت ۳۲ کیلوبایت به اصطلاح نشست ۳۲ کیلو بایت از دیسک برای آن ۲۰ بایت به هدر رفتهاست.
برای ذخیره نامهای طولانی فایلها (Long File Names - LFN) روی یک فایل سیستم FAT، ویندوز ۹۵ و بالاتر از یک ترفند به ترتیبی که یک رکورد ساختگی روی جدول فایلهای دایرکتوریی که فایل در آن قرار دارد اضافه میکند. رکورد توسط یک صفت Volume Label که برای یک فایل FAT امکانپذیر نیست و بنابراین توسط برخی از برنامههای قدیمی MS-DOS خوانده نمیشود علامت زده میشود. هر رکورد ساختگی میتواند حاوی ۱۳ کارکتر از نوع UCS-۲ باشد (۲۶ بایت)، به علاوه ۱۵ بایت اضافه مربوط به سیستم ۸+۳ قدیمی که حاوی تاریخ یا ظرفیت آن میباشد.