File Allocation Table

File Allocation Table (בראשי תיבות: FAT; באופן מילולי: טבלת מיקומי קבצים) היא מערכת קבצים שפותחה בשנת 1977 על ידי ביל גייטס ומארק מקדונלד'ס. המערכת שולבה לראשונה במערכת ההפעלה QDOS שפותחה על ידי חברת Seattle Computer Products. לאחר רכישת QDOS על ידי חברת מיקרוסופט, שולבה מערכת הקבצים לתוך MS-DOS וחלונות עד להחלפתה כמערכת ניהול הקבצים הראשית על ידי מערכת הקבצים NTFS במערכת ההפעלה חלונות NT. קיימות שלוש גרסאות של מערכת הקבצים: FAT16 ,FAT12 ו-FAT32, הנבדלות ביניהן רק בכמות הבתים המשמשים להפניה לכתובת בדיסק. הבחירה בסוג ה-FAT נעשית על פי גודל הדיסק. האלגוריתמים לשימוש במערכות אלה מוגדרים בתקן ISO/IEC 9293:1994. בעת אתחול אמצעי האחסון (המדיה) מערכת הקבצים מחלקת את שטח המדיה לארבעה חלקים, הנמצאים במקומות קבועים:Bios Parameter Block (BPB) הנקרא גם Boot Sector, טבלת ה-FAT, ספריית ה-Root, ומקטע הנתונים. יישומים העובדים עם מערכת הקבצים מסתמכים על כך שהמקטעים נמצאים במקומות הנכונים לצורך עבודתם התקינה. ה-BPB נמצא בסקטור הראשון של הדיסק והוא מכיל פרטים כלליים על מערכת הקבצים, הדרושים לצורך עבודה עם המדיה, כגון: גודל סקטור בדיסק, כתובת הבית מערכת ההפעלה, כמות טבלאות ה-FAT שהדיסק מכיל, כמות הסקטורים (יחידות ההקצאה) בדיסק, גודל טבלת ה-FAT ועוד. בעת טעינת מדיה, ניגש הראש הקורא להתחלת המדיה וקורא את תוכן ה-BPB על מנת לקבוע את סוג מערכת הקבצים. 36 הבתים הראשונים מכילים שדות זהים עבור כל סוגי ה-FAT. במערכות FAT12 ו-FAT16 מכילים 26 הבתים הבאים מידע על סוג מערכת הקבצים (Fat12, Fat16 או Fat32), התווית (Label) והמספר הסידורי של המדיה. במערכות FAT32 מכילים 62 הבתים הבאים מידע דומה ומידע נוסף על אופן השימוש במערכת הקבצים. טבלת FAT היא מערך שכל אינדקס בו מייצג מקטע (Cluster) במדיה, תוכן כל תא מצביע על התא המכיל את החלק הבא של הקובץ, וסוף הקובץ מצוין באמצעות ערך מספרי מיוחד הנמצא מחוץ לטווח. באופן זה, בהינתן הכתובת שבה נמצאת התחלת הקובץ, ניתן לעקוב אחרי המצביעים לאורך הקובץ עד סופו. למטרות שרידות, כל מדיה המשתמשת ב-FAT מכילה לפחות שתי טבלאות FAT (בדרך כלל 2). אורך הטבלה וגודל כל תא נקבעים על פי סוג המערכת. (גודל תא ב-FAT12 הוא 12 ביטים ואורך הטבלה הוא 9 סקטורים, ב-FAT16 הוא גודל התא הוא 16 ביטים וב-FAT32 הוא 28 ביטים). בגרסאות FAT12 ה-FAT16 מקטע ספריית השורש הוא בן 14 סקטורים, ובו מאוחסנת ספריית השורש. בספרייה זו ניתן לאחסן קבצים וספריות נוספים. בניגוד לשאר הקבצים והספריות במערכת FAT, גודל ספריית השורש מוגבל. במערכות המממשות FAT32 ספריית השורש נמצאת במקטע הנתונים, ולכן אינה מוגבלת במקום. מקטע הנתונים הוא החלק בדיסק שבו נמצאים כל הקבצים והתיקיות. קובץ עשוי להיות מורכב ממספר חלקים שאינם רציפים, אשר ניתן לגשת אליהם באמצעות מעקב סדרתי אחר טבלת הקבצים. במערכת FAT כל הקבצים והתיקיות הם בעלי אותו מבנה ומכילים את שם הקובץ והסיומת (אורך השם המקסימלי הוא שמונה תווים ואורך הסיומת הוא שלושה תווים), תאריך יצירה, תאריך גישה אחרון, גודל הקובץ ומאפיינים דומים. גודל המבנה הוא 32 בתים והוא מאוחסן בספריה אליה שייך הקובץ. בעת גישה לקובץ (או ספרייה) מערכת ההפעלה בודקת היכן נמצא החלק הראשון של הקובץ (באמצעות גישה לשדה המתאים) ומחפשת אותו בטבלת ה־FAT, לאחר מכן היא מחפשת את חלקי הקובץ בצורה סדרתית באמצעות מעקב אחר המצביעים בטבלת ה־FAT עד לסוף הקובץ. מיקרוסופט שחררה מספר גרסאות למערכת הקבצים יחד עם הרחבות לגרסאות הקיימות. גרסה זו היא הגרסה הראשונה של מערכת הקבצים ונכללה במערכת QDOS. גודל כל תא בטבלת הקבצים הוא 12 סיביות וגודל הטבלה הוא 9 סקטורים. לפיכך גודל המדיה מוגבל ל-4608 סקטורים. בפועל, גודל המדיה הוגבל ל-32 מגה. הגרסה הראשונה לא כללה תמיכה במבנה ספריות היררכי, שמות קבצים ארוכים, מחיצות והתמודדות עם שגיאות בסקטור אפס. גרסה זו הוצגה בשנת 1984 יחד עם מערכת ההפעלה DOS 3.0. כתובת סקטור בדיסק הייתה בגודל 16 סיביות, כך שגודל המדיה המקסימלי גדל ל-65,517 סקטורים. בפועל, עקב מגבלות טכניות גודל הקבצים המקסימלי לא השתנה מ-FAT12, אך נוספה תמיכה במחיצות מרובות כך שניתן היה לחלק מדיה אחת למספר מחיצות ובכך לנצל את מלוא הגודל של המדיה. בשנת 1987, הוצגה גרסה נוספת של FAT16 אשר איפשרה לשמור קבצים בגודל 2 ג'יגה. במערכות קבצים ישנות שמות הקבצים היו מצורת 8.3 (8 תווים לשם הקובץ + 3 תווים לסיומת), במערכת ההפעלה חלונות 95 הוסיפה חברת מיקרוסופט ל-FAT16 תמיכה בשמות קבצים ארוכים. המערכת אפשרה לשמור קבצים בעלי שמות עד 255 תווי UTF באמצעות שימוש במאפיינים מיוחדים המונעים ממערכות הפעלה מוקדמות יותר לראות את הקבצים. אחת המגבלות של FAT16 הייתה שככל שהיה הכונן גדול יותר, בגלל מספר הסקטורים המקסימלי, גודל הסקטור הפך לגדול יותר. כתוצאה מכך סקטורים רבים לא נוצלו עד תומם ונוצר בזבוז של שטחי הקצאה. כל זה נכון בתנאי שגודל המחיצה גדול מ-512MB (בכוננים קטנים יותר מערכת FAT32 לא מתפקדת). במערכת ההפעלה Windows 95 OSR2 שיצאה לשוק ב-1997, הציגה מיקרוסופט את מערכת הקבצים FAT32. כתובת סקטור בדיסק היא 28 סיביות (כאשר 4 הסיביות הנותרות אינן בשימוש). באופן תאורטי ניתן לאחסן קבצים בגודל 2 טרה אך מגבלות טכניות גרמו לכך שגודל הקובץ המקסימלי האפשרי יהיה 4 ג'יגה. בנוסף, הגדלת טבלת מיקומי הקבצים יצרה סקטורים קטנים יותר (שטח זהה התחלק על מספר רב יותר של סקטורים) ובכך נחסך מקום אחסון. חיסרון שהיה ל-FAT32 עם יציאתה לשוק היה חוסר תאימות עם מערכות הפעלה אחרות. היו משתמשים שהריצו על מחשביהם שתי מערכות הפעלה שונות (או יותר). מערכות אלו (ובהן DOS, Windows95, ‏windows NT עד גרסה 4 או יוניקס) לא ידעו לקרוא את מערכת הקבצים החדשה ולכן אסור היה להמיר דיסקים קשיחים שהיו מיועדים ליותר ממערכת אחת לפורמט החדש. מגבלה זו חלה על דיסקים שליפים ששימשו מספר מחשבים. ובמקרים בודדים גם על שרתים אליהם ניגשו בעזרת מערכות הפעלה שונות. מיקרוסופט סיפקה כלי בשם Drive converter להמרת מחיצות מ-fat16 ל-, fat32 אולם לא היה כלי להמרה הפוכה. מאחר שנוצר צורך בשוק גם להמרה חזרה, יצאה לשוק גרסת Partition Magic שידעה לעשות זאת. exFAT (ראשי תיבות של Extended File Allocation Table) היא מערכת קבצים קניינית מותאמת במיוחד לכונני Solid state drive וכן מרחיבה את יכולות ה-FAT32, שהיא מערכת הקבצים המפעילה אמצעי אחסן ניידים. התוכנה נועדה לשימוש בעיקר במקרים בהם לא ניתן ליישם שימוש במערכת הקבצים NTFS. התוכנה פותחה על ידי מיקרוסופט והיא משובצת במערכת ההפעלה Windows Embedded CE 6.0 ובמערכות ההפעלה השולחניות, חלונות XP עם SP2 ומעלה, וויסטה עם SP1 ומעלה. ניתן להוריד את הדרייבר ל־exFAT בחינם מאתר מיקרוסופט. משתמשי לינוקס יכולים לקרוא התקנים בהם מותקנת exFAT. אפל הוסיפה תמכיה ב־exFAT בעדכון 10.6.5 ל־OS X. exFAT פותרת בעיות שהיו למשתמשי FAT32 ובהן מגבלת 4G כגודל קובץ. התוכנה מבוססת על 64 ביט (לעומת 32 ביט ב-FAT32) מערכת הקבצים גוזלת פחות מקום מאמצעי האחסון (EXFAT צורכת 96KB מתוך דיסק נייד של 4 גיגה לעומת NTFS שלוקחת 47.2 מגה) ערך מורחב – NTFS פיתוח מערכת הקבצים FAT נעצר על ידי מיקרוסופט לטובת מערכת הקבצים NTFS ששוחררה יחד עם מערכת ההפעלה חלונות NT, המערכת ממשיכה להיתמך בכל הגרסאות של מערכות ההפעלה מבית מיקרוסופט ומהווה את ברירת המחדל עבור התקני אחסון בעלי נפח אחסון קטן (כונני דיסקטים והתקני אחסון מבוססי Flash). ריימונד חן, Windows Confidential A Brief and Incomplete History of FAT32, אתר מיקרוסופט (באנגלית) השוואה בין exFAT למערכות קבצים אחרות (באנגלית) Microsoft Extensible Firmware Initiative FAT32 File System Specification מיקרוסופט (באנגלית) 9293:1994 http://support.microsoft.com/kb/q69912/ MS-DOS Partitioning Summary http://support.microsoft.com/kb/100108/EN-US/ Overview of FAT, HPFS, and NTFS File Systems Microsoft Support http://www.dewassoc.com/kbase/hard_drives/boot_sector.htm Detailed Explanation of the FAT Boot Sector http://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html The FAT file system http://support.microsoft.com/kb/154997/EN-US/ Description of the FAT32 File System http://support.microsoft.com/kb/120138 Errors Creating Files or Folders in the Root Directory http://support.microsoft.com/kb/67321/EN-US/ FAT Type and Cluster Size Depends on Logical Drive Size http://home.teleport.com/~brainy/lfn.htm Long Filename Specification http://support.microsoft.com/kb/184006/en-us Limitations of FAT32 File System http://support.microsoft.com/kb/314463/EN-US/ Limitations of the FAT32 File System in Windows XP לרוב, לא הייתה מגבלה בשרתים היות שהגישה אל קובצי השרת סופקה על ידי השרת בלי תלות למערכת המורצת על המחשב המקומי, הבעיה התעוררה בעיקר במערכות שתקשרו בעזרת "חיבור כבל יחיד". Eric Slivka, Mac OS X 10.6.5 Notes: exFAT Support, AirPrint, Flash Player Vulnerability Fixes, www.macrumors.com (באנגלית) Documentation Archive, developer.apple.com מגבלות FAT32 למשתמשי XP באתר מיקרוסופט http://support.microsoft.com/kb/253774/EN-US/ Common questions about the FAT32 file system