تصميم نظام الملفات FAT
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
| المطور(ون) | مايكروسوفت ، SCP ، IBM ، كومباك ، ديجيتال ريسيرش ، نوفيل ، كالديرا |
|---|---|
| الاسم الكامل | جدول تخصيص الملفات: FAT12 (إصدار 12 بت)، FAT16 (إصدارات 16 بت)، FAT32 (إصدار 32 بت مع استخدام 28 بت)، exFAT (إصدارات 64 بت) |
| قدَّم | 1977 ( Standalone Disk BASIC-80 ) FAT12: أغسطس 1980 (SCP QDOS ) FAT16: أغسطس 1984 (IBM PC DOS 3.0) FAT16B: نوفمبر 1987 ( Compaq MS-DOS 3.31) FAT32: أغسطس 1996 ( Windows 95 OSR2 ) exFAT: نوفمبر 2006 ( Windows Embedded CE 6.0 ) |
| معرفات القسم | MBR / EBR : FAT12 : ea FAT16 : ea FAT32 : ea exFAT : ea BDP : 0x010x040x060x0E0x0B0x0C0x07EBD0A0A2-B9E5-443387C0-68B6B72699C7 |
| الهياكل | |
| محتويات الدليل | طاولة |
| تخصيص الملفات | القائمة المرتبطة |
| كتل سيئة | وسم المجموعة |
| الحدود | |
| الحد الأقصى لحجم الصوت | FAT12: 32 ميجابايت (256 ميجابايت لمجموعات 64 كيلو بايت ) FAT16: 2 جيجا بايت (4 جيجا بايت لمجموعات 64 كيلو بايت ) FAT32: 2 تيرابايت (16 تيرابايت لقطاعات 4 كيلو بايت ) |
| الحد الأقصى لحجم الملف | 4,294,967,295 بايت (4 جيجابايت - 1) بنظامي FAT16B وFAT32 [1] |
| الحد الأقصى لعدد الملفات | FAT12: 4,068 لمجموعات 8 كيلوبايت FAT16: 65,460 لمجموعات 32 كيلوبايت FAT32: 268,173,300 لمجموعات 32 كيلوبايت |
| الحد الأقصى لطول اسم الملف | 8.3 اسم الملف ، أو 255 حرف UCS-2 عند استخدام LFN |
| سمات | |
| التواريخ المسجلة | تاريخ/وقت التعديل، تاريخ/وقت الإنشاء (DOS 7.0 والإصدارات الأحدث فقط)، تاريخ الوصول (متاح فقط مع تمكين ACCDATE )، [2] تاريخ/وقت الحذف (فقط مع DELWATCH 2) |
| نطاق التاريخ | 1980-01-01 إلى 2099-12-31 ( 2107-12-31 ) |
| قرار التاريخ | ثانيتان لوقت التعديل الأخير، و10 مللي ثانية لوقت الإنشاء، ويوم واحد لتاريخ الوصول، وثانيتان لوقت الحذف |
| شوك | ليس أصليا |
| صفات | للقراءة فقط، مخفي، نظام، مجلد، دليل، أرشيف |
أذونات نظام الملفات | FAT12/FAT16: حقوق الوصول إلى الملفات والدلائل والمجلدات للقراءة والكتابة والتنفيذ والحذف فقط مع DR-DOS و PalmDOS و Novell DOS و OpenDOS و FlexOS و 4680 OS و 4690 OS و Concurrent DOS و Multiuser DOS و System Manager و REAL/32 (حق التنفيذ فقط مع FlexOS و4680 OS و4690 OS؛ كلمات مرور الملفات/الدلائل الفردية ليست مع FlexOS و4680 OS و4690 OS؛ فئات أذونات العالم/المجموعة/المالك فقط مع تحميل أمان متعدد المستخدمين) FAT32: جزئي، فقط مع DR-DOS وREAL/32 و4690 OS |
ضغط شفاف | FAT12/FAT16: لكل وحدة تخزين، SuperStor ، Stacker ، DoubleSpace ، DriveSpace FAT32: لا |
تشفير شفاف | FAT12/FAT16: لكل مجلد فقط مع DR-DOS FAT32: لا |
نظام الملفات FAT هو نظام ملفات يستخدم في أنظمة التشغيل MS-DOS و Windows 9x . [3] ويستمر استخدامه في الأجهزة المحمولة والأنظمة المضمنة ، وبالتالي فهو نظام ملفات مناسب لتبادل البيانات بين أجهزة الكمبيوتر والأجهزة من أي نوع وعمر تقريبًا من عام 1981 حتى الوقت الحاضر.
بناء
يتكون نظام الملفات FAT من أربع مناطق:
| منطقة | الحجم في القطاعات | محتويات | ملحوظات |
|---|---|---|---|
| القطاعات المحجوزة | (عدد القطاعات المحجوزة) | قطاع التمهيد | القطاع المحجوز الأول (القطاع المنطقي 0) هو قطاع التمهيد (يسمى أيضًا سجل تمهيد المجلد أو ببساطة VBR ). وهو يتضمن منطقة تسمى كتلة معلمات BIOS ( BPB ) والتي تحتوي على بعض معلومات نظام الملفات الأساسية، وخاصة نوعها ومؤشرات إلى موقع الأقسام الأخرى، وعادةً ما تحتوي على كود محمل التمهيد لنظام التشغيل .
يمكن الوصول إلى المعلومات الهامة من قطاع التمهيد من خلال بنية نظام التشغيل المسماة كتلة معلمات محرك الأقراص ( DPB ) في DOS وOS/2. يتم الإشارة إلى العدد الإجمالي للقطاعات المحجوزة بواسطة حقل داخل قطاع التمهيد، وعادةً ما يكون 32 على أنظمة الملفات FAT32. [4] بالنسبة لأنظمة الملفات FAT32، تتضمن القطاعات المحجوزة قطاع معلومات نظام الملفات في القطاع المنطقي 1 وقطاع التمهيد الاحتياطي في القطاع المنطقي 6. وفي حين استمر العديد من البائعين الآخرين في استخدام إعداد قطاع واحد (القطاع المنطقي 0 فقط) لمحمل التمهيد، فقد نما كود قطاع التمهيد الخاص بشركة Microsoft ليشمل القطاعات المنطقية 0 و2 منذ تقديم FAT32، حيث يعتمد القطاع المنطقي 0 على البرامج الفرعية في القطاع المنطقي 2. وتتكون منطقة قطاع التمهيد الاحتياطي من ثلاثة قطاعات منطقية 6 و7 و8 أيضًا. وفي بعض الحالات، تستخدم Microsoft أيضًا القطاع 12 من منطقة القطاعات المحجوزة لمحمل التمهيد الموسع. |
| قطاع معلومات FS (FAT32 فقط) | |||
| قطاعات أكثر حجزًا (اختياري) | |||
| منطقة الدهون | (عدد FATs) * (القطاعات لكل FAT) | جدول تخصيص الملفات رقم 1 | يحتوي هذا عادةً على نسختين من جدول تخصيص الملفات من أجل التحقق من التكرار، على الرغم من أنه نادرًا ما يُستخدم، حتى بواسطة أدوات إصلاح القرص. هذه هي خرائط منطقة البيانات، والتي تشير إلى المجموعات التي تستخدمها الملفات والدلائل. في FAT12 وFAT16، تتبع هذه الخرائط القطاعات المحجوزة على الفور. عادةً ما يتم الاحتفاظ بالنسخ الإضافية في مزامنة محكمة عند الكتابة، ولا تُستخدم عند القراءة إلا عند حدوث أخطاء في FAT الأول. تحتوي أول مجموعتين (المجموعة 0 و1) في الخريطة على قيم خاصة. |
| جدول تخصيص الملفات رقم 2 ... (اختياري) | |||
| منطقة الدليل الجذر | (عدد الإدخالات الجذرية * 32) / (البايتات لكل قطاع) | دليل الجذر (FAT12 وFAT16 فقط) | هذا جدول دليل يخزن معلومات حول الملفات والدلائل الموجودة في الدليل الجذر. ويستخدم فقط مع FAT12 وFAT16، ويفرض على الدليل الجذر حجمًا أقصى ثابتًا يتم تخصيصه مسبقًا عند إنشاء هذا المجلد. يخزن FAT32 الدليل الجذر في منطقة البيانات، جنبًا إلى جنب مع الملفات والدلائل الأخرى، مما يسمح له بالنمو دون مثل هذا القيد. وبالتالي، بالنسبة لـ FAT32، تبدأ منطقة البيانات هنا. |
| منطقة البيانات | (عدد المجموعات) * (القطاعات لكل مجموعة) | منطقة البيانات (للملفات والدلائل) ... (حتى نهاية القسم أو القرص) | هذا هو المكان الذي يتم فيه تخزين بيانات الملف والدليل الفعلية ويشغل معظم القسم. يبدأ FAT32 عادةً جدول الدليل الجذر في المجموعة رقم 2: المجموعة الأولى لمنطقة البيانات. |
يستخدم FAT تنسيق النهاية الصغيرة لجميع الإدخالات في الرأس (باستثناء، حيث يتم ذكر ذلك صراحةً، بعض الإدخالات في قطاعات تمهيد Atari ST) وFAT(s). [5] من الممكن تخصيص قطاعات FAT أكثر مما هو ضروري لعدد المجموعات. يمكن عدم استخدام نهاية القطاع الأخير من كل نسخة FAT إذا لم تكن هناك مجموعات مقابلة. يمكن أن يكون العدد الإجمالي للقطاعات (كما هو مذكور في سجل التمهيد) أكبر من عدد القطاعات المستخدمة بواسطة البيانات (المجموعات × القطاعات لكل مجموعة)، وFATs (عدد FATs × القطاعات لكل FAT)، والدليل الجذر (غير متاح لـ FAT32)، والقطاعات المخفية بما في ذلك قطاع التمهيد: سيؤدي هذا إلى قطاعات غير مستخدمة في نهاية المجلد. إذا كان القسم يحتوي على قطاعات أكثر من العدد الإجمالي للقطاعات التي يشغلها نظام الملفات، فسيؤدي ذلك أيضًا إلى قطاعات غير مستخدمة، في نهاية القسم، بعد المجلد.
منطقة القطاعات المحجوزة
قطاع التمهيد
في أجهزة التخزين غير المقسمة ، مثل الأقراص المرنة ، يكون قطاع التمهيد ( VBR ) هو القطاع الأول (القطاع المنطقي 0 بعنوان CHS الفعلي 0/0/1 أو عنوان LBA 0). بالنسبة لأجهزة التخزين المقسمة مثل الأقراص الصلبة، يكون قطاع التمهيد هو القطاع الأول في القسم، كما هو محدد في جدول أقسام الجهاز.
| إزاحة البايت | الطول (بايت) | محتويات |
|---|---|---|
| 0x000 | 3 | تعليمات الانتقال. إذا كان قطاع التمهيد يحتوي على توقيع صالح موجود في آخر بايتين من قطاع التمهيد (تم اختباره بواسطة معظم برامج تحميل التمهيد الموجودة في BIOS النظام أو MBR) وتم التمهيد من هذا المجلد، فسوف يمرر برنامج تحميل التمهيد السابق التنفيذ إلى نقطة الدخول هذه بقيم سجل معينة، ثم تتخطى تعليمات الانتقال بقية الرأس (غير القابل للتنفيذ). راجع سجل تمهيد المجلد .
منذ DOS 2.0، يجب أن تبدأ الأقراص القابلة للتمهيد من نوع x86 إما بقفزة قصيرة تليها NOP ( تسلسل سلسلة العمليات 0xEB 0x?? 0x90 [6] [7] كما هو موضح منذ DOS 3.0 [nb 1] —وعلى DOS 1.1 [8] [9] ) أو قفزة قريبة ( 0xE9 0x?? 0x?? [6] [7] كما هو موضح على معظم الأقراص المنسقة بنظام DOS 2.x ( Compaq و TeleVideo ) بالإضافة إلى بعض أقراص DOS 3.1 ( Epson و Olivetti ). للتوافق مع الإصدارات السابقة، تقبل أنظمة MS-DOS وPC DOS وDR-DOS أيضًا قفزة ( 0x69 0x?? 0x?? ) [6] [7] [10] على الأقراص القابلة للإزالة. على الأقراص الصلبة، يقبل DR DOS أيضًا تسلسل JMPS المُبادل الذي يبدأ بـ NOP ( 0x90 0xEB 0x?? )، [10] بينما لا يفعل MS-DOS/PC DOS ذلك. (انظر أدناه لمعرفة توافق Atari ST.) يعمل وجود أحد أنماط سلسلة العمليات هذه (بالاشتراك مع اختبار لقيمة واصف وسائط صالحة عند الإزاحة 0x015 ) كمؤشر لنظام DOS 3.3 والإصدارات الأحدث على وجود نوع ما من BPB (على الرغم من أنه لا ينبغي تحديد الحجم الدقيق من هدف القفزة نظرًا لأن بعض قطاعات التمهيد تحتوي على بيانات محمل تمهيد خاصة تتبع BPB)، بينما بالنسبة لمجلدات DOS 1.x (وبعض DOS 3.0)، فسيتعين عليها الرجوع إلى طريقة DOS 1.x لاكتشاف التنسيق عبر بايت الوسائط في FAT (في القطاع المنطقي 1). |
| 0x003 | 8 | اسم OEM (مبطن بمسافات 0x20 ). تحدد هذه القيمة النظام الذي تم تهيئة القرص فيه.
على الرغم من توثيقه رسميًا على أنه مجاني للاستخدام من قبل الشركات المصنعة للمعدات الأصلية، فإن أنظمة MS-DOS/PC DOS (منذ 3.1) وWindows 95/98/SE/ME وOS/2 تتحقق من هذا الحقل لتحديد الأجزاء الأخرى من سجل التمهيد التي يمكن الاعتماد عليها وكيفية تفسيرها. لذلك، قد يؤدي تعيين علامة OEM على قيم عشوائية أو وهمية إلى عدم تعرف MS-DOS وPC DOS وOS/2 على وحدة التخزين بشكل صحيح والتسبب في تلف البيانات أثناء الكتابة. [11] [12] [13] ومن الأمثلة الشائعة " يقوم بعض البائعين بتخزين معلومات الترخيص أو مفاتيح الوصول في هذا الإدخال. سيقوم Volume Tracker في Windows 95/98/SE/ME باستبدال ملصق OEM تقوم بعض أجهزة تحميل التمهيد بإجراء تعديلات أو رفض تمرير التحكم إلى قطاع التمهيد اعتمادًا على قيم معينة تم اكتشافها هنا (على سبيل المثال، NEWLDR offset 0x018 ). لن تتعامل ذاكرة القراءة فقط (ROM) الخاصة بجهاز الكمبيوتر Wang Professional مع القرص باعتباره قابلاً للتمهيد إلا إذا كانت الأحرف الأربعة الأولى من ملصق OEM هي " إذا كان التوقيع في إزاحة القطاع 0x042 في FAT32 EBPB هو 0x29 وكان إجمالي إدخالي القطاع 0، فقد يعمل إدخال نظام الملفات كإدخال عدد القطاعات الإجمالي 64 بت ويمكن استخدام إدخال تسمية OEM كنوع بديل لنظام الملفات بدلاً من الإدخال العادي في الإزاحة 0x052 . وبنفس الطريقة، إذا تم تعيين هذا الإدخال على " |
| 0x00ب | يختلف | كتلة معلمات BIOS (13 أو 19 أو 21 أو 25 بايت)، أو كتلة معلمات BIOS الممتدة (32 أو 51 بايت)، أو كتلة معلمات BIOS الممتدة FAT32 (60 أو 79 بايت)؛ يختلف الحجم والمحتوى بين أنظمة التشغيل والإصدارات، انظر أدناه |
| يختلف | يختلف | رمز التمهيد الخاص بنظام الملفات ونظام التشغيل؛ يبدأ غالبًا فورًا خلف [E]BPB، ولكن في بعض الأحيان يتم تخزين بيانات محمل التمهيد "الخاصة" الإضافية بين نهاية [E]BPB وبداية رمز التمهيد؛ وبالتالي لا يمكن استخدام القفزة عند الإزاحة 0x001 لاستنتاج تنسيق [E]BPB الدقيق بشكل موثوق.
(بالتزامن مع DOS 3.31 BPB على الأقل، تستخدم بعض محملات التمهيد GPT (مثل BootDuet ) 0x1FA – 0x1FD لتخزين أعلى 4 بايتات من القطاعات المخفية للمجلدات الموجودة خارج أول قطاعين 32 -1. نظرًا لأن هذا الموقع قد يحتوي على تعليمات برمجية أو بيانات أخرى في قطاعات تمهيد أخرى، فقد لا يتم الكتابة إليه عندما لا تحتوي جميع 0x1F9 – 0x1FD على صفر.) |
| 0x1FD | 1 | رقم محرك الأقراص الفعلي (فقط في قطاعات التمهيد من DOS 3.2 إلى 3.31). مع OS/2 1.0 وDOS 4.0، تم نقل هذا الإدخال إلى إزاحة القطاع 0x024 (عند الإزاحة 0x19 في EBPB). تحتفظ معظم قطاعات التمهيد الخاصة بـ Microsoft وIBM بقيم 0x00 عند الإزاحة 0x1FC و 0x1FD منذ ذلك الحين، على الرغم من أنها ليست جزءًا من التوقيع عند 0x1FE .
إذا كان هذا ينتمي إلى وحدة تخزين تمهيد، فيمكن تكوين MBR المحسّن في DR-DOS 7.07 (انظر إزاحة NEWLDR 0x014 ) لتحديث هذا الإدخال ديناميكيًا إلى قيمة DL المقدمة في وقت التمهيد أو القيمة المخزنة في جدول الأقسام. يتيح هذا التمهيد من محركات أقراص بديلة، حتى عندما يتجاهل رمز VBR قيمة DL. |
| 0x1FE | 2 | توقيع قطاع التمهيد ( 0x55 0xAA ). [4] [nb 2] يشير هذا التوقيع إلى رمز تمهيد متوافق مع IBM PC ويتم اختباره بواسطة معظم برامج تحميل التمهيد الموجودة في BIOS النظام أو MBR قبل تمرير التنفيذ إلى رمز تمهيد قطاع التمهيد (ولكن، على سبيل المثال، ليس بواسطة IBM PC ROM-BIOS الأصلي [16] ). لا يشير هذا التوقيع إلى نظام ملفات أو نظام تشغيل معين. نظرًا لأن هذا التوقيع غير موجود على جميع الأقراص المنسقة بنظام FAT (على سبيل المثال، ليس على DOS 1.x [8] [9] أو وحدات تخزين FAT غير القابلة للتمهيد بنظام x86)، يجب ألا تعتمد أنظمة التشغيل على وجود هذا التوقيع عند تسجيل الدخول إلى وحدات التخزين (قامت الإصدارات القديمة من MS-DOS/PC DOS قبل الإصدار 3.3 بفحص هذا التوقيع، ولكن الإصدارات الأحدث بالإضافة إلى DR-DOS لا تفعل ذلك). يجب ألا تكتب أدوات التنسيق هذا التوقيع إذا كان قطاع التمهيد المكتوب لا يحتوي على جزء صغير من محمل التمهيد الوهمي المتوافق مع x86 على الأقل؛ على الأقل، يجب إيقاف وحدة المعالجة المركزية في حلقة لا نهاية لها ( 0xF4 0xEB 0xFD ) أو إصدار INT 19h وRETF ( 0xCD 0x19 0xCB ). لا ينبغي استخدام سلاسل العمليات هذه عند إزاحة القطاع 0x000 ، مع ذلك، لأن DOS يختبر أكواد التشغيل الأخرى كتوقيعات. تستخدم العديد من أقراص MSX-DOS 2 المرنة 0xEB 0xFE 0x90 عند إزاحة القطاع 0x000 للقبض على وحدة المعالجة المركزية في حلقة ضيقة مع الحفاظ على نمط التعليمات البرمجية التشغيلية المعترف بها بواسطة MS-DOS/PC DOS.
يجب أن يكون هذا التوقيع موجودًا عند إزاحة القطاع الثابتة 0x1FE لأحجام القطاعات 512 أو أعلى. إذا كان حجم القطاع المادي أكبر، فيمكن تكراره في نهاية القطاع المادي. ستفترض أجهزة Atari STs أن القرص قابل للتمهيد بواسطة Atari 68000 إذا كان المجموع الاختباري على 256 كلمة كبيرة النهاية لقطاع التمهيد يساوي 0x1234 . [17] [ملاحظة 3] إذا كان رمز محمل التمهيد متوافقًا مع IBM، فمن المهم التأكد من أن المجموع الاختباري على قطاع التمهيد لا يتطابق مع هذا المجموع الاختباري عن طريق الخطأ. إذا حدث هذا، فيمكن استخدام تغيير بت غير مستخدم (على سبيل المثال، قبل أو بعد منطقة رمز التمهيد) لضمان عدم استيفاء هذا الشرط. في حالات نادرة، تم ملاحظة توقيع معكوس 0xAA 0x55 على صور القرص. يمكن أن يكون هذا نتيجة لتنفيذ خاطئ في أداة التنسيق استنادًا إلى وثائق خاطئة، [nb 2] ولكنه قد يشير أيضًا إلى ترتيب بايتات مبدل لصورة القرص، والذي ربما حدث أثناء النقل بين الأنظمة الأساسية باستخدام ترتيب طرفي مختلف . قيم BPB وأنظمة الملفات FAT12 وFAT16 وFAT32 مخصصة لاستخدام تمثيل الطرف الصغير فقط ولا توجد تنفيذات معروفة لمتغيرات تستخدم قيم الطرف الكبير بدلاً من ذلك. |
| إزاحة البايت | الطول (بايت) | محتويات |
|---|---|---|
| 0x000 | 2 | تعليمات القفز. تبدأ قطاعات التمهيد الأصلية لجهاز Atari ST بالتعليمات 68000 BRA.S ( 0x60 0x?? ). [5] من أجل التوافق مع أنظمة تشغيل الكمبيوتر الشخصي، تبدأ الأقراص المنسقة لجهاز Atari ST منذ TOS 1.4 بـ 0xE9 0x?? بدلاً من ذلك. |
| 0x002 | 6 | اسم الشركة المصنعة للمعدات الأصلية (مبطن بمسافات 0x20 )، على سبيل المثال، " " ( 0x4C 0x6F 0x61 0x64 0x65 0x72 ) على وحدات التخزين التي تحتوي على محمل تمهيد Atari ST. راجع احتياطات اسم الشركة المصنعة للمعدات الأصلية للأقراص المنسقة للكمبيوتر الشخصي أعلاه. يختلف الإزاحة وطول هذا الإدخال مقارنة بالإدخال على الأقراص المنسقة للكمبيوتر الشخصي.
Loader |
| 0x008 | 3 | الرقم التسلسلي للقرص [5] (افتراضي: 0x00 0x00 0x00 )، يستخدمه Atari ST للكشف عن تغيير القرص. (سيقوم Windows 9x Volume Tracker دائمًا بتخزين " " هنا على الأقراص المرنة غير المحمية ضد الكتابة؛ انظر أعلاه.) يجب تغيير هذه القيمة إذا تم تغيير محتوى القرص خارجيًا، وإلا فقد لا تتعرف أجهزة Atari ST على التغيير عند إعادة الإدخال. يتداخل هذا الإدخال مع حقل اسم الشركة المصنعة الأصلية على الأقراص المنسقة للكمبيوتر الشخصي. للحصول على أقصى قدر من التوافق، قد يكون من الضروري مطابقة أنماط معينة هنا؛ انظر أعلاه.
IHC |
| 0x00ب | 19 | كتلة معلمات BIOS DOS 3.0 ( تنسيق little-endian ) |
| 0x01E | يختلف | بيانات قطاع التمهيد الخاص (تنسيق مختلط بين الكبير والصغير ) |
| يختلف | يختلف | كود تمهيد Atari ST الخاص بنظام الملفات ونظام التشغيل. لا يجب إجراء أي افتراضات فيما يتعلق بموضع تحميل الكود، والذي يجب أن يكون قابلاً للنقل. إذا فشل تحميل نظام التشغيل (TOS.IMG [5] )، يمكن للكود العودة إلى BIOS Atari ST باستخدام تعليمة 68000 RTS ( رمز التشغيل 0x4E75 مع تسلسل بايتات كبير النهاية 0x4E 0x75 [nb 2] ) وجميع السجلات دون تغيير. |
| 0x1FE | 2 | المجموع الاختباري. يجب أن يتطابق المجموع الاختباري المكون من 16 بتًا على الكلمات ذات النهاية الكبيرة البالغ عددها 256 كلمة في قطاع التمهيد الذي يبلغ طوله 512 بايتًا والذي يتضمن هذه الكلمة مع القيمة السحرية 0x1234 للإشارة إلى رمز قطاع التمهيد القابل للتنفيذ في Atari ST 68000. [17] يمكن استخدام إدخال المجموع الاختباري هذا لمحاذاة المجموع الاختباري وفقًا لذلك. [nb 3]
إذا كان حجم القطاع المنطقي أكبر من 512 بايت، فإن الباقي لا يتم تضمينه في المجموع الاختباري وعادة ما يتم ملؤه بالصفر. [17] نظرًا لأن بعض أنظمة تشغيل الكمبيوتر الشخصي لا تقبل عن طريق الخطأ الأقراص المرنة بتنسيق FAT إذا لم يكن التوقيع 0x55 0xAA [nb 2] موجودًا هنا، فمن المستحسن وضع 0x55 0xAA في هذا المكان (وإضافة محمل تمهيد متوافق مع IBM أو جزء منه) واستخدام كلمة غير مستخدمة في البيانات الخاصة أو منطقة رمز التمهيد أو الرقم التسلسلي لضمان عدم تطابق المجموع الاختباري 0x1234 [nb 3] (ما لم يكن تراكب رمز الدهون المشترك قابلاً للتنفيذ لكل من IBM PC وAtari ST في نفس الوقت). |
| إزاحة البايت | الطول (بايت) | محتويات |
|---|---|---|
| 0x000 | 3 | تعليمات القفزة الوهمية (على سبيل المثال، 0xEB 0xFE 0x90 ). |
| 0x003 | 8 | اسم OEM (مبطن بمسافات 0x20 ). |
| 0x00ب | 19 | دوس 3.0 بي بي بي |
| 0x01E | يختلف (2) | نقطة دخول كود MSX-DOS 1 لمعالجات Z80 إلى كود تمهيد MSX. هذا هو المكان الذي تنتقل إليه أجهزة MSX-DOS 1 عند تمرير التحكم إلى قطاع التمهيد. يتداخل هذا الموقع مع تنسيقات BPB منذ DOS 3.2 أو كود قطاع التمهيد المتوافق مع x86 لقطاعات التمهيد المتوافقة مع IBM PC وسيؤدي إلى تعطل جهاز MSX ما لم يتم اتخاذ احتياطات خاصة مثل الإمساك بوحدة المعالجة المركزية في حلقة ضيقة هنا (opstring 0x18 0xFE لـ JR 0x01E ). |
| 0x020 | 6 | توقيع مجلد MSX-DOS 2 " VOL_ID".
|
| 0x026 | 1 | علم إلغاء الحذف في نظام التشغيل MSX-DOS 2 (الافتراضي: 0x00 . إذا كان التوقيع " " موجودًا عند إزاحة القطاع 0x020 ، يشير هذا العلم إلى ما إذا كان المجلد يحتوي على ملفات محذوفة يمكن إلغاء حذفها (انظر الإزاحة 0x0C في إدخالات الدليل).
VOL_ID |
| 0x027 | 4 | الرقم التسلسلي للقرص MSX-DOS 2 (الافتراضي: 0x00000000 ). إذا كان التوقيع " " موجودًا عند إزاحة القطاع 0x020 ، يقوم MSX-DOS 2 بتخزين الرقم التسلسلي للمجلد هنا لاكتشاف تغيير الوسائط.
VOL_ID |
| 0x02ب | 5 | محجوز |
| 0x030 | يختلف (2) | نقطة دخول كود MSX-DOS 2 لمعالجات Z80 إلى كود تمهيد MSX. هذا هو المكان الذي تنتقل إليه أجهزة MSX-DOS 2 عند تمرير التحكم إلى قطاع التمهيد. يتداخل هذا الموقع مع تنسيقات EBPB منذ DOS 4.0 / OS/2 1.2 أو كود قطاع التمهيد المتوافق مع x86 لقطاعات التمهيد المتوافقة مع IBM PC وسيؤدي إلى تعطل جهاز MSX ما لم يتم اتخاذ احتياطات خاصة مثل الإمساك بوحدة المعالجة المركزية في حلقة ضيقة هنا (opstring 0x18 0xFE لـ JR 0x030 ). |
| 0x1FE | 2 | إمضاء |
كتلة معلمات BIOS
| تعويض القطاع | إزاحة BPB | الطول (بايت) | محتويات |
|---|---|---|---|
| 0x00ب | 0x00 | 2 | بايتات لكل قطاع منطقي؛ القيمة الأكثر شيوعًا هي 512. لا تدعم بعض أنظمة التشغيل أحجام قطاعات أخرى. من أجل البساطة وأقصى قدر من الأداء، غالبًا ما يكون حجم القطاع المنطقي مطابقًا لحجم القطاع المادي للقرص، ولكن يمكن أن يكون أكبر أو أصغر في بعض السيناريوهات.
الحد الأدنى للقيمة المسموح بها لمجلدات FAT12/FAT16 غير القابلة للتمهيد والتي تحتوي على ما يصل إلى 65535 قطاعًا منطقيًا هو 32 بايت، أو 64 بايت لأكثر من 65535 قطاعًا منطقيًا. الحد الأدنى للقيمة العملية هو 128. استخدمت بعض إصدارات DOS OEM السابقة لـ DOS 3.31 أحجام قطاعات منطقية تصل إلى 8192 بايت لمجلدات FAT ذات القطاعات المنطقية . يدعم Atari ST GEMDOS أحجام قطاعات منطقية بين 512 و4096. [17] يدعم DR-DOS التمهيد من مجلدات FAT12/FAT16 ذات أحجام قطاعات منطقية تصل إلى 32 كيلوبايت وتنفيذات INT 13h التي تدعم القطاعات المادية حتى 1024 بايت/قطاع. [ملاحظة 4] الحد الأدنى لحجم القطاع المنطقي لمجلدات FAT32 القياسية هو 512 بايت، ويمكن تقليله إلى 128 بايت دون دعم قطاع معلومات نظام الملفات. تستخدم محركات الأقراص المرنة ووحدات التحكم أحجام قطاعات مادية تبلغ 128 و256 و512 و1024 بايت (على سبيل المثال، PC/AX). تدعم مجموعة Atari Portfolio حجم قطاع يبلغ 512 للمجلدات التي يزيد حجمها عن 64 كيلو بايت، و256 بايت للمجلدات التي يزيد حجمها عن 32 كيلو بايت، و128 بايت للمجلدات الأصغر. تستخدم محركات الأقراص المغناطيسية الضوئية أحجام قطاعات تبلغ 512 و1024 و2048 بايت. في عام 2005، استخدمت بعض أقراص Seagate الصلبة المخصصة أحجام قطاعات تبلغ 1024 بايت بدلاً من 512 بايت الافتراضية. [18] تستخدم أقراص التنسيق المتقدم 4096 بايت لكل قطاع ( 4Kn ) منذ عام 2010، ولكنها ستكون أيضًا قادرة على محاكاة قطاعات بحجم 512 بايت ( 512e ) لفترة انتقالية. يدعم Linux، وبالتالي Android، حجم قطاع منطقي أكبر بكثير، وهو موثق رسميًا في صفحة الدليل الخاصة بأدوات نظام الملفات بحجم يصل إلى 32 كيلوبايت. |
| 0x00د | 0x02 | 1 | القطاعات المنطقية لكل مجموعة. القيم المسموح بها هي 1، 2، 4، 8، 16، 32، 64، و128. تدعم بعض إصدارات MS-DOS 3.x حجم مجموعة أقصى يبلغ 4 كيلوبايت فقط، بينما تدعم أنظمة MS-DOS/PC DOS الحديثة وWindows 95 حجم مجموعة أقصى يبلغ 32 كيلوبايت. تدعم أنظمة Windows 98/SE/ME أيضًا حجم مجموعة يبلغ 64 كيلوبايت جزئيًا، ولكن بعض خدمات FCB غير متوفرة على مثل هذه الأقراص وتفشل التطبيقات المختلفة في العمل. تدعم عائلة Windows NT وبعض إصدارات DOS البديلة مثل PTS-DOS مجموعات بحجم 64 كيلوبايت بالكامل.
بالنسبة لمعظم أنظمة التشغيل المستندة إلى نظام التشغيل DOS، يظل الحد الأقصى لحجم المجموعة عند 32 كيلوبايت (أو 64 كيلوبايت) حتى بالنسبة لأحجام القطاعات الأكبر من 512 بايت. بالنسبة لأحجام القطاعات المنطقية 1 كيلوبايت، و2 كيلوبايت، و4 كيلوبايت، يدعم Windows NT 4.0 أحجام مجموعات تبلغ 128 كيلوبايت، بينما بالنسبة للقطاعات 2 كيلوبايت و4 كيلوبايت، يمكن أن يصل حجم المجموعة إلى 256 كيلوبايت. توفر بعض إصدارات DR-DOS دعمًا محدودًا لمجموعات 128 كيلوبايت مع 512 بايت/قطاع باستخدام قيمة القطاعات/المجموعة 0. سيتوقف نظام MS-DOS/PC DOS عن العمل عند بدء التشغيل إذا تم تحديد هذه القيمة بشكل خاطئ على أنها 0. [19] : INT 21h AX=53h |
| 0x00E | 0x03 | 2 | عدد القطاعات المنطقية المحجوزة. عدد القطاعات المنطقية قبل أول FAT في صورة نظام الملفات. على الأقل 1 لهذا القطاع، وعادةً 32 لـ FAT32 (لحمل قطاع التمهيد الموسع وقطاع معلومات نظام الملفات وقطاعات التمهيد الاحتياطية).
نظرًا لأن وحدات التخزين المنسقة بنظام DR-DOS 7.0x FAT32 تستخدم قطاع تمهيد أحادي القطاع وقطاع معلومات نظام الملفات وقطاع النسخ الاحتياطي، فإن بعض وحدات التخزين المنسقة بنظام DR-DOS تستخدم قيمة 4 هنا. |
| 0x010 | 0x05 | 1 | عدد جداول تخصيص الملفات. 2 في الغالب؛ وقد تستخدم أقراص RAM جدولاً واحدًا. لا تدعم معظم إصدارات MS-DOS/PC DOS أكثر من جدولين FAT. تدعم بعض أنظمة التشغيل DOS جدولين FAT فقط في برنامج تشغيل القرص المدمج، ولكنها تدعم عددًا آخر من جداول FAT لبرامج تشغيل الأجهزة التي يتم تحميلها لاحقًا.
لن يتم التعامل مع المجلدات التي تعلن عن 2 FAT في هذا الإدخال كمجلدات TFAT . إذا كانت القيمة تختلف عن 2، فقد تحاول بعض أنظمة تشغيل Microsoft تحميل المجلد كمجلد TFAT واستخدام المجموعة الثانية (المجموعة 1) من FAT الأول لتحديد حالة TFAT. |
| 0x011 | 0x06 | 2 | الحد الأقصى لعدد إدخالات دليل الجذر FAT12 أو FAT16. 0 لـ FAT32، حيث يتم تخزين دليل الجذر في مجموعات بيانات عادية؛ راجع الإزاحة 0x02C في FAT32 EBPBs.
قد تشير القيمة 0 بدون FAT32 EBPB (لا يوجد توقيع 0x29 أو 0x28 عند الإزاحة 0x042 ) أيضًا إلى دليل جذر بحجم متغير في بعض تطبيقات FAT12 وFAT16 غير القياسية، والتي تخزن مجموعة بداية الدليل الجذر في إدخال المجموعة 1 في FAT. [20] ومع ذلك، لا تدعم أنظمة التشغيل السائدة هذا الامتداد، [20] لأنه قد يتعارض مع استخدامات أخرى لإدخال المجموعة 1 لعلامات الصيانة أو علامة نهاية السلسلة الحالية أو ملحقات TFAT . يجب تعديل هذه القيمة بحيث تستهلك إدخالات الدليل دائمًا القطاعات المنطقية الكاملة، مع الأخذ في الاعتبار أن كل إدخال دليل يشغل 32 بايتًا. يتطلب MS-DOS/PC DOS أن تكون هذه القيمة مضاعفًا لـ 16. الحد الأقصى للقيمة المدعومة على الأقراص المرنة هو 240، [6] الحد الأقصى للقيمة المدعومة بواسطة MS-DOS/PC DOS على الأقراص الصلبة هو 512. [6] يدعم DR-DOS التمهيد من وحدات تخزين FAT12/FAT16، إذا كان ملف التمهيد موجودًا في أول 2048 إدخال دليل جذر. |
| 0x013 | 0x08 | 2 | إجمالي القطاعات المنطقية. 0 لنظام FAT32. (إذا كان صفرًا، استخدم قيمة مكونة من 4 بايت عند الإزاحة 0x020 ) |
| 0x015 | 0×0أ | 1 | موصوف الوسائط (مقارنة: معرف FAT): [21] [22] [23] [nb 1]
يجب أن تعكس هذه القيمة موصوف الوسائط المخزن (في الإدخال الخاص بالعنقود 0) في البايت الأول من كل نسخة من FAT. تتجاهل بعض أنظمة التشغيل قبل DOS 3.2 ( 86-DOS و MS-DOS / PC DOS 1.x و MSX-DOS الإصدار 1.0) معلمات قطاع التمهيد تمامًا وتستخدم قيمة موصوف الوسائط من البايت الأول من FAT للاختيار بين قوالب المعلمات المحددة مسبقًا داخليًا. يجب أن تكون أكبر من أو تساوي 0xF0 منذ DOS 4.0. [6] في محركات الأقراص القابلة للإزالة، سيفترض DR-DOS وجود BPB إذا كانت هذه القيمة أكبر من أو تساوي 0xF0 ، [6] بينما بالنسبة للأقراص الثابتة، يجب أن تكون 0xF8 لافتراض وجود BPB. في البداية، كانت هذه القيم مخصصة للاستخدام كأعلام بت؛ بالنسبة لأي وسائط قابلة للإزالة بدون تنسيق BPB معترف به وموصوف وسائط من 0xF8 أو 0xFA إلى 0xFF، يعامل MS-DOS/PC DOS البت 1 كعلامة لاختيار تنسيق 9 قطاعات لكل مسار بدلاً من تنسيق 8 قطاعات، والبت 0 كعلامة للإشارة إلى الوسائط ذات الوجهين. [7] القيم من 0x00 إلى 0xEF ومن 0xF1 إلى 0xF7 محجوزة ولا يجب استخدامها. |
| 0x016 | 0x0ب | 2 | القطاعات المنطقية لكل جدول تخصيص الملفات لنظامي التشغيل FAT12/FAT16. يقوم نظام FAT32 بتعيين هذا إلى 0 ويستخدم القيمة المكونة من 32 بت عند الإزاحة 0x024 بدلاً من ذلك. |
DOS 3.0 BPB:
تم توثيق الامتدادات التالية منذ DOS 3.0، ومع ذلك، كانت مدعومة بالفعل من قبل بعض مشكلات DOS 2.11. [28] لا يزال MS-DOS 3.10 يدعم تنسيق DOS 2.0، ولكن يمكنه استخدام تنسيق DOS 3.0 أيضًا.
| تعويض القطاع | إزاحة BPB | الطول (بايت) | محتويات |
|---|---|---|---|
| 0x00ب | 0x00 | 13 | دوس 2.0 بي بي بي |
| 0x018 | 0x0د | 2 | القطاعات المادية لكل مسار للأقراص ذات هندسة INT 13h CHS، [4] على سبيل المثال، 15 لقرص مرن بحجم "1.20 ميجا بايت" (1200 كيلو بايت).
يشير الإدخال الصفري إلى أن هذا الإدخال محجوز، ولكن غير مستخدم. |
| 0x01أ | 0×0ف | 2 | عدد الرؤوس للأقراص ذات هندسة INT 13h CHS، [4] على سبيل المثال، 2 للقرص المرن ذي الوجهين.
يتسبب خطأ في جميع إصدارات MS-DOS/PC DOS حتى الإصدار 7.10 في تعطل أنظمة التشغيل هذه بالنسبة لهندسة CHS التي تحتوي على 256 رأسًا، وبالتالي تختار جميع أنظمة BIOS تقريبًا الحد الأقصى لعدد الرؤوس وهو 255 رأسًا فقط. يشير الإدخال الصفري إلى أن هذا الإدخال محجوز، ولكن غير مستخدم. |
| 0x01 ج | 0x11 | 2 | عدد القطاعات المخفية التي تسبق القسم الذي يحتوي على وحدة تخزين FAT هذه. يجب أن يكون هذا الحقل دائمًا مساويًا للصفر على الوسائط غير المجزأة. هذا الإدخال في نظام التشغيل DOS 3.0 غير متوافق مع إدخال مماثل عند الإزاحة 0x01C في BPBs منذ نظام التشغيل DOS 3.31.
لا يجب استخدامه إذا كان إدخال القطاعات المنطقية عند الإزاحة 0x013 يساوي صفرًا. |
DOS 3.2 BPB:
رسميًا، لا يزال نظام MS-DOS 3.20 يستخدم تنسيق DOS 3.0، ولكن SYSتم FORMATتعديله لدعم تنسيق أطول بمقدار 6 بايت بالفعل (لم يتم استخدام جميع إدخالاته).
| تعويض القطاع | إزاحة BPB | الطول (بايت) | محتويات |
|---|---|---|---|
| 0x00ب | 0x00 | 19 | دوس 3.0 بي بي بي |
| 0x01E | 0x13 | 2 | إجمالي القطاعات المنطقية بما في ذلك القطاعات المخفية. هذا الإدخال في DOS 3.2 غير متوافق مع إدخال مماثل عند الإزاحة 0x020 في BPBs منذ DOS 3.31.
لا يجب استخدامه إذا كان إدخال القطاعات المنطقية عند الإزاحة 0x013 يساوي صفرًا. |
DOS 3.31 BPB:
تم تقديمه رسميًا مع DOS 3.31 ولم يتم استخدامه بواسطة DOS 3.2، وقد تم تصميم بعض أدوات DOS 3.2 لتكون على دراية بهذا التنسيق الجديد بالفعل. توصي الوثائق الرسمية بالثقة في هذه القيم فقط إذا كان إدخال القطاعات المنطقية عند الإزاحة 0x013 يساوي صفرًا.
| تعويض القطاع | إزاحة BPB | الطول (بايت) | محتويات |
|---|---|---|---|
| 0x00ب | 0x00 | 13 | دوس 2.0 بي بي بي |
| 0x018 | 0x0د | 2 | القطاعات المادية لكل مسار للأقراص ذات هندسة INT 13h CHS، [4] على سبيل المثال، 18 لقرص مرن بحجم "1.44 ميجا بايت" (1440 كيلو بايت). غير مستخدمة للأقراص التي لم تعد تدعم الوصول إلى CHS. مماثلة لإدخال متاح منذ DOS 3.0.
يشير الإدخال الصفري إلى أن هذا الإدخال محجوز، ولكن غير مستخدم. قد تشير القيمة 0 إلى الوصول إلى LBA فقط، ولكنها قد تتسبب في استثناء القسمة على الصفر في بعض برامج تحميل التمهيد، والذي يمكن تجنبه عن طريق تخزين قيمة محايدة 1 هنا، إذا لم يكن من الممكن محاكاة هندسة CHS بشكل معقول. |
| 0x01أ | 0×0ف | 2 | عدد الرؤوس للأقراص ذات هندسة INT 13h CHS، [4] على سبيل المثال، 2 للقرص المرن ذي الوجهين. غير مستخدم للأقراص التي لم تعد تدعم الوصول إلى CHS. مماثل لإدخال متاح منذ DOS 3.0.
يتسبب خطأ في جميع إصدارات MS-DOS/PC DOS حتى الإصدار 7.10 في تعطل أنظمة التشغيل هذه بالنسبة لهندسة CHS التي تحتوي على 256 رأسًا، وبالتالي تختار جميع أنظمة BIOS تقريبًا الحد الأقصى لعدد الرؤوس وهو 255 رأسًا فقط. يشير الإدخال الصفري إلى أن هذا الإدخال محجوز، ولكن غير مستخدم. قد تشير القيمة 0 إلى الوصول إلى LBA فقط، ولكنها قد تتسبب في استثناء القسمة على الصفر في بعض برامج تحميل التمهيد، والذي يمكن تجنبه عن طريق تخزين قيمة محايدة 1 هنا، إذا لم يكن من الممكن محاكاة هندسة CHS بشكل معقول. |
| 0x01 ج | 0x11 | 4 | عدد القطاعات المخفية التي تسبق القسم الذي يحتوي على وحدة تخزين FAT هذه. يجب أن يكون هذا الحقل دائمًا صفرًا على الوسائط غير المجزأة. [24] [25] [26] هذا الإدخال في DOS 3.31 غير متوافق مع إدخال مماثل عند الإزاحة 0x01C في DOS 3.0-3.3 BPBs. على الأقل، يمكن الوثوق به إذا كان يحمل صفرًا، أو إذا كان إدخال القطاعات المنطقية عند الإزاحة 0x013 صفرًا.
إذا كان هذا ينتمي إلى قسم نشط متقدم (AAP) تم تحديده في وقت التمهيد، فسيتم تحديث إدخال BPB بشكل ديناميكي بواسطة MBR المحسن ليعكس قيمة "القطاعات النسبية" في جدول الأقسام، المخزنة عند الإزاحة 0x1B6 في AAP أو NEWLDR MBR، بحيث يصبح من الممكن تشغيل نظام التشغيل من EBRs . (تستخدم بعض برامج تحميل التمهيد GPT (مثل BootDuet ) إزاحات قطاع التمهيد 0x1FA–0x1FD لتخزين أعلى 4 بايتات من قيمة القطاعات المخفية ذات 64 بت للمجلدات الموجودة خارج أول 2 32 −1 قطاع.) |
| 0x020 | 0x15 | 4 | إجمالي القطاعات المنطقية (إذا كان أكبر من 65535؛ وإلا، راجع الإزاحة 0x013 ). هذا الإدخال في DOS 3.31 غير متوافق مع إدخال مماثل عند الإزاحة 0x01E في DOS 3.2-3.3 BPBs. رسميًا، يجب استخدامه فقط إذا كان إدخال القطاعات المنطقية عند الإزاحة 0x013 يساوي صفرًا، ولكن بعض أنظمة التشغيل (بعض الإصدارات القديمة من DR DOS) تستخدم هذا الإدخال أيضًا للأقراص الأصغر.
بالنسبة للوسائط المقسمة، إذا كان هذا والإدخال في 0x013 كلاهما 0 (كما هو موضح في بعض وحدات تخزين DOS 3.x FAT16)، فستقوم العديد من أنظمة التشغيل (بما في ذلك MS-DOS/PC DOS) باسترداد القيمة من إدخال القسم المقابل (عند الإزاحة 0xC ) في MBR بدلاً من ذلك. إذا كانت كل من هذه الإدخالات تساوي 0 على وحدات التخزين التي تستخدم FAT32 EBPB بالتوقيع 0x29 ، فإن القيم التي تتجاوز حد 4,294,967,295 (2 32 −1) (في بعض وحدات تخزين DR-DOS ذات إدخالات مجموعة 32 بت) يمكنها استخدام إدخال 64 بت عند الإزاحة 0x052 بدلاً من ذلك. |
تُترجم صيغة بسيطة رقم المجموعة المحدد لوحدة التخزين CNإلى رقم قطاع منطقي LSN: [24] [25] [26]
- حدد (مرة واحدة) حيث يتم تخزين عدد القطاعات المحجوزة عند الإزاحة 0x00E ، وعدد FATs عند الإزاحة 0x010 ، والقطاعات لكل FAT عند الإزاحة 0x016 (FAT12/FAT16) أو 0x024 (FAT32)، وإدخالات الدليل الجذر عند الإزاحة 0x011 ، وحجم القطاع عند الإزاحة 0x00B ، وتقريبه إلى عدد صحيح.
SSA=RSC+FN×SF+ceil((32×RDE)/SS)RSCFNSFRDESSceil(x) - حدد المكان الذي يتم فيه تخزين القطاعات لكل مجموعة عند الإزاحة 0x00D .
LSN=SSA+(CN−2)×SCSC
في الوسائط غير المقسمة، يكون عدد القطاعات المخفية في المجلد صفرًا وبالتالي تصبح LSNالعناوين LBAهي نفسها طالما كان حجم القطاع المنطقي للمجلد مطابقًا لحجم القطاع المادي للوسائط الأساسية. وفي ظل هذه الظروف، يكون من السهل أيضًا الترجمة بين CHSالعناوين LSNsوكذلك:
LSN=SPT×(HN+(NOS×TN))+SN−1SPTحيث يتم تخزين القطاعات لكل مسار عند الإزاحة 0x018 ، وعدد الجوانب عند الإزاحة 0x01A . يتوافق رقم المسار ورقم الرأس ورقم القطاع مع Cylinder-head-sector : تعطي الصيغة ترجمة CHS المعروفة إلى LBA .
NOSTNHNSN
كتلة معلمات BIOS الممتدة
مزيد من البنية المستخدمة بواسطة FAT12 وFAT16 منذ OS/2 1.0 وDOS 4.0، والمعروفة أيضًا باسم Extended BIOS Parameter Block (EBPB) (البايتات الموجودة أسفل إزاحة القطاع 0x024 هي نفسها الموجودة في DOS 3.31 BPB):
| تعويض القطاع | إزاحة EBPB | الطول (بايت) | محتويات |
|---|---|---|---|
| 0x00ب | 0x00 | 25 | دوس 3.31 بي بي بي |
| 0x024 | 0x19 | 1 | رقم محرك الأقراص الفعلي ( 0x00 للوسائط القابلة للإزالة (الأولى)، 0x80 للقرص الثابت (الأول) وفقًا لـ INT 13h ). القيم المسموح بها لمحركات الأقراص الفعلية المحتملة وفقًا لنظام BIOS هي 0x00 - 0x7E و 0x80 - 0xFE . القيمتان 0x7F و 0xFF محجوزتان للأغراض الداخلية مثل التمهيد عن بُعد أو التمهيد من ROM ولا ينبغي أن تحدثا على القرص أبدًا. تستخدم بعض برامج تحميل التمهيد مثل برنامج تحميل التمهيد MS-DOS/PC DOS هذه القيمة عند تحميل نظام التشغيل، بينما يتجاهلها البعض الآخر تمامًا أو يستخدم رقم المحرك المقدم في سجل DL بواسطة برنامج تحميل التمهيد الأساسي (على سبيل المثال، مع العديد من BIOSes وMBRs). يتم تغيير الإدخال أحيانًا بواسطة الأمر SYS أو يمكن إصلاحه ديناميكيًا بواسطة برنامج تحميل التمهيد السابق لإجبار كود قطاع التمهيد على تحميل نظام التشغيل من أقراص مادية بديلة غير الافتراضية.
يوجد إدخال مشابه (فقط) في قطاعات التمهيد من DOS 3.2 إلى 3.31 عند إزاحة القطاع 0x1FD . إذا كان هذا ينتمي إلى وحدة تخزين تمهيد، فيمكن تكوين MBR المحسّن في DR-DOS 7.07 (انظر إزاحة NEWLDR 0x014 ) لتحديث إدخال EBPB هذا ديناميكيًا إلى قيمة DL المقدمة في وقت التمهيد أو القيمة المخزنة في جدول الأقسام. يتيح هذا التمهيد من محركات أقراص بديلة، حتى عندما يتجاهل رمز VBR قيمة DL. |
| 0x025 | 0×1 أمبير | 1 | محجوز؛
|
| 0x026 | 0x1ب | 1 | توقيع تمهيد ممتد. (يجب أن يكون 0x29 [24] [25] [26] [21] للإشارة إلى وجود EBPB يحتوي على الإدخالات الثلاثة التالية (منذ OS/2 1.2 وDOS 4.0). يمكن أن يكون 0x28 على بعض أقراص OS/2 1.0-1.1 وPC DOS 3.4 للإشارة إلى شكل سابق من تنسيق EBPB مع الرقم التسلسلي فقط بعده. تتعرف أنظمة MS-DOS/PC DOS 4.0 والإصدارات الأحدث، وOS/2 1.2 والإصدارات الأحدث بالإضافة إلى عائلة Windows NT على كلا التوقيعين وفقًا لذلك.) |
| 0x027 | 0x1ج | 4 | معرف المجلد (الرقم التسلسلي)
عادةً ما يتم إنشاء الرقم التسلسلي "xxxx-xxxx" عن طريق إضافة 16 بت لكلا قيمتي DX التي تم إرجاعها بواسطة INT 21h/AH=2Ah (الحصول على تاريخ النظام) [nb 5] وINT 21h/AH=2Ch (الحصول على وقت النظام) [nb 5] للكلمة العليا وإضافة أخرى 16 بت لكلا قيمتي CX للكلمة الدنيا للرقم التسلسلي. بدلاً من ذلك، توفر بعض أدوات القرص DR-DOS |
| 0x02ب | 0x20 | 11 | يجب أن يقوم البرنامج الذي يقوم بتغيير تسمية وحدة تخزين الدليل في نظام الملفات بتحديث هذا الإدخال أيضًا ، ولكن لا تقوم جميع البرامج بذلك. عادةً ما يتم عرض تسمية وحدة تخزين القسم في أدوات التقسيم نظرًا لأنه يمكن الوصول إليها دون تحميل وحدة التخزين. مدعوم منذ OS/2 1.2 وMS-DOS 4.0 والإصدارات الأحدث.
NO␠NAME␠␠␠␠غير متاح إذا تم تعيين التوقيع في 0x026 على 0x28 . تم استخدام هذه المنطقة بواسطة قطاعات التمهيد في نظام التشغيل DOS 3.2 إلى 3.3 لتخزين نسخة خاصة من جدول معلمات القرص (DPT) بدلاً من استخدام مؤشر INT 1Eh لاسترداد جدول ROM كما في الإصدارات اللاحقة من قطاع التمهيد. أدى إعادة استخدام هذا الموقع لعلامة وحدة تخزين القسم التجميلية إلى تقليل المشكلات إذا كانت بعض أدوات النظام القديمة لا تزال تحاول تصحيح جدول معلمات القرص السابق. |
| 0x036 | 0x2ب | 8 | نوع نظام الملفات، مُبطن بمسافات فارغة ( 0x20 )، على سبيل المثال، " "، "، " "
FAT12␠␠␠FAT16␠␠␠FAT␠␠␠␠␠هذا الإدخال مخصص لأغراض العرض فقط ولا يجوز استخدامه بواسطة نظام التشغيل لتحديد نوع نظام الملفات. ومع ذلك، يتم استخدامه أحيانًا لأغراض التعريف بواسطة برامج تابعة لجهات خارجية، وبالتالي لا ينبغي أن تختلف القيم عن القيم المستخدمة رسميًا. مدعوم منذ OS/2 1.2 وMS-DOS 4.0 والإصدارات الأحدث. غير متاح إذا تم تعيين التوقيع في 0x026 على 0x28 . |
كتلة معلمات BIOS الموسعة FAT32
في الأساس، يقوم نظام FAT32 بإدخال 28 بايت في EBPB، متبوعًا بـ 26 بايتًا متبقية (أو 7 بايتات فقط في بعض الأحيان) من EBPB كما هو موضح أعلاه بالنسبة لـ FAT12 وFAT16. تحدد أنظمة التشغيل Microsoft وIBM نوع نظام الملفات FAT المستخدم على وحدة تخزين فقط من خلال عدد المجموعات، وليس من خلال تنسيق BPB المستخدم أو نوع نظام الملفات المشار إليه، أي أنه من الممكن من الناحية الفنية استخدام "FAT32 EBPB" أيضًا لوحدات التخزين FAT12 وFAT16 بالإضافة إلى DOS 4.0 EBPB لوحدات التخزين FAT32 الصغيرة. نظرًا لأنه تم اكتشاف أن مثل هذه الوحدات التخزينية يتم إنشاؤها بواسطة أنظمة تشغيل Windows في ظل بعض الظروف الغريبة، [nb 6] فيجب أن تكون أنظمة التشغيل مستعدة للتعامل مع هذه الأشكال الهجينة.
| تعويض القطاع | إزاحة FAT32 EBPB | الطول (بايت) | محتويات |
|---|---|---|---|
| 0x00ب | 0x00 | 25 | دوس 3.31 بي بي بي |
| 0x024 | 0x19 | 4 | القطاعات المنطقية لكل جدول تخصيص الملفات (تتوافق مع الإدخال القديم عند الإزاحة 0x0B في DOS 2.0 BPB).
لا ينبغي أبدًا أن يصبح البايت الموجود عند الإزاحة 0x026 في هذا الإدخال 0x28 أو 0x29 لتجنب أي سوء تفسير مع تنسيق EBPB في أنظمة التشغيل غير المتوافقة مع FAT32. لحسن الحظ، في ظل الظروف العادية (حجم القطاع 512 بايت)، لا يمكن أن يحدث هذا، حيث يحتوي نظام الملفات FAT32 على 0xffffff6 = 268435446 مجموعة على الأكثر. يتناسب قطاع Fat واحد مع 512 / 4 = 128 واصف مجموعة. لذا، على الأكثر، لن تكون هناك حاجة إلا إلى ceil(268435446 / 128) = 2097152 = 0x200000 قطاع، مما يجعل البايت الثالث من عدد قطاعات FAT 0x20 على الأكثر، وهو أقل من القيم المحظورة 0x28 و0x29. |
| 0x028 | 0x1د | 2 | وصف محرك الأقراص / علامات النسخ المتطابق (بتات 3-0: عدد FAT النشط الذي يبدأ من الصفر، إذا تم تعيين البت 7. [4] إذا كان البت 7 واضحًا، يتم نسخ جميع FAT كالمعتاد. يتم الاحتفاظ بالبتات الأخرى ويجب أن تكون 0.)
تستخدم قطاعات التمهيد FAT32 في نظام التشغيل DR-DOS 7.07 مع دعم LBA وCHS المزدوج البتات 15-8 لتخزين علم وصول وجزء من رسالة. تحتوي هذه البتات إما على نمط بت 0110:1111b (حرف صغير "o"، بت 13 مضبوط للوصول إلى CHS) أو 0100:1111b (حرف كبير "O"، بت 13 مُمسوح للوصول إلى LBA). كما يتم استخدام البايت للحرف الثاني في رسالة الخطأ المحتملة "No␠IBMBIO␠␠COM" (انظر الإزاحة 0x034 )، والتي يتم عرضها إما بأحرف مختلطة أو كبيرة، مما يشير إلى نوع الوصول الفاشل). قد تقوم أدوات التنسيق أو الأدوات غير التابعة لنوع DR SYS بمسح هذه البتات، ولكن يجب أن تترك أدوات القرص الأخرى البتات 15-8 دون تغيير. |
| 0x02أ | 0x1F | 2 | الإصدار (محدد على أنه 0.0). يتم تخزين البايت الأعلى لرقم الإصدار عند الإزاحة 0x02B ، والبايت الأدنى عند الإزاحة 0x02A . [4] يجب أن ترفض تطبيقات FAT32 تحميل وحدات تخزين بأرقام إصدارات غير معروفة بالنسبة لها. |
| 0x02 ج | 0x21 | 4 | عدد مجموعات بداية الدليل الجذري، عادةً 2 (المجموعة الأولى [33] ) إذا لم تحتوي على قطاع تالف. (يفرض تنفيذ FAT32 الخاص بشركة Microsoft حدًا اصطناعيًا يبلغ 65535 إدخالاً لكل دليل، في حين لا تفعل العديد من تطبيقات الطرف الثالث ذلك.)
لا يُسمح رسميًا بقيمة المجموعة 0 ولا يمكنها أبدًا الإشارة إلى مجموعة بداية صالحة لدليل الجذر. قد تعامل بعض تطبيقات FAT32 غير القياسية هذه القيمة كمؤشر للبحث عن دليل جذر بحجم ثابت حيث من المتوقع وجوده على وحدات تخزين FAT16؛ راجع الإزاحة 0x011 . |
| 0x030 | 0x25 | 2 | رقم القطاع المنطقي لقطاع معلومات نظام الملفات، عادةً ما يكون 1، أي القطاع الثاني من قطاعات التمهيد الثلاثة لنظام الملفات FAT32.
تدعم بعض تطبيقات نظام الملفات FAT32 اختلافًا طفيفًا في مواصفات Microsoft في جعل قطاع معلومات نظام الملفات اختياريًا من خلال تحديد قيمة 0xFFFF [19] (أو 0x0000 ) في هذا الإدخال. نظرًا لأن القطاع المنطقي 0 لا يمكن أن يكون قطاع معلومات نظام الملفات صالحًا أبدًا، ولكن قطاعات معلومات نظام الملفات تستخدم نفس التوقيع الموجود في العديد من قطاعات التمهيد [ بحاجة لمصدر ] ، يجب ألا تحاول تطبيقات نظام الملفات أبدًا استخدام القطاع المنطقي 0 كقطاع معلومات نظام الملفات وتفترض بدلاً من ذلك أن الميزة غير مدعومة على هذا المجلد المعين. بدون قطاع معلومات نظام الملفات، يمكن تقليل الحد الأدنى المسموح به لحجم القطاع المنطقي لمجلدات FAT32 إلى 128 بايت لأغراض خاصة. |
| 0x032 | 0x27 | 2 | رقم القطاع المنطقي الأول لنسخة من قطاعات التمهيد الثلاثة FAT32، عادةً 6. [4]
نظرًا لأن وحدات التخزين المنسقة بنظام DR-DOS 7.0x FAT32 تستخدم قطاع تمهيد أحادي القطاع، فإن بعض وحدات التخزين المنسقة بنظام DR-DOS تستخدم قيمة 2 هنا. القيم 0x0000 [4] (و/أو 0xFFFF [19] ) محجوزة وتشير إلى عدم توفر قطاع احتياطي. |
| 0x034 | 0x29 | 12 | محجوز (قد يتم تغييره إلى تنسيق بايت الحشو 0xF6 [nb 7] باعتباره قطعة أثرية بواسطة MS-DOS ، ويجب تهيئته إلى 0 بواسطة أدوات التنسيق، ولكن لا يجب تغييره بواسطة تنفيذات نظام الملفات أو أدوات القرص لاحقًا.)
FDISKتستخدم قطاعات التمهيد في نظام التشغيل DR-DOS 7.07 FAT32 هذه البايتات الـ 12 لتخزين اسم ملف " " |
| 0x040 | 0x35 | 1 | راجع 0x024 لنظام FAT12/FAT16 (رقم محرك الأقراص الفعلي)
توجد وحدات البايت exFAT في إزاحة القطاع من 0x040 إلى 0x077 ، متداخلة مع جميع الإدخالات المتبقية من EBPB القياسي FAT32 بما في ذلك هذه الوحدة. ويمكن اكتشافها من خلال توقيع علامة OEM الخاصة بها " " في إزاحة القطاع 0x003 . في هذه الحالة، يتم تعيين البايتات الموجودة في 0x00B إلى 0x03F عادةً على 0x00 .
|
| 0x041 | 0x36 | 1 | راجع 0x025 لنظامي التشغيل FAT12/FAT16 (يستخدم لأغراض مختلفة؛ راجع FAT12/FAT16)
قد يحتوي على قطع أثرية لحشو التنسيق 0xF6 [nb 7] بعد التقسيم باستخدام MS-DOS FDISK، ولكن لم يتم تنسيقه بعد. |
| 0x042 | 0x37 | 1 | راجع 0x026 لنظامي التشغيل FAT12/FAT16 (توقيع التمهيد الموسع، 0x29 )
لا تدعم معظم تطبيقات نظام الملفات FAT32 التوقيع البديل 0x28 [15] للإشارة إلى شكل مختصر من EBPB FAT32 مع الرقم التسلسلي فقط بعده (وليس إدخالات تسمية وحدة التخزين ونوع نظام الملفات)، ولكن نظرًا لأن هذه البايتات الـ 19 غير المستخدمة في الغالب قد تخدم أغراضًا مختلفة في بعض السيناريوهات، فيجب على التطبيقات قبول 0x28 كتوقيع بديل ثم الرجوع إلى استخدام تسمية وحدة تخزين الدليل في نظام الملفات بدلاً من EBPB للتوافق مع الامتدادات المحتملة. |
| 0x043 | 0x38 | 4 | راجع 0x027 لنظامي التشغيل FAT12/FAT16 (معرف المجلد) |
| 0x047 | 0x3ج | 11 | راجع 0x02B لنظامي التشغيل FAT12/FAT16 (ملصق وحدة التخزين)
غير متاح إذا تم تعيين التوقيع عند الإزاحة 0x042 على 0x28 . |
| 0x052 | 0x47 | 8 | راجع 0x036 لـ FAT12/FAT16 (نوع نظام الملفات، مُبطن بالمساحات الفارغة ( 0x20 )، على سبيل المثال، " ").
FAT32␠␠␠غير متاح إذا تم تعيين التوقيع في 0x042 على 0x28 . إذا كانت كل من إدخالات القطاعات المنطقية الإجمالية عند الإزاحة 0x020 و 0x013 تساوي 0 على وحدات التخزين التي تستخدم FAT32 EBPB بتوقيع 0x29 ، فيمكن لوحدات التخزين التي تحتوي على أكثر من 4,294,967,295 (2 32 -1) قطاع (على سبيل المثال بعض وحدات تخزين DR-DOS مع إدخالات مجموعة مكونة من 32 بت) استخدام هذا الإدخال كإدخال قطاعات منطقية إجمالية مكونة من 64 بت بدلاً من ذلك. في هذه الحالة، يمكن استرداد علامة OEM عند إزاحة القطاع 0x003 كنوع نظام ملفات جديد بدلاً من ذلك. |
الاستثناءات
كانت إصدارات DOS قبل الإصدار 3.2 تعتمد كليًا أو جزئيًا على بايت الوصف الإعلامي في BPB أو بايت معرف FAT في المجموعة 0 من أول FAT لتحديد تنسيقات أقراص FAT12 حتى في حالة وجود BPB. واعتمادًا على معرف FAT الموجود ونوع محرك الأقراص المكتشف، يتم استخدام أحد نماذج BPB الأولية التالية افتراضيًا بدلاً من استخدام القيم المخزنة فعليًا في BPB. [nb 1]
في الأصل، كان من المفترض أن يكون معرف FAT عبارة عن علم بت مع تعيين جميع البتات باستثناء البت 2 الذي تم مسحه للإشارة إلى تنسيق 80 مسارًا (مقابل 40 مسارًا)، والبت 1 الذي تم مسحه للإشارة إلى تنسيق 9 قطاعات (مقابل 8 قطاعات)، والبت 0 الذي تم مسحه للإشارة إلى تنسيق أحادي الجانب (مقابل تنسيق مزدوج الجانب)، [7] ولكن هذا المخطط لم يتبعه جميع مصنعي المعدات الأصلية وأصبح قديمًا مع تقديم الأقراص الصلبة والتنسيقات عالية الكثافة. أيضًا، لا تتناسب التنسيقات المختلفة مقاس 8 بوصات التي يدعمها 86-DOS وMS-DOS مع هذا المخطط.
| معرف FAT (مقارنة بمعرف الوسائط عند إزاحة BPB 0x0A ) [22] [23] | 0xFF | 0xFE | 0xFD | 0xFC | 0xFB | 0xFA | 0xF9 | 0xF8 | 0xF0 | 0xED | 0xE5 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| مقاس | 8" | 5.25" | 8" | 8" | 5.25" | 8" | 8" | 5.25" | 5.25" | 5.25 بوصة / 3.5 بوصة | 5.25 بوصة / 3.5 بوصة | 5.25" | 3.5" | 3.5" | 5.25" | 5.25 بوصة / 3.5 بوصة | 3.5" | 3.5" | 3.5" | 5.25" | 8" |
| كثافة | ؟ | دي دي 48 نقطة في البوصة | SD | د د | دي دي 48 نقطة في البوصة | SD | SD | دي دي 48 نقطة في البوصة | دي دي 48 نقطة في البوصة | ؟ | ؟ | دقة عالية 96 نقطة في البوصة | دي دي 135 نقطة في البوصة | دقة عالية 135 نقطة في البوصة | QD 96tpi | ؟ | د د | دقة عالية 135 نقطة في البوصة | الضعف الجنسي | QD 96tpi | SD |
| تعديل | ؟ | م ف م | اف ام | م ف م | م ف م | اف ام | اف ام | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | م ف م | اف ام |
| السعة المنسقة (كيلوبايت) | ؟ | 320 | 250 ("قديم") [28] [32] | 1200 | 160 | 250 ("جديد") [28] [32] | 500 | 360 | 180 | 640 | 320 | 1200 | 720 | 1440 | 720 | 360 | 360 | 1440 | 2880 | 720 | 243 / 250 |
| الأسطوانات (CHS) | 77 | 40 | 77 | 77 | 40 | 77 | 77 | 40 | 40 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 80 | 77 |
| القطاعات المادية / المسار (إزاحة BPB 0x0D ) |
؟ | 8 | 26 | 8 | 8 | 26 | 26 | 9 | 9 | 8 | 8 | 15 | 9 | 18 | 9 (8 [31] ) | 9 | 9 | 18 | 36 | 9 (8 [31] ) | 26 |
| عدد الرؤوس (BPB offset 0x0F ) |
؟ | 2 | 1 [28] [32] | 2 [7] [22] [32] (1) | 1 | 1 [7] [28] [32] | 2 [22] | 2 | 1 | 2 | 1 | 2 | 2 | 2 | 2 | 1 | 1 | 2 | 2 | 2 | 1 |
| الحمولة البايتية / القطاع المادي | ؟ | 512 | 128 | 1024 | 512 | 128 | 128 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 128 |
| البايتات / القطاع المنطقي (إزاحة BPB 0x00 ) |
؟ | 512 | 128 | 1024 | 512 | 128 | 128 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 512 | 128 |
| القطاعات المنطقية / المجموعة (إزاحة BPB 0x02 ) |
؟ | 2 | 4 | 1 | 1 | 4 | 4 | 2 | 1 | 2 | 1 [22] (2؟ [7] ) | 1 | 2 | 1 | ؟ | 2 | ؟ | 1 | 2 | ؟ | 4 |
| القطاعات المنطقية المحجوزة (إزاحة BPB 0x03 ) |
؟ | 1 | 1 [28] [32] | 1 | 1 | 4 [28] [32] | 4 | 1 | 1 | 1 | 1 | 1 | 1 (2) | 1 | 1 | 1 | 1 | 1 | 1 | ؟ | 1 |
| عدد ملفات FAT (إزاحة BPB 0x05 ) |
؟ | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| إدخالات الدليل الجذر (إزاحة BPB 0x06 ) |
؟ | 112 (7 قطاعات) | 68 (17 قطاعًا) | 192 (6 قطاعات) | 64 (4 قطاعات) | 68 (17 قطاعًا) | 68 (17 قطاعًا) | 112 (7 قطاعات) | 64 (4 قطاعات) | 112 (7 قطاعات) | 112 (7 قطاعات) | 224 (14 قطاعًا) | 112 (7 قطاعات) | 224 (14 قطاعًا) | ؟ | 112 (7 قطاعات) | ؟ | 224 (14 قطاعًا) | 240 (15 قطاعًا) | ؟ | 64 (16 قطاعًا) |
| إجمالي القطاعات المنطقية (إزاحة BPB 0x08 ) |
؟ | 640 | 2002 [28] [32] | 1232 [22] [32] (616 [7] ) | 320 | 2002 [7] [28] [32] | 4004 [22] | 720 | 360 | 1280 | 640 | 2400 | 1440 | 2880 | ؟ | 720 | ؟ | 2880 | 5760 | ؟ | 2002 |
| القطاعات المنطقية / FAT (إزاحة BPB 0x0B ) |
؟ | 1 | 6 [28] [32] | 2 | 1 | 6 [28] [32] | 6؟ [22] | 2 | 2 | 2 | 2 [22] (1؟ [7] ) | 7 | 3 | 9 (7) | ؟ | 2 | ؟ | 9 | 9 | ؟ | 1 |
| القطاعات المخفية (إزاحة BPB 0x11 ) |
؟ | 0 | 3 [22] (0 [7] ) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ؟ | 0 |
| العدد الإجمالي للمجموعات | ؟ | 315 | 497 | 1227 | 313 | ؟ | 997؟ [22] | 354 | 351 | ؟ | ؟ | 2371 | 713 | 2847؟ | ؟ | ؟ | ؟ | 2847 | 2863 | ؟ | ؟ |
| ترتيب القطاعات المنطقية | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
| رسم خرائط القطاعات | ؟ | القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
القطاع+ المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
القطاع+ المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
؟ | القطاع+ المسار+ |
القطاع+ المسار+ |
القطاع+الرأس+المسار+ |
القطاع+الرأس+المسار+ |
؟ | القطاع+ المسار+
|
| القطاع المادي الأول (CHS) | ؟ | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ؟ | ؟ | 1 | 1 | 1 | ؟ | 1 | ؟ | 1 | 1 | ؟ | 1 |
DRIVER.SYS /F:n
|
؟ | 0 | 3 | 4 | 0 | ؟ | 3 | 0 | 0 | ؟ | ؟ | 1 | 2 | 7 | ؟ | ؟ | ؟ | 7 | 9 | ؟ | 3 |
| حضور BPB | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | نعم | نعم | نعم | ؟ | ؟ | ؟ | نعم | نعم | ؟ | ؟ |
| يدعم | ؟ | دوس 1.1 [32]
|
دوس 1.0 [28] [32]
|
دوس 2.0
|
دوس 1.0 [32]
|
؟ [28] [32] | دوس 2.0
|
دوس 2.0
|
دوس 2.0
|
؟ | ؟ | دوس 3.0
|
دوس 3.2
|
DOS 3.2 فقط؛
(DR-DOS) |
جهاز Sanyo 55x
DS-DOS 2.11 فقط |
[7] MS-DOS 3.1
|
MSX-DOS
|
دوس 3.3
|
دوس 5.0
|
تاندي 2000 فقط
|
DR-DOS فقط
|
توصي شركة Microsoft بالتمييز بين تنسيقي 8 بوصات لـ FAT ID 0xFE من خلال محاولة قراءة علامة عنوان ذات كثافة واحدة. إذا أدى هذا إلى حدوث خطأ، فيجب أن تكون الوسيلة ذات كثافة مزدوجة. [23]
لا يسرد الجدول عددًا من تنسيقات الأقراص المرنة FAT12 غير المتوافقة مقاس 8 بوصات و5.25 بوصة التي يدعمها نظام التشغيل 86-DOS ، والتي تختلف إما في حجم إدخالات الدليل (16 بايت مقابل 32 بايت) أو في مدى مساحة القطاعات المحجوزة (عدة مسارات كاملة مقابل قطاع منطقي واحد فقط).
كان لتنفيذ تنسيق FAT12 أحادي الجانب بحجم 315 كيلو بايت المستخدم في MS-DOS لجهاز Apricot PC وF1e [34] تخطيط قطاع تمهيد مختلف، لاستيعاب BIOS غير المتوافق مع IBM لهذا الكمبيوتر. تم حذف تعليمات الانتقال واسم OEM، وتم وضع معلمات BPB في MS-DOS (الإزاحات 0x00B - 0x017 في قطاع التمهيد القياسي) عند الإزاحة 0x050 . دعمت أجهزة Portable وF1 وPC duo وXi FD تنسيق FAT12 غير قياسي ثنائي الجانب بحجم 720 كيلو بايت بدلاً من ذلك. [34] أدت الاختلافات في تخطيط قطاع التمهيد ومعرفات الوسائط إلى جعل هذه التنسيقات غير متوافقة مع العديد من أنظمة التشغيل الأخرى. معلمات الهندسة لهذه التنسيقات هي:
- 315 كيلوبايت: بايتات لكل قطاع منطقي: 512 بايت، قطاعات منطقية لكل مجموعة: 1، قطاعات منطقية محجوزة: 1، عدد ملفات FAT: 2، إدخالات الدليل الجذر: 128، إجمالي القطاعات المنطقية: 630، معرف FAT: 0xFC ، قطاعات منطقية لكل ملف FAT: 2، قطاعات مادية لكل مسار: 9، عدد الرؤوس: 1. [34] [35]
- 720 كيلوبايت: بايتات لكل قطاع منطقي: 512 بايت، قطاعات منطقية لكل مجموعة: 2، قطاعات منطقية محجوزة: 1، عدد ملفات FAT: 2، إدخالات الدليل الجذر: 176، إجمالي القطاعات المنطقية: 1440، معرف FAT: 0xFE ، قطاعات منطقية لكل ملف FAT: 3، قطاعات مادية لكل مسار: 9، عدد الرؤوس: 2. [34]
اكتسبت الإصدارات اللاحقة من نظام التشغيل Apricot MS-DOS القدرة على قراءة وكتابة الأقراص باستخدام قطاع التمهيد القياسي بالإضافة إلى تلك التي تحتوي على قطاع التمهيد الخاص بنظام Apricot. كما تم دعم هذه التنسيقات بواسطة DOS Plus 2.1e/g لسلسلة Apricot ACT.
دعمت نسخة DOS Plus لجهاز BBC Master 512 تنسيقين FAT12 على محركات 5.25 بوصة مزدوجة الجوانب وكثيفة ومكونة من 80 مسارًا، والتي لم تستخدم قطاعات تمهيد تقليدية على الإطلاق. أغفلت أقراص البيانات سعة 800 كيلو بايت قطاع تمهيد وبدأت بنسخة واحدة من FAT. [35] تم استخدام أول بايت من FAT المعاد وضعه في القطاع المنطقي 0 لتحديد سعة القرص. بدأت أقراص التمهيد سعة 640 كيلو بايت بنظام ملفات ADFS مصغر يحتوي على محمل التمهيد، متبوعًا بـ FAT واحد. [35] [36] كما اختلف تنسيق 640 كيلو بايت باستخدام أرقام قطاعات CHS المادية التي تبدأ بـ 0 (وليس 1، كما هو شائع) والقطاعات المتزايدة بالترتيب sector-track-head (وليس sector-head-track، كما هو شائع). [36] بدأ FAT في بداية المسار التالي. تجعل هذه الاختلافات هذه التنسيقات غير قابلة للتعرف عليها بواسطة أنظمة التشغيل الأخرى. معلمات الهندسة لهذه التنسيقات هي:
- 800 كيلوبايت: بايتات لكل قطاع منطقي: 1024 بايت، قطاعات منطقية لكل مجموعة: 1، قطاعات منطقية محجوزة: 0، عدد ملفات FAT: 1، إدخالات الدليل الجذر: 192، إجمالي القطاعات المنطقية: 800، معرف FAT: 0xFD ، قطاعات منطقية لكل ملف FAT: 2، قطاعات مادية لكل مسار: 5، عدد الرؤوس: 2. [35] [36]
- 640 كيلوبايت: بايتات لكل قطاع منطقي: 256 بايت، قطاعات منطقية لكل مجموعة: 8، قطاعات منطقية محجوزة: 16، عدد ملفات FAT: 1، إدخالات الدليل الجذر: 112، إجمالي القطاعات المنطقية: 2560، معرف FAT: 0xFF ، قطاعات منطقية لكل ملف FAT: 2، قطاعات مادية لكل مسار: 16، عدد الرؤوس: 2. [35] [36]
يمكن أيضًا لبرنامج DOS Plus لجهاز Master 512 الوصول إلى أقراص الكمبيوتر القياسية المنسقة بحجم 180 كيلو بايت أو 360 كيلو بايت ، باستخدام البايت الأول من FAT في القطاع المنطقي 1 لتحديد السعة.
يدعم DEC Rainbow 100 (جميع الاختلافات) تنسيق FAT12 واحدًا على محركات 5.25 بوصة ذات 80 مسارًا، أحادية الجانب، رباعية الكثافة. تم حجز المسارين الأولين لمحمل التمهيد، لكنهما لم يحتويا على MBR ولا BPB (استخدم MS-DOS BPB ثابتًا في الذاكرة بدلاً من ذلك). كان قطاع التمهيد (المسار 0، الجانب 0، القطاع 1) عبارة عن رمز Z80 يبدأ بـ DI 0xF3 . تم تحميل التمهيد 8088 بواسطة Z80. يبدأ المسار 1، الجانب 0، القطاع 2 ببايت Media/FAT ID 0xFA . تستخدم الأقراص غير المنسقة 0xE5 بدلاً من ذلك. يبدأ نظام الملفات في المسار 2، الجانب 0، القطاع 1. يوجد نسختان من FAT و96 إدخالاً في الدليل الجذر. بالإضافة إلى ذلك، يوجد تعيين مسار مادي إلى منطقي لإحداث تداخل قطاعي 2:1. تم تحميل الأقراص تم تنسيقها بحيث يتم ترقيم القطاعات المادية بالترتيب من 1 إلى 10 على كل مسار بعد المسارات المحجوزة، ولكن تم تخزين القطاعات المنطقية من 1 إلى 10 في القطاعات المادية 1، 6، 2، 7، 3، 8، 4، 9، 5، 10. [37]
قطاع معلومات الخدمات المالية
تم تقديم "قطاع معلومات نظام الملفات" في FAT32 [38] لتسريع أوقات الوصول لعمليات معينة (على وجه الخصوص، الحصول على مقدار المساحة الحرة). وهو يقع في رقم قطاع منطقي محدد في سجل تمهيد FAT32 EBPB في الموضع 0x030 (عادةً القطاع المنطقي 1، مباشرة بعد سجل التمهيد نفسه).
| إزاحة البايت | الطول (بايت) | محتويات |
|---|---|---|
| 0x000 | 4 | توقيع قطاع معلومات FS ( 0x52 0x52 0x61 0x41 = " ")
RRaAطالما أن قطاع معلومات FS يقع في القطاع المنطقي 1، وهو الموقع الذي بدأ فيه FAT عادةً في أنظمة الملفات FAT12 وFAT16 (مع قطاع محجوز واحد فقط)، فإن وجود هذا التوقيع يضمن أن الإصدارات المبكرة من DOS لن تحاول أبدًا تحميل وحدة تخزين FAT32، حيث تتوقع أن تتبع القيم في المجموعة 0 والمجموعة 1 أنماط بت معينة، والتي لا يتم توفيرها بواسطة هذا التوقيع. |
| 0x004 | 480 | محجوز (يجب تعيين قيم البايت إلى 0x00 أثناء التنسيق، ولكن لا يمكن الاعتماد عليها ولا يمكن تغييرها أبدًا لاحقًا) |
| 0x1E4 | 4 | توقيع قطاع معلومات FS ( 0x72 0x72 0x41 0x61 = " ")
rrAa |
| 0x1E8 | 4 | آخر عدد معروف من مجموعات البيانات المجانية على المجلد، أو 0xFFFFFFFF إذا كان غير معروف. يجب ضبطه على 0xFFFFFFFF أثناء التنسيق وتحديثه بواسطة نظام التشغيل لاحقًا. لا يجب الاعتماد عليه بشكل مطلق ليكون صحيحًا في جميع السيناريوهات. قبل استخدام هذه القيمة، يجب على نظام التشغيل التحقق من سلامة هذه القيمة للتأكد من أنها أقل من أو تساوي عدد مجموعات البيانات في المجلد. |
| 0x1EC | 4 | عدد أحدث مجموعة بيانات معروفة تم تخصيصها. يجب ضبطه على 0xFFFFFFFF أثناء التنسيق وتحديثه بواسطة نظام التشغيل لاحقًا. باستخدام 0xFFFFFFFF، يجب أن يبدأ النظام في المجموعة 0x00000002 . لا يجب الاعتماد عليه بشكل مطلق ليكون صحيحًا في جميع السيناريوهات. قبل استخدام هذه القيمة، يجب على نظام التشغيل التحقق من سلامة هذه القيمة لتكون رقم مجموعة صالحًا على المجلد. |
| 0x1F0 | 12 | محجوز (يجب تعيين قيم البايت إلى 0x00 أثناء التنسيق، ولكن لا يمكن الاعتماد عليها ولا يمكن تغييرها أبدًا لاحقًا) |
| 0x1FC | 4 | توقيع قطاع معلومات FS ( 0x00 0x00 0x55 0xAA ) [4] [ملاحظة 2] (يجب أن تتطابق جميع البايتات الأربعة قبل افتراض أن محتويات هذا القطاع بتنسيق صالح.) |
قد تكون بيانات القطاع قديمة ولا تعكس محتويات الوسائط الحالية، وذلك لأن أنظمة التشغيل لا تقوم بتحديث أو استخدام هذا القطاع، وحتى إذا قامت بذلك، فإن المحتويات غير صالحة عندما يتم إخراج الوسيط دون فصل وحدة التخزين بشكل صحيح أو بعد انقطاع التيار الكهربائي. لذلك، يجب على أنظمة التشغيل أولاً فحص علامات البتات الاختيارية لحالة إيقاف التشغيل لوحدة التخزين الموجودة في إدخال FAT الخاص بالعناقيد 1 أو FAT32 EBPB عند الإزاحة 0x041 وتجاهل البيانات المخزنة في قطاع معلومات FS، إذا كانت هذه العلامات تشير إلى أن وحدة التخزين لم يتم فصلها بشكل صحيح من قبل. لا يتسبب هذا في أي مشاكل بخلاف عقوبة السرعة المحتملة لاستعلام المساحة الحرة الأول أو تخصيص مجموعة البيانات؛ راجع التجزئة.
إذا كان هذا القطاع موجودًا على وحدة تخزين FAT32، فإن الحد الأدنى لحجم القطاع المنطقي المسموح به هو 512 بايت، بينما بخلاف ذلك سيكون 128 بايت. تدعم بعض تطبيقات FAT32 اختلافًا طفيفًا في مواصفات Microsoft عن طريق جعل قطاع معلومات FS اختياريًا عن طريق تحديد قيمة 0xFFFF [19] (أو 0x0000 ) في الإدخال عند الإزاحة 0x030 .
منطقة الدهون
جدول تخصيص الملفات
خريطة المجموعة
This section may overuse or misuse colour, making it hard to understand for colour-blind users. |
تنقسم مساحة البيانات في وحدة التخزين إلى مجموعات متطابقة الحجم - كتل صغيرة من المساحة المتجاورة. تختلف أحجام المجموعات وفقًا لنوع نظام الملفات FAT المستخدم وحجم محرك الأقراص؛ تتراوح أحجام المجموعات النموذجية من 2 إلى 32 كيلوبايت . [39]
قد يشغل كل ملف مجموعة واحدة أو أكثر حسب حجمه. وبالتالي، يتم تمثيل الملف بسلسلة من المجموعات (يشار إليها باسم قائمة مرتبطة بشكل فردي ). لا يتم تخزين هذه المجموعات بالضرورة بجوار بعضها البعض على سطح القرص، ولكنها غالبًا ما تكون مجزأة في جميع أنحاء منطقة البيانات.
يستخدم كل إصدار من نظام الملفات FAT حجمًا مختلفًا لإدخالات FAT. تؤدي الأعداد الأصغر إلى حجم FAT أصغر، ولكنها تضيع المساحة في الأقسام الكبيرة بسبب الحاجة إلى تخصيصها في مجموعات كبيرة.
يستخدم نظام الملفات FAT12 12 بتًا لكل إدخال FAT، وبالتالي فإن إدخالين يمتدان على 3 بايتات. إنه دائمًا ما يكون صغيرًا : إذا تم اعتبار هذه البايتات الثلاثة كرقم واحد صغير مكون من 24 بتًا، فإن البتات الـ 12 الأقل أهمية تمثل الإدخال الأول (مثل المجموعة 0) والبتات الـ 12 الأكثر أهمية تمثل الإدخال الثاني (مثل المجموعة 1). بعبارة أخرى، بينما يتم تخزين البتات الثمانية المنخفضة للمجموعة الأولى في الصف في البايت الأول، يتم تخزين البتات الأربعة العليا في الجزء الصغير المنخفض من البايت الثاني، بينما يتم تخزين البتات الأربعة المنخفضة للمجموعة اللاحقة في الصف في الجزء الصغير العالي من البايت الثاني والبتات الثمانية الأعلى في البايت الثالث.
| الإزاحة | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +أ | +ب | +ج | +د | +هـ | +ف |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| +0000 | ف0 | ف ف | اف اف | 03 | 40 | 00 | 05 | 60 | 00 | 07 | 80 | 00 | اف اف | أ ف | 00 | 14 |
| +0010 | ج 0 | 00 | 0د | هـ0 | 00 | 0ف | 00 | 01 | 11 | ف0 | اف اف | 00 | ف 0 | اف اف | 15 | 60 |
| +0020 | 01 | 19 | 7 0 | اف اف | ف7 | أ ف | 01 | اف اف | 0 ف | 00 | 00 | 7 0 | اف اف | 00 | 00 | 00 |
- معرف FAT / علامة الترتيب النهائي (في المجموعة المحجوزة رقم 0)، مع 0xF0 التي تشير إلى وحدة تخزين على محرك أقراص مرن فائق غير مقسم (يجب أن تكون 0xF8 للأقراص المقسمة)
- مؤشر نهاية السلسلة / أعلام الصيانة (في المجموعة المحجوزة رقم 1)
- السلسلة الثانية (7 مجموعات) لملف غير مجزأ (هنا: #2، #3، #4، #5، #6، #7، #8)
- السلسلة الثالثة (7 مجموعات) لملف مجزأ، ربما يكون قد نما (هنا: #9، #A، #14، #15، #16، #19، #1A)
- السلسلة الرابعة (7 مجموعات) لملف غير مجزأ، ربما مقطوع (هنا: #B، #C، #D، #E، #F، #10، #11)
- مجموعات فارغة (هنا: #12، #1B، #1C، #1E، #1F)
- السلسلة الخامسة (مجموعة واحدة) للدليل الفرعي (هنا: #13)
- مجموعات سيئة (3 مجموعات) (هنا: #17، #18، #1D)
يستخدم نظام الملفات FAT16 16 بت لكل إدخال FAT، وبالتالي فإن الإدخال الواحد يمتد على بايتين في ترتيب البايتات الصغيرة:
| الإزاحة | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +أ | +ب | +ج | +د | +هـ | +ف |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| +0000 | ف0 | اف اف | اف اف | اف اف | 03 | 00 | 04 | 00 | 05 | 00 | 06 | 00 | 07 | 00 | 08 | 00 |
| +0010 | اف اف | اف اف | 0أ | 00 | 14 | 00 | 0 درجة مئوية | 00 | 0د | 00 | 0هـ | 00 | 0ف | 00 | 10 | 00 |
| +0020 | 11 | 00 | اف اف | اف اف | 00 | 00 | اف اف | اف اف | 15 | 00 | 16 | 00 | 19 | 00 | ف7 | اف اف |
| +0030 | ف7 | اف اف | 1أ | 00 | اف اف | اف اف | 00 | 00 | 00 | 00 | ف7 | اف اف | 00 | 00 | 00 | 00 |
يستخدم نظام الملفات FAT32 32 بتًا لكل إدخال FAT، وبالتالي فإن كل إدخال يمتد على أربعة بايتات بترتيب بايتات صغير. يتم حجز البتات الأربعة العلوية لكل إدخال لأغراض أخرى؛ يتم مسحها أثناء التنسيق ولا ينبغي تغييرها بخلاف ذلك. يجب إخفاءها قبل تفسير الإدخال كعنوان مجموعة مكون من 28 بت.
| الإزاحة | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +أ | +ب | +ج | +د | +هـ | +ف |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| +0000 | ف0 | اف اف | اف اف | 0ف | اف اف | اف اف | اف اف | 0ف | اف اف | اف اف | اف اف | 0ف | 04 | 00 | 00 | 00 |
| +0010 | 05 | 00 | 00 | 00 | 06 | 00 | 00 | 00 | 07 | 00 | 00 | 00 | 08 | 00 | 00 | 00 |
| +0020 | اف اف | اف اف | اف اف | 0ف | 0أ | 00 | 00 | 00 | 14 | 00 | 00 | 00 | 0 درجة مئوية | 00 | 00 | 00 |
| +0030 | 0د | 00 | 00 | 00 | 0هـ | 00 | 00 | 00 | 0ف | 00 | 00 | 00 | 10 | 00 | 00 | 00 |
| +0040 | 11 | 00 | 00 | 00 | اف اف | اف اف | اف اف | 0ف | 00 | 00 | 00 | 00 | اف اف | اف اف | اف اف | 0ف |
| +0050 | 15 | 00 | 00 | 00 | 16 | 00 | 00 | 00 | 19 | 00 | 00 | 00 | ف7 | اف اف | اف اف | 0ف |
| +0060 | ف7 | اف اف | اف اف | 0ف | 1أ | 00 | 00 | 00 | اف اف | اف اف | اف اف | 0ف | 00 | 00 | 00 | 00 |
| +0070 | 00 | 00 | 00 | 00 | ف7 | اف اف | اف اف | 0ف | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
- السلسلة الأولى (مجموعة واحدة) للدليل الجذر، والتي يتم الإشارة إليها بواسطة إدخال في FAT32 BPB (هنا: #2)
- السلسلة الثانية (6 مجموعات) لملف غير مجزأ (هنا: #3، #4، #5، #6، #7، #8)
جدول تخصيص الملفات ( FAT ) هو عدد متجاور من القطاعات التي تأتي مباشرة بعد مساحة القطاعات المحجوزة. وهو يمثل قائمة من الإدخالات التي يتم تعيينها لكل مجموعة على المجلد. ويسجل كل إدخال أحد الأشياء الأربعة التالية:
- رقم المجموعة للمجموعة التالية في السلسلة
- مدخل خاص لنهاية سلسلة المجموعة ( EOC ) يشير إلى نهاية السلسلة
- إدخال خاص لتمييز المجموعة السيئة
- صفر للإشارة إلى أن المجموعة غير مستخدمة
لكي تتمكن الإصدارات المبكرة جدًا من نظام DOS من التعرف على نظام الملفات، يجب أن يكون النظام قد تم تمهيده من المجلد أو يجب أن يبدأ ملف FAT للمجلد بالقطاع الثاني للمجلد (القطاع المنطقي 1 بعنوان CHS الفعلي 0/0/2 أو عنوان LBA 1)، أي بعد قطاع التمهيد مباشرةً. تفترض أنظمة التشغيل هذا الموقع الثابت لملف FAT من أجل العثور على معرف FAT في إدخال مجموعة FAT 0 على أقراص FAT DOS 1.0-1.1، حيث لا يتم العثور على BPB صالح.
الإدخالات الخاصة
يقوم الإدخالان الأوليان في FAT بتخزين القيم الخاصة:
يحتوي الإدخال الأول (المجموعة 0 في FAT) على معرف FAT منذ MS-DOS 1.20 و PC DOS 1.1 (القيم المسموح بها 0xF0 - 0xFF مع الاحتفاظ بالقيم 0xF1 - 0xF7 ) في البتات 7-0، والتي يتم نسخها أيضًا إلى BPB لقطاع التمهيد، مع إزاحة 0x015 منذ DOS 2.0. البتات الأربعة المتبقية (إذا كانت FAT12)، أو 8 بتات (إذا كانت FAT16) أو 20 بتًا (إذا كانت FAT32، فإن بتات MSB الأربعة هي صفر) من هذا الإدخال تكون دائمًا 1. تم ترتيب هذه القيم بحيث يعمل الإدخال أيضًا كعلامة نهاية سلسلة "فخ" لجميع مجموعات البيانات التي تحتوي على قيمة صفر. بالإضافة إلى ذلك، بالنسبة لمعرفات FAT بخلاف 0xFF (و 0x00 )، من الممكن تحديد الترتيب الصحيح للنيبل والبايت (الذي يجب استخدامه) بواسطة برنامج تشغيل نظام الملفات، ومع ذلك، يستخدم نظام الملفات FAT رسميًا تمثيلًا صغيرًا فقط ولا توجد تنفيذات معروفة للمتغيرات التي تستخدم قيمًا كبيرة بدلاً من ذلك. استخدمت إصدارات 86-DOS 0.42 وحتى MS-DOS 1.14 ملفات تعريف محرك الأقراص السلكية بدلاً من معرف FAT، ولكنها استخدمت هذا البايت للتمييز بين الوسائط المنسقة بإدخالات دليل مكونة من 32 بايت أو 16 بايت، كما كانت تستخدم قبل 86-DOS 0.42.
يخزن الإدخال الثاني (المجموعة 1 في FAT) اسميًا علامة نهاية سلسلة المجموعة كما يستخدمها المُنسِّق، ولكنه عادةً ما يحتفظ دائمًا بـ 0xFFF / 0xFFFF / 0x0FFFFFFFF ، أي باستثناء البتات 31-28 على وحدات تخزين FAT32، يتم تعيين هذه البتات عادةً دائمًا. ومع ذلك، تقوم بعض أنظمة تشغيل Microsoft بتعيين هذه البتات إذا لم تكن وحدة التخزين هي وحدة التخزين التي تحتفظ بنظام التشغيل قيد التشغيل (أي، استخدم 0xFFFFFFFF بدلاً من 0x0FFFFFFFF هنا). [40] (بالتزامن مع علامات نهاية السلسلة البديلة، يمكن أن تصبح البتات الأدنى 2-0 صفرًا لأقل علامة نهاية سلسلة مسموح بها 0xFF8 / 0xFFF8 / 0x?FFFFFF8 ؛ يجب حجز البت 3 أيضًا نظرًا لأن المجموعات 0xFF0 / 0xFFF0 / 0x?FFFFFF0 وما فوق محجوزة رسميًا. قد لا تتمكن بعض أنظمة التشغيل من تحميل بعض وحدات التخزين إذا لم يتم تعيين أي من هذه البتات، وبالتالي لا ينبغي تغيير علامة نهاية السلسلة الافتراضية.) بالنسبة لنظامي التشغيل DOS 1 و2، تم توثيق الإدخال على أنه محجوز للاستخدام المستقبلي.
منذ DOS 7.1، قد تحتوي البتتان الأكثر أهمية في إدخال المجموعة هذا على علمين اختياريين يمثلان حالة وحدة التخزين الحالية على FAT16 وFAT32، ولكن ليس على وحدات تخزين FAT12. لا تدعم جميع أنظمة التشغيل هذه العلامات، ولكن أنظمة التشغيل التي تدعم هذه الميزة ستضبط هذه البتات عند إيقاف التشغيل وتمسح البت الأكثر أهمية عند بدء التشغيل:
إذا لم يتم ضبط البت 15 (على FAT16) أو البت 27 (على FAT32) [41] عند تحميل وحدة التخزين، فإن وحدة التخزين لم يتم فصلها بشكل صحيح قبل إيقاف التشغيل أو الإخراج وبالتالي تكون في حالة غير معروفة وربما "متسخة". [27] على وحدات تخزين FAT32، قد يحتفظ قطاع معلومات FS ببيانات قديمة وبالتالي لا ينبغي استخدامه. ثم يقوم نظام التشغيل عادةً بتشغيل SCANDISK أو CHKDSK عند بدء التشغيل التالي [nb 9] [41] (ولكن ليس عند إدخال وسائط قابلة للإزالة) لضمان وإعادة تأسيس سلامة وحدة التخزين.
إذا تم مسح البت 14 (على FAT16) أو البت 26 (على FAT32) [41] ، فقد واجه نظام التشغيل أخطاء إدخال/إخراج القرص عند بدء التشغيل، [41] وهو مؤشر محتمل للقطاعات التالفة. ستفسر أنظمة التشغيل التي تدرك هذا الامتداد هذا على أنه توصية بإجراء فحص سطحي ( SCANDISK ) عند التمهيد التالي. [27] [41] (توجد مجموعة مماثلة من علامات البت في EBPB FAT12/FAT16 عند الإزاحة 0x1A أو EBPB FAT32 عند الإزاحة 0x36 . وبينما يمكن الوصول إلى إدخال المجموعة 1 بواسطة برامج تشغيل نظام الملفات بمجرد تحميل وحدة التخزين، فإن إدخال EBPB متاح حتى عندما لا يتم تحميل وحدة التخزين وبالتالي يكون من الأسهل استخدامه بواسطة برامج تشغيل أجهزة كتلة القرص أو أدوات التقسيم.)
إذا لم يتم تعيين عدد FATs في BPB على 2، فقد يعكس إدخال المجموعة الثانية في FAT الأول (المجموعة 1) أيضًا حالة وحدة تخزين TFAT لأنظمة التشغيل التي تدعم TFAT. إذا كان إدخال المجموعة 1 في FAT يحمل القيمة 0، فقد يشير هذا إلى أن FAT الثاني يمثل آخر حالة معاملة صالحة معروفة ويجب نسخها فوق FAT الأول، بينما يجب نسخ FAT الأول فوق FAT الثاني إذا تم تعيين جميع البتات.
تستخدم بعض تطبيقات FAT12/FAT16 غير القياسية إدخال المجموعة 1 لتخزين المجموعة الأولية لدليل جذر متغير الحجم (عادةً 2 [33] ). قد يحدث هذا عندما يكون عدد إدخالات دليل الجذر في BPB يحمل قيمة 0 ولا يتم العثور على FAT32 EBPB (لا يوجد توقيع 0x29 أو 0x28 عند الإزاحة 0x042 ). [20] ومع ذلك، لا تدعم أنظمة التشغيل الرئيسية هذا الامتداد، [20] لأنه يتعارض مع الاستخدامات المحتملة الأخرى لإدخال المجموعة 1. يمكن استبعاد معظم التعارضات إذا كان هذا الامتداد مسموحًا به فقط لـ FAT12 مع أقل من 0xFEF ومجلدات FAT16 مع أقل من 0x3FEF ومجموعتين FAT.
نظرًا لأن هذين الإدخالين الأولين لـ FAT يخزنان قيمًا خاصة، فلا توجد مجموعات بيانات 0 أو 1. مجموعة البيانات الأولى (بعد الدليل الجذر إذا كان FAT12/FAT16) هي المجموعة 2، [33] التي تمثل بداية منطقة البيانات.
قيم المجموعة
قيم إدخال FAT:
| فات12 | فات 16 | نظام الملفات FAT32 | وصف |
|---|---|---|---|
| 0x000 | 0x0000 | 0x؟0000000 | مجموعة حرة؛ تستخدم أيضًا بواسطة DOS للإشارة إلى الدليل الرئيسي الذي يبدأ المجموعة في إدخالات ".." من الدلائل الفرعية للدليل الجذر على وحدات تخزين FAT12/FAT16. [42] [6]
بخلاف ذلك، إذا حدثت هذه القيمة في سلاسل المجموعات (على سبيل المثال في إدخالات الدليل ذات الطول الصفري أو الملفات المحذوفة)، فيجب على تنفيذات نظام الملفات التعامل مع هذا الأمر مثل علامة نهاية السلسلة. [7] |
| 0x001 | 0x0001 | 0x؟0000001 | مخصص لأغراض داخلية؛ يستخدم MS-DOS/PC DOS قيمة المجموعة هذه كمؤشر مجموعة مؤقت غير حر أثناء إنشاء سلاسل المجموعات أثناء تخصيص الملفات (يمكن رؤيتها على القرص فقط في حالة حدوث تعطل أو انقطاع للتيار الكهربائي في منتصف هذه العملية). [42] [6]
إذا حدثت هذه القيمة في سلاسل مجموعات القرص، فيجب على تنفيذات نظام الملفات التعامل مع هذا الأمر مثل علامة نهاية السلسلة. |
| 0x002 - 0xFEF | 0x0002 - 0xFFEF (0x0002 - 0x7FFF) | 0x?0000002 - 0x?FFFFFEF | تُستخدم كمجموعات بيانات؛ تشير القيمة إلى المجموعة التالية. تقبل أنظمة MS-DOS/PC DOS قيمًا تصل إلى 0xFEF / 0xFFEF / 0x0FFFFFFEF (وأحيانًا أكثر؛ انظر أدناه)، بينما بالنسبة إلى Atari GEMDOS، يُسمح فقط بالقيم التي تصل إلى 0x7FFF على وحدات تخزين FAT16. |
| 0xFF0 [ملاحظة 10] - 0xFF5 (0xFF1 - 0xFF5) | 0xFFF0 - 0xFFF5 | 0x؟FFFFFF0 - 0x؟FFFFFF5 | محجوزة في بعض السياقات، [43] أو تستخدم أيضًا [24] [25] [26] [4] [44] كمجموعات بيانات في بعض الأنظمة غير القياسية. يجب تجنب أحجام المجلدات التي تستخدم هذه القيم كمجموعات بيانات، ولكن إذا حدثت هذه القيم في مجلدات موجودة، فيجب على نظام الملفات التعامل معها كمجموعات بيانات عادية في سلاسل مجموعات (من الناحية المثالية تطبيق فحوصات سلامة إضافية)، على غرار ما تفعله أنظمة MS-DOS وPC DOS وDR-DOS، [6] ويجب تجنب تخصيصها للملفات بخلاف ذلك.
يعامل نظام MS-DOS/PC DOS 3.3 والإصدارات الأحدث قيمة 0xFF0 [nb 10] [6] على وحدات تخزين FAT12 (ولكن ليس على وحدات تخزين FAT16 أو FAT32) كعلامة نهاية سلسلة إضافية مشابهة لـ 0xFF8 - 0xFFF . [6] لتحقيق التوافق مع MS-DOS/PC DOS، يجب على أنظمة الملفات تجنب استخدام مجموعة البيانات 0xFF0 في سلاسل المجموعات على وحدات تخزين FAT12 (أي التعامل معها كمجموعة محجوزة مشابهة لـ 0xFF7 ). (ملاحظة: إن تطابق البايت المنخفض لرقم المجموعة مع معرف FAT وقيم موصوف الوسائط هو السبب وراء حجز قيم هذه المجموعات.) |
| 0xFF6 | 0xFFF6 | 0x؟FFFFFF6 | محجوز؛ لا تستخدم. [24] [25] [26] [4] [21] [44] (ملاحظة: يتوافق مع قيمة تعبئة التنسيق الافتراضية 0xF6 على الأجهزة المتوافقة مع IBM.) لا ينبغي إنشاء وحدات تخزين تستخدم هذه القيمة كمجموعة بيانات، ولكن إذا حدثت هذه القيمة في وحدات تخزين موجودة، فيجب على نظام الملفات التعامل معها كمجموعة بيانات عادية في سلاسل المجموعات (من الناحية المثالية تطبيق فحوصات سلامة إضافية)، ويجب تجنب تخصيصها للملفات بخلاف ذلك. [7] |
| 0xFF7 | 0xFFF7 | 0x؟FFFFFF7 | قطاع تالف في مجموعة أو مجموعة محجوزة (منذ DOS 2.0).
تم تعريف قيم القطع لأقصى عدد من العناقيد لأنظمة الملفات FAT12 وFAT16 على النحو الذي يجعل أعلى قيم ممكنة لعناقيد البيانات ( 0xFF5 و 0xFFF5 ، [6] على التوالي) دائمًا أصغر من هذه القيمة. [6] لذلك، لا يمكن أن تحدث هذه القيمة عادةً في سلاسل العناقيد، ولكن إذا حدث ذلك، فيمكن التعامل معها كعنقود بيانات عادي، حيث كان من الممكن أن يكون 0xFF7 عبارة عن عنقود بيانات غير قياسي على وحدات تخزين FAT12 قبل تقديم علامة العنقود السيئة مع DOS 2.0 أو تقديم FAT16 مع DOS 3.0، [7] وكان من الممكن أن يكون 0xFFF7 عبارة عن عنقود بيانات غير قياسي على وحدات تخزين FAT16 قبل تقديم FAT32 مع DOS 7.10. من الناحية النظرية، يمكن أن يكون 0x0FFFFFF7 جزءًا من سلسلة عنقود صالحة على وحدات تخزين FAT32، ولكن يجب على أدوات القرص تجنب إنشاء وحدات تخزين FAT32، حيث يمكن أن يحدث هذا الشرط. يجب أن يتجنب نظام الملفات تخصيص هذه المجموعة للملفات. [7] يجب ألا تحاول أدوات القرص استعادة "المجموعات المفقودة" التي تحمل هذه القيمة في FAT، بل يجب اعتبارها مجموعات سيئة. |
| 0xFF8 - 0xFFF (واختياريًا 0xFF0؛ [nb 10] راجع الملاحظة) | 0xFFF8 - 0xFFFF | 0x?FFFFFF8 - 0x?FFFFFF | آخر مجموعة في الملف (EOC). يجب أن تعالج تطبيقات نظام الملفات كل هذه القيم كعلامة نهاية السلسلة في نفس الوقت. [7] تستخدم معظم تطبيقات نظام الملفات (بما في ذلك 86-DOS وMS-DOS وPC DOS وDR-DOS) 0xFFF [7] / 0xFFFF [7] / 0x0FFFFFFFF كعلامة نهاية الملف عند تخصيص الملفات، ولكن إصدارات Linux قبل 2.5.40 استخدمت 0xFF8 / 0xFFFF8 / 0x0FFFFFF8 . [45] تستمر إصدارات mkdosfs (dosfstools حتى 3.0.26) في استخدام 0x0FFFFFF8 للدليل الجذر على وحدات تخزين FAT32، بينما تستخدم بعض أدوات إصلاح القرص وإلغاء التجزئة قيمًا أخرى في المجموعة (على سبيل المثال، قد يستخدم SCANDISK 0xFF8 / 0xFFFF8 / 0x0FFFFFF8 بدلاً من ذلك). بينما في تنفيذ FAT الأصلي ذي الثماني بتات في برنامج Microsoft Standalone Disk BASIC، تم استخدام علامات نهاية مختلفة ( 0xC0 .. 0xCD ) للإشارة إلى عدد القطاعات (0 إلى 13) المستخدمة في آخر مجموعة يشغلها ملف، تم إعادة استخدام علامات نهاية مختلفة تحت نظام التشغيل DOS للإشارة إلى أنواع مختلفة من الوسائط، [7] مع الإشارة إلى علامة النهاية المستخدمة حاليًا في إدخال المجموعة 1، ومع ذلك، لا يبدو أن هذا المفهوم قد تم استخدامه على نطاق واسع في الممارسة العملية - وإلى الحد الذي قد لا تتعرف فيه بعض أنظمة التشغيل على وحدات التخزين في بعض السيناريوهات، إذا لم يتم تعيين بعض البتات ذات الترتيب المنخفض للقيمة المخزنة في المجموعة 1. أيضًا، تقبل بعض تطبيقات أنظمة الملفات المعيبة 0xFFF / 0xFFFF / 0x?FFFFFFF فقط كعلامة نهاية سلسلة صالحة.
يجب أن تتحقق تطبيقات أنظمة الملفات من قيم المجموعات في سلاسل المجموعات مقابل الحد الأقصى المسموح به لقيمة المجموعة المحسوبة بالحجم الفعلي للمجلد وتعامل القيم الأعلى كما لو كانت علامات نهاية السلسلة أيضًا. (يتوافق البايت المنخفض لرقم المجموعة مفهوميًا مع قيم معرف FAT وواصف الوسائط؛ [7] راجع الملاحظة أعلاه للاستخدام الخاص لـ MS-DOS/PC DOS لـ 0xFF0 [nb 10] على مجلدات FAT12. [6] ) |
يستخدم نظام الملفات FAT32 28 بتًا لأرقام المجموعة. عادةً ما تكون البتات الأربعة المتبقية في إدخال FAT المكون من 32 بت صفرًا، ولكنها محجوزة ويجب تركها دون مساس. لا يجب أن يعتمد برنامج تشغيل نظام الملفات FAT32 المطابق للمعيار أو أداة الصيانة على البتات الأربعة العليا لتكون صفرًا ويجب أن يزيلها قبل تقييم رقم المجموعة من أجل التعامل مع التوسعات المستقبلية المحتملة حيث يمكن استخدام هذه البتات لأغراض أخرى. لا يجب مسحها بواسطة برنامج تشغيل نظام الملفات عند تخصيص مجموعات جديدة، ولكن يجب مسحها أثناء إعادة التنسيق.
منطقة الدليل الجذر
يحتل جدول الدليل الجذر في أنظمة الملفات FAT12 وFAT16 موقع منطقة الدليل الجذر الخاص .
منطقة البيانات
باستثناء جدول الدليل الجذري في أنظمة الملفات FAT12 وFAT16، والذي يشغل موقع منطقة الدليل الجذري الخاصة ، يتم تخزين جميع جداول الدليل في منطقة البيانات. يمكن زيادة العدد الفعلي للإدخالات في الدليل المخزن في منطقة البيانات عن طريق إضافة مجموعة أخرى إلى السلسلة في FAT.
جدول الدليل
جدول الدليل هو نوع خاص من الملفات يمثل دليلاً (يُعرف أيضًا باسم المجلد). منذ 86-DOS 0.42 ، [46] يتم تمثيل كل ملف أو (منذ MS-DOS 1.40 وPC DOS 2.0) دليل فرعي مخزن فيه بواسطة إدخال مكون من 32 بايت في الجدول. يسجل كل إدخال الاسم والامتداد والسمات ( الأرشيف والدليل والمخفي والقراءة فقط والنظام والمجلد) وعنوان أول مجموعة من بيانات الملف/الدليل وحجم الملف/الدليل والتاريخ [46] و(منذ PC DOS 1.1) أيضًا وقت آخر تعديل. استخدمت الإصدارات السابقة من 86-DOS إدخالات دليل مكونة من 16 بايت فقط، ولا تدعم أي ملفات أكبر من 16 ميجا بايت ولا وقت آخر تعديل. [46]
لا يفرض نظام الملفات FAT نفسه أي حدود على عمق شجرة الدليل الفرعي طالما توجد مجموعات مجانية متاحة لتخصيص الدلائل الفرعية، ومع ذلك، فإن بنية الدليل الحالية الداخلية (CDS) تحت MS-DOS/PC DOS تحد من المسار المطلق للدليل إلى 66 حرفًا (بما في ذلك حرف محرك الأقراص، ولكن باستثناء فاصل البايت NUL)، [24] [25] [26] وبالتالي تحد من أقصى عمق مدعوم للدلائل الفرعية إلى 32، أيًا كان ما يحدث قبل ذلك. لا تخزن أنظمة DOS المتزامنة وDOS متعدد المستخدمين وDR DOS 3.31 إلى 6.0 (حتى تحديثات 1992-11) مسارات مطلقة إلى الدلائل العاملة داخليًا وبالتالي لا تظهر هذا القيد. [47] وينطبق الشيء نفسه على Atari GEMDOS، لكن Atari Desktop لا يدعم أكثر من 8 مستويات للدليل الفرعي. تدعم معظم التطبيقات التي تدرك هذا الامتداد مسارات تصل إلى 127 بايت على الأقل. تدعم أنظمة FlexOS و4680 OS و4690 OS أيضًا طولًا يصل إلى 127 بايتًا، مما يسمح بعمق يصل إلى 60 مستوى. [48] تتميز أنظمة PalmDOS وDR DOS 6.0 (منذ BDOS 7.1) والإصدارات الأحدث وNovell DOS وOpenDOS بنظام CDS متوافق مع MS-DOS وبالتالي لها نفس حدود الطول مثل MS-DOS/PC DOS.
يمكن أن تسبق كل إدخال "إدخالات وهمية" لدعم اسم الملف الطويل VFAT (LFN)؛ راجع المزيد أدناه.
تتضمن الأحرف القانونية لأسماء الملفات القصيرة في نظام التشغيل DOS ما يلي:
- الحروف الكبيرة
A–Z - الأرقام-
09 - المسافة (على الرغم من أن المسافات الزائدة في الاسم الأساسي أو الامتداد تعتبر حشوًا وليست جزءًا من اسم الملف؛ كما أن أسماء الملفات التي تحتوي على مسافة لم يكن من الممكن استخدامها بسهولة على سطر أوامر DOS قبل Windows 95 بسبب عدم وجود نظام إفلات مناسب ). هناك استثناء آخر وهو الأوامر الداخلية
MKDIR/MDوRMDIR/RDضمن DR-DOS والتي تقبل وسيطات مفردة وبالتالي تسمح بإدخال المسافات. ! # $ % & ' ( ) - @ ^ _ ` { } ~- الشخصيات 128-228
- الشخصيات 230-255
يستثني هذا الأحرف ASCII التالية :
" * / : < > ? \ |
لا يوجد حرف إفلات shell في نظامي التشغيل Windows/MS-DOS+ , . ; = [ ]
مسموح به في أسماء الملفات الطويلة فقط- الأحرف الصغيرة
a–z
مخزنة كـA–Z؛ مسموح بها في أسماء الملفات الطويلة - أحرف التحكم 0–31
- الحرف 127 (حذف)
لم يُسمح باستخدام الحرف 229 ( 0xE5 ) كحرف أول في اسم الملف في نظامي التشغيل DOS 1 و2 بسبب استخدامه كعلامة إدخال مجانية. تمت إضافة حالة خاصة للالتفاف على هذا القيد في نظامي التشغيل DOS 3.0 والإصدارات الأحدث.
يُسمح بالأحرف الإضافية التالية على نظام GEMDOS الخاص بشركة Atari، ولكن يجب تجنبها من أجل التوافق مع MS-DOS/PC DOS:
" + , ; < = > [ ] |
;يجب تجنب استخدام الفاصلة المنقوطة ( ) في أسماء الملفات في أنظمة DR DOS 3.31 والإصدارات الأحدث، وPalmDOS، وNovell DOS، وOpenDOS، وConcurrent DOS، وMultiuser DOS، وSystem Manager، وREAL/32، لأنها قد تتعارض مع بناء الجملة لتحديد كلمات مرور الملفات والدلائل: " ...\DIRSPEC.EXT;DIRPWD\FILESPEC.EXT;FILEPWD". سيقوم نظام التشغيل بإزالة فاصلة منقوطة واحدة [47] (وأيضًا اثنتين—منذ DR-DOS 7.02) وكلمات مرور معلقة من أسماء الملفات قبل تخزينها على القرص. (يستخدم معالج الأوامر 4DOS الفواصل المنقوطة لقوائم التضمين ويتطلب مضاعفة الفاصلة المنقوطة للملفات المحمية بكلمة مرور مع أي أوامر تدعم الأحرف البدل. [47] )
يتم استخدام حرف علامة ( @) لقوائم الملفات بواسطة العديد من أنظمة DR-DOS وPalmDOS وNovell DOS وOpenDOS وMultiuser DOS وSystem Manager وأوامر REAL/32، بالإضافة إلى 4DOS، وبالتالي قد يكون من الصعب في بعض الأحيان استخدامه في أسماء الملفات. [47]
في نظامي التشغيل DOS متعدد المستخدمين وREAL/32، لا تعد علامة التعجب (!) حرف اسم ملف صالحًا لأنها تستخدم لفصل الأوامر المتعددة في سطر أوامر واحد. [47]
في أنظمة التشغيل IBM 4680 و4690، لا يُسمح بالأحرف التالية في أسماء الملفات:
? * : . ; , [ ] ! + = < > " - / \ |
بالإضافة إلى ذلك، لا يُسمح بالأحرف الخاصة التالية في الحرف الأول والرابع والخامس والثامن من اسم الملف، لأنها تتعارض مع معالج أوامر المضيف (HCP) وأسماء ملفات بناء جدول تسلسل الإدخال:
@ # ( ) { } $ &
أسماء ملفات DOS موجودة في مجموعة أحرف OEM الحالية : يمكن أن يكون لهذا تأثيرات مفاجئة إذا تم تفسير الأحرف التي تتم معالجتها بطريقة ما لصفحة رمز معينة بشكل مختلف لصفحة رمز أخرى (أمر DOS CHCP) فيما يتعلق بالأحرف الصغيرة والكبيرة، أو الفرز، أو الصلاحية كحرف اسم ملف.
إدخال الدليل
قبل أن تضيف شركة Microsoft الدعم لأسماء الملفات الطويلة وطوابع الوقت الخاصة بالإنشاء/الوصول، كانت البايتات 0x0C – 0x15 من إدخال الدليل تستخدمها أنظمة تشغيل أخرى لتخزين بيانات تعريفية إضافية، وأبرزها أن أنظمة التشغيل من عائلة Digital Research كانت تخزن كلمات مرور الملفات وحقوق الوصول ومعرفات المالك وبيانات حذف الملفات هناك. وفي حين أن ملحقات Microsoft الأحدث ليست متوافقة تمامًا مع هذه الملحقات افتراضيًا، إلا أن معظمها يمكن أن تتعايش في تطبيقات FAT التابعة لجهات خارجية (على الأقل على وحدات تخزين FAT12 وFAT16).
تكون إدخالات الدليل المكونة من 32 بايت، سواء في منطقة الدليل الجذر أو في الدلائل الفرعية، بالتنسيق التالي (انظر أيضًا 8.3 اسم الملف ):
| إزاحة البايت | الطول (بايت) | محتويات | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | 8 | اسم ملف قصير (مبطن بالمسافات)
يمكن أن يحتوي البايت الأول على القيم الخاصة التالية:
تبدأ إصدارات DOS السابقة للإصدار 5.0 في فحص جداول الدليل من أعلى جدول الدليل إلى أسفله. ولزيادة فرص استعادة الملف المحذوف بنجاح، سيتذكر نظام DOS الإصدار 5.0 والإصدارات الأحدث موضع آخر إدخال مكتوب في الدليل ويستخدمه كنقطة بداية لفحص جداول الدليل. | ||||||||||||||||||||||||||||||||||||||||||
| 0x08 | 3 | امتداد الملف القصير (مبطن بالمسافات) | ||||||||||||||||||||||||||||||||||||||||||
| 0x0ب | 1 | سمات الملف
في نظام DR DOS 6.0 والإصدارات الأحدث، بما في ذلك PalmDOS وNovell DOS وOpenDOS، يتم تعيين سمة وحدة التخزين للملفات والدلائل المعلقة المحذوفة ضمن DELWATCH. تُستخدم مجموعة السمات 0x0F لتعيين إدخال اسم ملف طويل بتنسيق VFAT منذ MS-DOS 7.0. وقد تخطئ الإصدارات الأقدم من نظام التشغيل DOS في اعتبار هذا الإدخال علامة مجلد دليل، حيث تأخذ الإدخال الأول الذي تم تعيين سمة المجلد عليه كعلامة مجلد. ويمكن تجنب هذه المشكلة إذا تم فرض علامة مجلد دليل كجزء من عملية التنسيق؛ ولهذا السبب تكتب بعض أدوات القرص صراحةً علامات مجلد دليل وهمية " " عندما لا يحدد المستخدم علامة مجلد. [nb 13] نظرًا لأن علامات المجلد لا تحتوي عادةً على سمة النظام المضبوطة في نفس الوقت، فمن الممكن التمييز بين علامات المجلد وإدخالات VFAT LFN. قد تحدث تركيبة السمات 0x0F أحيانًا أيضًا كجزء من ملف حذف معلق صالح ضمن DELWATCH، ومع ذلك، في وحدات تخزين FAT12 وFAT16، تحتوي إدخالات VFAT LFN دائمًا على قيمة المجموعة عند 0x1A مضبوطة على 0x0000 ولا يكون إدخال الطول عند 0x1C أبدًا 0x00000000 ، بينما يكون الإدخال عند 0x1A دائمًا غير صفري لملفات الحذف المعلقة ضمن DELWATCH. لا يعمل هذا الفحص على وحدات تخزين FAT32.
| ||||||||||||||||||||||||||||||||||||||||||
| 0x0ج | 1 |
| ||||||||||||||||||||||||||||||||||||||||||
| 0x0د | 1 |
لا يؤدي الاستخدام المزدوج لوقت الإنشاء ms وchar الملف إلى إنشاء تعارض، نظرًا لأن وقت الإنشاء لم يعد مهمًا للملفات المحذوفة. | ||||||||||||||||||||||||||||||||||||||||||
| 0x0E | 2 |
إذا كانت البتات 15-11 > 23 أو البتات 10-5 > 59 أو البتات 4-0 > 29 هنا، أو عندما تحتوي البتات 12-0 عند الإزاحة 0x14 على خريطة بتات وصول وهذا ليس وحدة تخزين FAT32 أو وحدة تخزين تستخدم سمات OS/2 الموسعة، فإن هذا الإدخال يحتوي في الواقع على تجزئة كلمة مرور، وإلا فيمكن افتراض أنه وقت إنشاء ملف. | ||||||||||||||||||||||||||||||||||||||||||
| 0x10 | 2 |
لا يتعارض استخدام تاريخ إنشاء الملفات الموجودة مع وقت آخر تعديل للملفات المحذوفة لأنه لا يتم استخدامهما في نفس الوقت أبدًا. وللسبب نفسه، لا يتعارض استخدام حجم سجل الملفات الموجودة ووقت آخر تعديل للملفات المحذوفة. لا يمكن استخدام تواريخ الإنشاء وأحجام السجلات في نفس الوقت، ومع ذلك، يتم تخزين كليهما فقط عند إنشاء الملف ولا يتم تغييرهما أبدًا لاحقًا، وبالتالي يقتصر التعارض على أنظمة FlexOS و4680 OS و4690 OS التي تصل إلى الملفات التي تم إنشاؤها في أنظمة تشغيل أجنبية بالإضافة إلى مشكلات العرض أو فرز الملفات المحتملة على الأنظمة التي تحاول تفسير حجم السجل على أنه وقت إنشاء. لتجنب التعارض، يجب أن يكون تخزين تواريخ الإنشاء ميزة اختيارية لأنظمة التشغيل التي تدعمها. | ||||||||||||||||||||||||||||||||||||||||||
| 0x12 | 2 |
لا يتعارض استخدام معرفات المالك للملفات الموجودة مع ختم تاريخ التعديل الأخير للملفات المحذوفة لأنه لا يتم استخدامهما في نفس الوقت أبدًا. [47] لا يتعارض استخدام ختم تاريخ التعديل الأخير للملفات المحذوفة مع تاريخ الوصول لأن تواريخ الوصول لم تعد مهمة للملفات المحذوفة. ومع ذلك، لا يمكن استخدام معرفات المالك وتواريخ الوصول في نفس الوقت. | ||||||||||||||||||||||||||||||||||||||||||
| 0x14 | 2 |
يتعارض تخزين البايتين العاليتين من المجموعة الأولى في ملف على نظام FAT32 جزئيًا مع خرائط بتات حقوق الوصول. | ||||||||||||||||||||||||||||||||||||||||||
| 0x16 | 2 |
| ||||||||||||||||||||||||||||||||||||||||||
| 0x18 | 2 |
| ||||||||||||||||||||||||||||||||||||||||||
| 0×1 أمبير | 2 | بدء الملف في مجموعات في نظامي FAT12 وFAT16. بايتان منخفضان من المجموعة الأولى في نظام FAT32؛ مع تخزين البايتين المرتفعين عند الإزاحة 0x14 .
يجب أن تحتوي الإدخالات التي تحتوي على علامة تسمية وحدة التخزين، والدليل الفرعي ".." الذي يشير إلى جذر FAT12 وFAT16، والملفات الفارغة ذات الحجم 0 على المجموعة الأولى 0. تحتوي إدخالات VFAT LFN أيضًا على هذا الإدخال مضبوطًا على 0؛ في وحدات تخزين FAT12 وFAT16، يمكن استخدام هذا كجزء من آلية الكشف للتمييز بين ملفات الحذف المعلقة ضمن DELWATCH وVFAT LFNs؛ انظر أعلاه. | ||||||||||||||||||||||||||||||||||||||||||
| 0x1ج | 4 | حجم الملف بالبايت. يجب أن يكون حجم الإدخالات التي تحمل علامة تسمية المجلد أو الدليل الفرعي 0.
لا تخزن إدخالات VFAT LFN القيمة 0x00000000 هنا أبدًا. يمكن استخدام هذا كجزء من آلية الكشف للتمييز بين ملفات الحذف المعلقة ضمن DELWATCH وVFAT LFNs؛ انظر أعلاه. |
تدعم أنظمة التشغيل IBM 4680 OS و IBM 4690 OS المستندة إلى FlexOS سمات توزيع فريدة مخزنة في بعض أجزاء المناطق المحجوزة مسبقًا في إدخالات الدليل: [62]
- محليًا: لا تقم بتوزيع الملف ولكن ابقه على وحدة التحكم المحلية فقط. [ملاحظة 14]
- ملف المرآة عند التحديث: توزيع الملف على الخادم فقط عند تحديث الملف.
- ملف المرآة عند الإغلاق: توزيع الملف على الخادم فقط عند إغلاق الملف.
- ملف مركب عند التحديث: توزيع الملف على كافة وحدات التحكم عند تحديث الملف.
- ملف مركب عند الإغلاق: توزيع الملف على كافة وحدات التحكم عند إغلاق الملف. [63]
تتضمن بعض الامتدادات غير المتوافقة الموجودة في بعض أنظمة التشغيل ما يلي:
| إزاحة البايت | الطول (بايت) | نظام | وصف |
|---|---|---|---|
| 0x0ج | 2 | نظام تشغيل RISC | نوع الملف، 0x0000 – 0x0FFF |
| 0x0ج | 4 | بتروف DOSFS | عنوان تحميل الملف |
| 0x0E | 2 | أندوس | عنوان الملف في الذاكرة |
| 0x10 | 4 | بتروف DOSFS | عنوان تنفيذ الملف |
حدود الحجم
تحتوي المتغيرات FAT12 وFAT16 وFAT16B وFAT32 من أنظمة الملفات FAT على حدود واضحة بناءً على عدد المجموعات وعدد القطاعات لكل مجموعة (1، 2، 4، ...، 128). بالنسبة للقيمة النموذجية 512 بايت لكل قطاع:
متطلبات FAT12: 3 قطاعات في كل نسخة من FAT لكل 1024 مجموعة
متطلبات FAT16: قطاع واحد في كل نسخة من FAT لكل 256 مجموعة
متطلبات FAT32: قطاع واحد في كل نسخة من FAT لكل 128 مجموعة
نطاق FAT12: من 1 إلى 4084 مجموعة: من 1 إلى 12 قطاعًا لكل نسخة من FAT
نطاق FAT16: من 4085 إلى 65524 مجموعة: من 16 إلى 256 قطاعًا لكل نسخة من FAT
نطاق FAT32: من 65525 إلى 268435444 مجموعة: من 512 إلى 2097152 قطاعًا لكل نسخة من FAT
الحد الأدنى لـ FAT12: قطاع واحد لكل مجموعة × 1 مجموعة = 512 بايت (0.5 كيلوبايت)
الحد الأدنى لـ FAT16: قطاع واحد لكل مجموعة × 4085 مجموعة = 2,091,520 بايت (2,042.5 كيلوبايت)
الحد الأدنى لـ FAT32: قطاع واحد لكل مجموعة × 65,525 مجموعة = 33,548,800 بايت (32,762.5 كيلوبايت)
الحد الأقصى لـ FAT12: 64 قطاعًا لكل مجموعة × 4,084 مجموعة = 133,824,512 بايت (≈ 127 ميجابايت)
[الحد الأقصى لـ FAT12: 128 قطاعًا لكل مجموعة × 4,084 مجموعة = 267,694,024 بايت (≈ 255 ميجابايت)]
الحد الأقصى لـ FAT16: 64 قطاعًا لكل مجموعة × 65,524 مجموعة = 2,147,090,432 بايت (≈ 2,047 ميجابايت)
[الحد الأقصى لـ FAT16: 128 قطاعًا لكل مجموعة × 65,524 مجموعة = 4,294,180,864 بايت (≈4,095 ميجابايت)]
الحد الأقصى لـ FAT32: 8 قطاعات لكل مجموعة × 268,435,444 مجموعة = 1,099,511,578,624 بايت (≈1,024 جيجابايت)
الحد الأقصى لـ FAT32: 16 قطاعًا لكل مجموعة × 268,173,557 مجموعة = 2,196,877,778,944 بايت (≈2,046 جيجابايت)
[الحد الأقصى لـ FAT32: 32 قطاعًا لكل مجموعة × 134,152,181 مجموعة = 2,197,949,333,504 بايت (≈2,047 جيجابايت)]
[الحد الأقصى لـ FAT32: 64 قطاعًا لكل مجموعة × 67,092,469 مجموعة = 2,198,486,024,192 بايت (≈2,047 جيجابايت)]
[الحد الأقصى لـ FAT32: 128 قطاعًا لكل مجموعة × 33,550,325 مجموعة = 2,198,754,099,200 بايت (≈2,047 جيجابايت)]
- الأسطورة: 268435444+3 هو 0x0FFFFFF7 ، لأن إصدار FAT32 0 يستخدم 28 بت فقط في أرقام المجموعة المكونة من 32 بت، وأرقام المجموعة 0x0FFFFFF7 حتى 0x0FFFFFFF تشير إلى المجموعات السيئة أو نهاية الملف، ورقم المجموعة 0 يشير إلى مجموعة مجانية، ورقم المجموعة 1 غير مستخدم. [33] وبالمثل، 65524+3 هو 0xFFF7 لـ FAT16، و4084+3 هو 0xFF7 لـ FAT12. عدد القطاعات لكل مجموعة هو قوة 2 تتناسب مع بايت واحد، وأصغر قيمة هي 1 ( 0x01 )، وأكبر قيمة هي 128 ( 0x80 ). تشير الخطوط الموجودة بين قوسين مربعين إلى حجم المجموعة غير المعتاد 128، وبالنسبة لـ FAT32 فإن أحجام المجموعة الأكبر من اللازم هي 32 أو 64. [64]
نظرًا لأن كل إدخال FAT32 يشغل 32 بتًا (4 بايت)، فإن العدد الأقصى للمجموعات (268435444) يتطلب 2097152 قطاع FAT لحجم قطاع يبلغ 512 بايت. 2097152 هو 0x200000 ، وتخزين هذه القيمة يحتاج إلى أكثر من بايتين. لذلك، قدم FAT32 قيمة جديدة مكونة من 32 بت في قطاع تمهيد FAT32 مباشرة بعد القيمة المكونة من 32 بت للعدد الإجمالي للقطاعات المقدمة في متغير FAT16B.
تبدأ ملحقات سجل التمهيد المقدمة مع DOS 4.0 برقم سحري 40 ( 0x28 ) أو 41 ( 0x29 ). عادةً ما تبحث برامج تشغيل FAT فقط عن عدد المجموعات للتمييز بين FAT12 وFAT16 وFAT32: يتم تجاهل السلاسل القابلة للقراءة بواسطة الإنسان والتي تحدد متغير FAT في سجل التمهيد، لأنها موجودة فقط للوسائط المنسقة بنظام DOS 4.0 أو أحدث.
إن تحديد عدد مداخل الدليل لكل مجموعة هو أمر بسيط. يشغل كل مدخل 32 بايت؛ وهذا يؤدي إلى 16 مدخلاً لكل قطاع لحجم قطاع يبلغ 512 بايت. يزيل الأمر DOS 5 RMDIR/ المدخلات RDالأولية " ." (هذا الدليل) و" .." (الدليل الرئيسي) في الدلائل الفرعية بشكل مباشر، وبالتالي فإن حجم القطاع 32 على قرص RAM ممكن لنظام FAT12، لكنه يتطلب قطاعين أو أكثر لكل مجموعة. يحتاج قطاع تمهيد FAT12 بدون امتدادات DOS 4 إلى 29 بايت قبل أول عدد غير ضروري من القطاعات المخفية FAT16B 32 بت، وهذا يترك ثلاثة بايتات لكود التمهيد (على قرص RAM غير مستخدم) والرمز السحري 0x55 0xAA في نهاية جميع قطاعات التمهيد. في Windows NT، أصغر حجم قطاع مدعوم هو 128.
في أنظمة التشغيل Windows NT،FORMAT تتوافق خيارات الأوامر /A:128Kو /A:256Kمع الحد الأقصى لحجم المجموعة 0x80(128) بحجم قطاع 1024 و2048 على التوالي. بالنسبة لحجم القطاع الشائع 512 /A:64Kينتج 128 قطاعًا لكل مجموعة.
تحدد كل من إصدارات ECMA-107 [24] وISO/IEC 9293 [25] [26] رقم مجموعة أقصى MAX يتم تحديده بواسطة الصيغة ، وتحتفظ بأرقام مجموعة احتياطية حتى 4086 ( 0xFF6 ، FAT12) ولاحقًا 65526 ( 0xFFF6 ، FAT16) للتوحيد القياسي في المستقبل.
MAX=1+trunc((TS-SSA)/SC)MAX+1
تنص مواصفات EFI FAT32 من Microsoft [4] على أن أي نظام ملفات FAT يحتوي على أقل من 4085 مجموعة هو FAT12، وإلا فإن أي نظام ملفات FAT يحتوي على أقل من 65525 مجموعة هو FAT16، وإلا فهو FAT32. يجب أن يكون الإدخال الخاص بالمجموعة 0 في بداية FAT مطابقًا لبايت الوصف الإعلامي الموجود في BPB، بينما يعكس الإدخال الخاص بالمجموعة 1 قيمة نهاية السلسلة المستخدمة بواسطة المُنسِّق لسلاسل المجموعات ( 0xFFF أو 0xFFFF أو 0x0FFFFFFFF ). تنتهي الإدخالات الخاصة بأرقام المجموعة 0 و1 عند حد البايت حتى بالنسبة لـ FAT12، على سبيل المثال، 0xF9FFFF لوصف الوسائط 0xF9 .
مجموعة البيانات الأولى هي 2، [33] وبالتالي MAXتحصل المجموعة الأخيرة على الرقم MAX+1. وينتج عن هذا أرقام مجموعة البيانات 2...4085 ( 0xFF5 ) لنظام FAT12، و2...65525 ( 0xFFF5 ) لنظام FAT16، و2...268435445 ( 0x0FFFFFF5 ) لنظام FAT32.
لذلك، فإن القيم المتاحة الوحيدة المخصصة للتوحيد القياسي في المستقبل هي 0xFF6 (FAT12) و 0xFFF6 (FAT16). وكما هو موضح أدناه، فإن "أقل من 4085" تُستخدم أيضًا لتطبيقات Linux، [44] أو كما تقول مواصفات FAT الخاصة بشركة Microsoft : [4]
... عندما يظهر <، فهذا لا يعني <=. لاحظ أيضًا أن الأرقام صحيحة. الرقم الأول لنظام FAT12 هو 4085؛ والرقم الثاني لنظام FAT16 هو 65525. هذه الأرقام وعلامتي "<" ليست خاطئة."
التفتت
لا يحتوي نظام الملفات FAT على آليات مدمجة تمنع الملفات المكتوبة حديثًا من الانتشار عبر القسم. [65] في المجلدات التي يتم فيها إنشاء الملفات وحذفها بشكل متكرر أو تغيير أطوالها غالبًا، ستصبح الوسائط مجزأة بشكل متزايد بمرور الوقت.
في حين أن تصميم نظام الملفات FAT لا يسبب أي تكلفة تنظيمية في هياكل القرص أو يقلل من مقدار مساحة التخزين المجانية مع زيادة كميات التجزئة ، كما يحدث مع التجزئة الخارجية ، فإن الوقت المطلوب لقراءة وكتابة الملفات المجزأة سيزداد حيث سيتعين على نظام التشغيل اتباع سلاسل المجموعات في FAT (مع ضرورة تحميل الأجزاء في الذاكرة أولاً وخاصة على وحدات التخزين الكبيرة) وقراءة البيانات المقابلة المنتشرة فعليًا على الوسيط بالكامل مما يقلل من فرص برنامج تشغيل جهاز الكتلة منخفض المستوى لأداء إدخال/إخراج قرص متعدد القطاعات أو بدء عمليات نقل DMA أكبر، وبالتالي زيادة تكلفة بروتوكول الإدخال/الإخراج بشكل فعال بالإضافة إلى حركة الذراع وأوقات استقرار الرأس داخل محرك الأقراص. أيضًا، ستصبح عمليات الملفات أبطأ مع تزايد التجزئة حيث يستغرق نظام التشغيل وقتًا أطول بشكل متزايد للعثور على الملفات أو المجموعات المجانية.
تستخدم أنظمة الملفات الأخرى، مثل HPFS أو exFAT ، خرائط بتات للمساحات الحرة تشير إلى المجموعات المستخدمة والمتاحة، والتي يمكن بعد ذلك البحث عنها بسرعة للعثور على المناطق المتجاورة الحرة. هناك حل آخر يتمثل في ربط جميع المجموعات الحرة في قائمة واحدة أو أكثر (كما هو الحال في أنظمة ملفات يونكس ). بدلاً من ذلك، يجب مسح FAT كمجموعة للعثور على المجموعات الحرة، وهو ما قد يؤدي إلى عقوبات على الأداء مع الأقراص الكبيرة.
في الواقع، يعد البحث عن الملفات في الدلائل الفرعية الكبيرة أو حساب مساحة القرص الخالية على وحدات تخزين FAT من أكثر العمليات استهلاكًا للموارد، حيث يتطلب قراءة جداول الدلائل أو حتى وحدة تخزين FAT بالكامل خطيًا. نظرًا لأن العدد الإجمالي للمجموعات وحجم إدخالاتها في وحدة تخزين FAT كان لا يزال صغيرًا على وحدات تخزين FAT12 وFAT16، فقد كان من الممكن تحمل ذلك على وحدات تخزين FAT12 وFAT16 في معظم الأوقات، مع الأخذ في الاعتبار أن إدخال هياكل أقراص أكثر تعقيدًا كان من شأنه أيضًا أن يزيد من تعقيد ومساحة الذاكرة لأنظمة التشغيل في الوضع الحقيقي مع متطلبات ذاكرة إجمالية لا تقل عن 128 كيلوبايت (مثل نظام التشغيل DOS) والتي تم تصميم FAT وتحسينها في الأصل.
مع تقديم نظام FAT32، أصبحت أوقات البحث والمسح الطويلة أكثر وضوحًا، وخاصةً على وحدات التخزين الضخمة جدًا. كان أحد التبريرات المحتملة التي اقترحها رايموند تشين من شركة Microsoft للحد من الحجم الأقصى لأقسام FAT32 التي تم إنشاؤها على نظام Windows هو الوقت المطلوب لإجراء عملية " DIR"، والتي تعرض دائمًا مساحة القرص الحرة كسطر أخير. [66] استغرق عرض هذا السطر وقتًا أطول وأطول مع زيادة عدد المجموعات. لذلك قدم نظام FAT32 قطاعًا خاصًا لمعلومات نظام الملفات حيث يتم الاحتفاظ بكمية المساحة الحرة المحسوبة مسبقًا على مدار دورات الطاقة، بحيث يلزم إعادة حساب عداد المساحة الحرة فقط عندما يتم إخراج وسيط قابل للإزالة بتنسيق FAT32 دون فصله أولاً أو إذا تم إيقاف تشغيل النظام دون إيقاف تشغيل نظام التشغيل بشكل صحيح، وهي مشكلة مرئية في الغالب مع أجهزة الكمبيوتر التي تعمل بنمط ATX ، على أنظمة DOS العادية وبعض المنتجات الاستهلاكية التي تعمل بالبطارية.
مع أحجام المجموعات الضخمة (16 كيلوبايت، 32 كيلوبايت، 64 كيلوبايت) المفروضة بواسطة أقسام FAT الأكبر، فإن التجزئة الداخلية في شكل إهدار مساحة القرص بسبب تراخي الملفات بسبب زيادة حجم المجموعة (نظرًا لأن الملفات نادرًا ما تكون مضاعفات دقيقة لحجم المجموعة) تبدأ في أن تصبح مشكلة أيضًا، خاصةً عندما يكون هناك عدد كبير جدًا من الملفات الصغيرة.
تم ابتكار العديد من التحسينات والتعديلات على تنفيذ برامج تشغيل نظام الملفات FAT وبرامج تشغيل الأجهزة الكتلية وأدوات القرص للتغلب على معظم الاختناقات في الأداء في التصميم المتأصل لنظام الملفات دون الحاجة إلى تغيير تخطيط الهياكل الموجودة على القرص. [67] [68] يمكن تقسيمها إلى طرق متصلة وغير متصلة بالإنترنت والعمل من خلال محاولة تجنب التجزئة في نظام الملفات في المقام الأول، ونشر طرق للتعامل بشكل أفضل مع التجزئة الحالية، وإعادة ترتيب وتحسين الهياكل الموجودة على القرص. مع وجود التحسينات في مكانها، يمكن أن يصل الأداء على وحدات تخزين FAT غالبًا إلى أداء أنظمة الملفات الأكثر تطورًا في السيناريوهات العملية، مع الاحتفاظ في نفس الوقت بميزة إمكانية الوصول حتى على الأنظمة الصغيرة جدًا أو القديمة.
لن يقوم نظام DOS 3.0 والإصدارات الأحدث بإعادة استخدام مساحة القرص للملفات المحذوفة على الفور لتخصيصات جديدة، بل سيبحث بدلاً من ذلك عن مساحة غير مستخدمة سابقًا قبل البدء في استخدام مساحة القرص للملفات المحذوفة سابقًا أيضًا. لا يساعد هذا فقط في الحفاظ على سلامة الملفات المحذوفة لأطول فترة ممكنة، بل إنه يسرع أيضًا من تخصيص الملفات ويتجنب التجزئة، حيث إن مساحة القرص التي لم يتم تخصيصها من قبل تكون دائمًا غير مجزأة. يحقق نظام DOS هذا من خلال الاحتفاظ بمؤشر إلى آخر مجموعة مخصصة على كل وحدة تخزين مثبتة في الذاكرة ويبدأ في البحث عن مساحة خالية من هذا الموقع إلى أعلى بدلاً من بداية FAT، كما كان يتم ذلك بواسطة DOS 2.x. [13] إذا تم الوصول إلى نهاية FAT، فسوف يلتف حول الاستمرار في البحث في بداية FAT حتى يتم العثور على مساحة خالية أو يتم الوصول إلى الموضع الأصلي مرة أخرى دون العثور على مساحة خالية. [13] يتم تهيئة هذه المؤشرات للإشارة إلى بداية ملفات FAT بعد التمهيد، [13] ولكن على وحدات تخزين FAT32، سيحاول نظام التشغيل DOS 7.1 والإصدارات الأحدث استرداد آخر موضع من قطاع معلومات نظام الملفات. ومع ذلك، يتم إبطال هذه الآلية إذا كان التطبيق يحذف الملفات المؤقتة ويعيد إنشائها بشكل متكرر حيث سيحاول نظام التشغيل بعد ذلك الحفاظ على سلامة البيانات الفارغة مما يتسبب في مزيد من التفتت في النهاية. [13] في بعض إصدارات DOS، يمكن استخدام وظيفة API خاصة لإنشاء ملفات مؤقتة لتجنب هذه المشكلة.
بالإضافة إلى ذلك، سيتم وضع علامة 0xE5 على إدخالات الدليل للملفات المحذوفة منذ DOS 3.0. [42] سيبدأ DOS 5.0 والإصدارات الأحدث في إعادة استخدام هذه الإدخالات فقط عندما يتم استخدام إدخالات الدليل غير المستخدمة سابقًا في الجدول وإلا فسيضطر النظام إلى توسيع الجدول بنفسه. [6]
منذ إصدار DOS 3.3، يوفر نظام التشغيل الوسائل لتحسين أداء عمليات الملفات من FASTOPENخلال تتبع موضع الملفات أو الدلائل التي تم فتحها مؤخرًا في أشكال مختلفة من القوائم (MS-DOS/PC DOS) أو جداول التجزئة (DR-DOS)، والتي يمكنها تقليل أوقات البحث عن الملفات وفتحها بشكل كبير. قبل إصدار DOS 5.0، يجب توخي الحذر بشكل خاص عند استخدام مثل هذه الآليات جنبًا إلى جنب مع برنامج إلغاء تجزئة القرص الذي يتجاوز نظام الملفات أو برامج تشغيل القرص.
سيقوم نظام التشغيل Windows NT بتخصيص مساحة القرص للملفات الموجودة على نظام FAT مسبقًا، من خلال تحديد مناطق متجاورة كبيرة، ولكن في حالة حدوث فشل، ستظهر الملفات التي تم إضافتها أكبر حجمًا من الحجم الذي تمت كتابتها فيه، مع وجود الكثير من البيانات العشوائية في النهاية.
قد تقوم آليات أخرى عالية المستوى بقراءة ومعالجة أجزاء أكبر أو ملف FAT بالكامل عند بدء التشغيل أو عند الطلب عند الحاجة وبناء تمثيلات شجرة في الذاكرة بشكل ديناميكي لهياكل ملفات المجلد مختلفة عن الهياكل الموجودة على القرص. [67] [68] قد يشغل هذا، في المجلدات ذات العديد من المجموعات الحرة، مساحة ذاكرة أقل من صورة ملف FAT نفسه. وبشكل خاص في المجلدات شديدة التجزئة أو الممتلئة، تصبح عمليات البحث أسرع بكثير من عمليات المسح الخطية على ملف FAT الفعلي، حتى إذا تم تخزين صورة ملف FAT في الذاكرة. أيضًا، عند التشغيل على المستوى المرتفع منطقيًا للملفات وسلاسل المجموعات بدلاً من مستوى القطاع أو المسار، يصبح من الممكن تجنب درجة معينة من تجزئة الملف في المقام الأول أو تنفيذ إلغاء تجزئة الملف المحلي وإعادة ترتيب إدخالات الدليل بناءً على أسمائها أو أنماط الوصول في الخلفية.
تنتج بعض المشكلات الملحوظة مع تجزئة أنظمة ملفات FAT أيضًا عن قيود الأداء الخاصة ببرامج تشغيل الأجهزة الأساسية ، والتي تصبح أكثر وضوحًا كلما قلت الذاكرة المتاحة لتخزين القطاعات وحظر/إزالة حظر المسارات:
في حين أن نظام التشغيل DOS أحادي المهمة كان يحتوي على أحكام لقراءات متعددة القطاعات وحظر/إلغاء حظر المسارات، فإن نظام التشغيل وهندسة القرص الصلب التقليدية للكمبيوتر الشخصي ( طلب إدخال/إخراج واحد فقط في كل مرة ولا توجد عمليات نقل DMA ) لم تحتوي في الأصل على آليات يمكنها التخفيف من التجزئة من خلال جلب البيانات التالية مسبقًا بشكل غير متزامن أثناء معالجة التطبيق للأجزاء السابقة. أصبحت هذه الميزات متاحة لاحقًا. كما قدمت إصدارات DOS اللاحقة دعمًا مدمجًا لتخزين القطاعات مسبقًا وجاءت مع برامج تخزين مؤقتة قابلة للتحميل ديناميكيًا تعمل على مستوى القطاع المادي أو المنطقي، وغالبًا ما تستخدم ذاكرة EMS أو XMS وتوفر أحيانًا استراتيجيات تخزين مؤقتة تكيفية أو حتى تعمل في الوضع المحمي من خلال DPMS أو التمويه لزيادة الأداء من خلال الوصول المباشر إلى البيانات المخزنة مؤقتًا في الذاكرة الخطية بدلاً من خلال واجهات برمجة تطبيقات DOS التقليدية.
غالبًا ما لم يتم تمكين التخزين المؤقت للكتابة من الخلف افتراضيًا مع برامج Microsoft (إذا كانت موجودة) نظرًا لمشكلة فقدان البيانات في حالة انقطاع التيار الكهربائي أو التعطل، وهو ما أصبح أسهل بسبب نقص الحماية المادية بين التطبيقات والنظام.
أسماء الملفات الطويلة VFAT

يتم تخزين أسماء الملفات الطويلة VFAT (LFNs) على نظام ملفات FAT باستخدام خدعة: إضافة إدخالات إضافية إلى الدليل قبل إدخال الملف العادي. يتم تمييز الإدخالات الإضافية بخصائص Volume Label وSystem وHidden وRead Only (تنتج 0x0F )، وهي تركيبة غير متوقعة في بيئة MS-DOS، وبالتالي يتم تجاهلها بواسطة برامج MS-DOS وأدوات مساعدة الطرف الثالث. من الجدير بالذكر أن الدليل الذي يحتوي فقط على تسميات المجلد يعتبر فارغًا ويُسمح بحذفه؛ يظهر مثل هذا الموقف إذا تم حذف الملفات التي تم إنشاؤها بأسماء طويلة من DOS العادي. هذه الطريقة مشابهة جدًا لطريقة DELWATCH لاستخدام سمة المجلد لإخفاء ملفات الحذف المعلقة لإلغاء الحذف المحتمل في المستقبل منذ DR DOS 6.0 (1991) والإصدارات الأحدث. وهي مشابهة أيضًا لطريقة تمت مناقشتها علنًا لتخزين أسماء الملفات الطويلة على Ataris وتحت Linux في عام 1992. [69] [70]
نظرًا لأن الإصدارات الأقدم من نظام التشغيل DOS قد تخطئ في تحديد أسماء LFN في الدليل الجذر لعلامة وحدة التخزين، فقد تم تصميم VFAT لإنشاء علامة وحدة تخزين فارغة في الدليل الجذر قبل إضافة أي إدخالات اسم LFN (إذا لم تكن علامة وحدة التخزين موجودة بالفعل). [nb 13]
يمكن أن يحتوي كل إدخال مزيف على ما يصل إلى 13 حرف UCS-2 (26 بايت) باستخدام الحقول الموجودة في السجل والتي تحتوي على حجم الملف أو الطوابع الزمنية (ولكن ليس حقل المجموعة الأولية، للتوافق مع أدوات القرص، يتم تعيين حقل المجموعة الأولية على قيمة 0. راجع اسم الملف 8.3 لمزيد من التوضيحات). يمكن ربط ما يصل إلى 20 من هذه الإدخالات المكونة من 13 حرفًا، مما يدعم الحد الأقصى لطول 255 حرف UCS-2. [55]
إذا لم يكن موضع آخر حرف في LFN عند حدود إدخال الدليل (13، 26، 39، ...)، فسيتم إضافة فاصل 0x0000 في موضع الحرف التالي. ثم، إذا لم يكن هذا الفاصل أيضًا عند الحدود، فسيتم ملء مواضع الأحرف المتبقية بـ 0xFFFF . لن يوجد أي إدخال دليل يحتوي على فاصل وحيد.
تستخدم إدخالات LFN التنسيق التالي:
| إزاحة البايت | الطول (بايت) | وصف |
|---|---|---|
| 0x00 | 1 | رقم التسلسل (بت 6: آخر إدخال منطقي، أول إدخال فعلي في LFN، بت 5: 0؛ بتات 4-0: الرقم 0x01 .. 0x14 ( 0x1F )، الإدخال المحذوف: 0xE5 ) |
| 0x01 | 10 | أحرف الاسم (خمسة أحرف UCS-2 ) |
| 0x0ب | 1 | السمات (دائمًا 0x0F ) |
| 0x0ج | 1 | النوع (دائمًا 0x00 لـ VFAT LFN، والقيم الأخرى محجوزة للاستخدام المستقبلي؛ للاستخدام الخاص للبتات 4 و3 في SFNs، راجع أعلاه) |
| 0x0د | 1 | مجموع اختباري لاسم ملف DOS |
| 0x0E | 12 | أحرف الاسم (ستة أحرف UCS-2 ) |
| 0×1 أمبير | 2 | المجموعة الأولى (دائمًا 0x0000 ) |
| 0x1ج | 4 | أحرف الاسم ( حرفان UCS-2 ) |
إذا كان هناك عدة إدخالات LFN مطلوبة لتمثيل اسم ملف، فإن الإدخال الذي يمثل نهاية اسم الملف يأتي أولاً. يحتوي رقم التسلسل لهذا الإدخال على بت 6 ( 0x40 ) مضبوطًا لتمثيل أنه آخر إدخال LFN منطقي، وله أعلى رقم تسلسل. ينخفض رقم التسلسل في الإدخالات التالية. يحتوي الإدخال الذي يمثل بداية اسم الملف على رقم تسلسل 1. يتم استخدام قيمة 0xE5 للإشارة إلى حذف الإدخال.
في وحدات تخزين FAT12 وFAT16، يمكن استخدام اختبار القيم في 0x1A لتكون صفرًا وفي 0x1C لتكون غير صفرية للتمييز بين VFAT LFNs وملفات الحذف المعلقة ضمن DELWATCH.
على سبيل المثال، اسم الملف مثل "ملف باسم ملف طويل جدًا.ext" سيتم تنسيقه على النحو التالي:
| رقم التسلسل | بيانات الإدخال |
|---|---|
| 0x03 | "أنا.إكست" |
| 0x02 | "ملف طويل" |
| 0x01 | "ملف مع الإصدار" |
| ??? | دخول عادي 8.3 |
يسمح المجموع الاختباري أيضًا بالتحقق مما إذا كان اسم الملف الطويل يتطابق مع اسم الإصدار 8.3؛ وقد يحدث مثل هذا الاختلاف في التطابق إذا تم حذف ملف وإعادة إنشائه باستخدام DOS في نفس موضع الدليل. يتم حساب المجموع الاختباري باستخدام الخوارزمية أدناه. (pFCBName هو مؤشر إلى الاسم كما يظهر في إدخال دليل عادي، أي أن الأحرف الثمانية الأولى هي اسم الملف، والأحرف الثلاثة الأخيرة هي الامتداد. النقطة ضمنية. يتم ملء أي مساحة غير مستخدمة في اسم الملف بأحرف المسافة (ASCII 0x20 ). على سبيل المثال، "Readme.txt" سيكون " ".)
README␠␠TXT
مجموع الأحرف غير الموقعة lfn_checksum ( const unsigned char * pFCBName ) { int i ؛ مجموع الأحرف غير الموقعة = 0 ؛
بالنسبة إلى ( i = 11 ؛ i ؛ i -- ) المجموع = (( المجموع & 1 ) << 7 ) + ( المجموع >> 1 ) + * pFCBName ++ ؛
إرجاع المبلغ ؛ }
إذا كان اسم الملف يحتوي على أحرف صغيرة فقط، أو كان عبارة عن مزيج من اسم أساسي صغير مع امتداد كبير ، أو العكس؛ ولا يحتوي على أحرف خاصة، ويناسب حدود 8.3، فلا يتم إنشاء إدخال VFAT على Windows NT والإصدارات الأحدث من Windows مثل XP. بدلاً من ذلك، يتم استخدام بتين في البايت 0x0C من إدخال الدليل للإشارة إلى أنه يجب اعتبار اسم الملف بأحرف صغيرة بالكامل أو جزئيًا. على وجه التحديد، يعني البت 4 امتدادًا بأحرف صغيرة والبت 3 اسمًا أساسيًا صغيرًا ، مما يسمح بمجموعات مثل " " أو " " ولكن ليس " ". يدعمه عدد قليل من أنظمة التشغيل الأخرى. يؤدي هذا إلى إنشاء مشكلة توافق مع الإصدارات الأقدم من Windows (Windows 95 / 98 / 98 SE / ME) التي ترى أسماء الملفات بأحرف كبيرة بالكامل إذا تم استخدام هذا الامتداد، وبالتالي يمكن تغيير اسم الملف عند نقله بين أنظمة التشغيل، مثل محرك أقراص فلاش USB. ستتعرف إصدارات 2.6.x الحالية من Linux على هذا الامتداد عند القراءة (المصدر: kernel 2.6.18 و )؛ يحدد خيار mount ما إذا كانت هذه الميزة تُستخدم عند الكتابة. [71]example.TXTHELLO.txtMixed.txt/fs/fat/dir.cfs/vfat/namei.cshortname
انظر أيضا
- مقارنة بين أنظمة الملفات
- تعيين حرف محرك الأقراص
- إكسفات
- سجل التمهيد الممتد (EBR)
- نظام الملفات FAT وLinux
- قائمة أنظمة الملفات
- سجل التمهيد الرئيسي (MBR)
- نوع القسم
- التسلسل الزمني لأنظمة التشغيل DOS
- نظام الملفات FAT الآمن للمعاملات
- توربو فات
- سجل تمهيد المجلد (VBR)
ملحوظات
- ^ abc لتحقيق أقصى قدر من التوافق مع MS-DOS/PC DOS وDR-DOS، يجب على أنظمة التشغيل التي تحاول تحديد تنسيق القرص المرن أن تختبر جميع تسلسلات التعليمات البرمجية المذكورة عند إزاحة القطاع 0x000 بالإضافة إلى البحث عن بايت واصف وسائط صالح عند إزاحة القطاع 0x015 قبل افتراض وجود BPB. على الرغم من أن أقراص PC DOS المرنة 1.0 لا تحتوي على BPB، إلا أنها تبدأ بـ 0xEB أيضًا، لكنها لا تعرض 0x90 عند الإزاحة 0x002 . حتى أن أقراص PC DOS المرنة 1.10 تبدأ بـ 0xEB 0x?? 0x90 ، على الرغم من أنها لا تزال لا تحتوي على BPB. في كلتا الحالتين، سيفشل اختبار واصف وسائط صالح عند الإزاحة 0x015 (القيمة 0x00 بدلاً من واصفات الوسائط الصالحة 0xF0 وأعلى). إذا فشلت هذه الاختبارات، يتحقق نظام التشغيل DOS من وجود بايت واصف وسائط في البايت الأول من أول FAT في القطاع الذي يلي قطاع التمهيد (القطاع المنطقي 1 على الأقراص المرنة FAT12/FAT16).
- ^ abcde التوقيع عند الإزاحة 0x1FE في قطاعات التمهيد هو 0x55 0xAA ، أي 0x55 عند الإزاحة 0x1FE و 0xAA عند الإزاحة 0x1FF . نظرًا لأنه يجب افتراض التمثيل ذي الطرف الصغير في سياق الأجهزة المتوافقة مع أجهزة IBM PC ، فيمكن كتابة هذا على هيئة كلمة 16 بت 0xAA55 في البرامج الخاصة بمعالجات x86 (لاحظ ترتيب المبادلة)، بينما يجب كتابته على هيئة 0x55AA في البرامج الخاصة بهياكل وحدة المعالجة المركزية الأخرى باستخدام تمثيل ذي طرف كبير . نظرًا لأن هذا قد تم خلطه عدة مرات في الكتب وحتى في مستندات مرجعية أصلية من Microsoft، فإن هذه المقالة تستخدم التمثيل على القرص على أساس الإزاحة لكل بايت لتجنب أي سوء تفسير محتمل.
- ^ abc يحتوي إدخال المجموع الاختباري في قطاعات تمهيد Atari على قيمة المحاذاة، وليس القيمة السحرية نفسها. لا يتم تخزين القيمة السحرية 0x1234 في أي مكان على القرص. وعلى النقيض من معالجات Intel x86 ، تستخدم معالجات Motorola 680x0 كما تستخدم في أجهزة Atari تمثيل ذاكرة كبير الطرف وبالتالي يجب افتراض تمثيل كبير الطرف عند حساب المجموع الاختباري. ونتيجة لذلك، بالنسبة لرمز التحقق من المجموع الاختباري الذي يعمل على أجهزة x86، يجب تبديل أزواج البايتات قبل الإضافة المكونة من 16 بت.
- ^ DR-DOS قادر على التمهيد من وسائط القطاع المنطقي FAT12/FAT16 ذات أحجام القطاعات المنطقية التي تصل إلى 1024 بايت.
- ^ ab تعيد وظائف DOS التالية قيم السجل التالية: INT 21h/AH=2Ah "الحصول على تاريخ النظام" القيم المُرجعة: CX = السنة ( 1980 .. 2099 )، DH = الشهر (1..12)، DL = اليوم (1..31). INT 21h/AH=2Ch "الحصول على وقت النظام" القيم المُرجعة: CH = الساعة (0..23)، CL = الدقيقة (0..59)، DH = الثانية (0..59)، DL = 1/100 ثانية (0..99).
- ^ لوحظ أن نظام التشغيل Windows XP يقوم بإنشاء مثل هذه الأقراص الهجينة عند إعادة تهيئة أقراص ZIP-100 بتنسيق FAT16B إلى تنسيق FAT32. وكانت وحدات التخزين الناتجة بتنسيق FAT32، ولكنها لا تزال تستخدم FAT16B EBPB. (ليس من الواضح كيف يحدد Windows موقع الدليل الجذر على وحدات تخزين FAT32، إذا تم استخدام FAT16 EBPB فقط.)
- ^ ab إحدى الأدوات المساعدة التي توفر خيارًا لتحديد قيمة تعبئة التنسيق المطلوبة للأقراص الصلبة هي DR-DOS' FDISK R2.31 مع معلمة المسح الاختيارية الخاصة بها
/W:246. وعلى النقيض من أدوات FDISK الأخرى ، فإن DR-DOS FDISK ليس أداة تقسيم فحسب، بل يمكنه أيضًا تنسيق الأقسام التي تم إنشاؤها حديثًا بتنسيق FAT12 أو FAT16 أو FAT32 . وهذا يقلل من خطر تنسيق وحدات التخزين الخاطئة عن طريق الخطأ. - ^ لدعم التعايش بين DR-DOS وPC DOS وعمليات التثبيت المتوازية المتعددة لـ DR-DOS،
IBMBIO␠␠COMيمكن تغيير امتداد اسم ملف التمهيد الافتراضي " " باستخدامSYS /DR:extالخيار، حيث يمثل ext الامتداد الجديد. أسماء ملفات تمهيد DR-DOS المحتملة الأخرى المتوقعة في السيناريوهات الخاصة هي "DRBIOS␠␠SYS"، "DRDOS␠␠␠SYS"، "IO␠␠␠␠␠␠SYS"، "JO␠␠␠␠␠␠SYS". - ^ إذا تم مسح علامة إيقاف التشغيل المتسخة لمجلد ما عند بدء التشغيل، فهذا يعني أن المجلد لم يتم فصله بشكل صحيح. على سبيل المثال، قد يتسبب هذا في بدء تشغيل نظام التشغيل Windows 98 WIN.COM لبرنامج SCANDISK للتحقق من الأخطاء المحتملة في نظام الملفات المنطقية وإصلاحها. إذا تم مسح علامة القطاع التالف، فسوف يفرض ذلك إجراء فحص سطحي أيضًا. يمكن تعطيل هذا عن طريق تعيين AUTOSCAN=0 في قسم [OPTIONS] في ملف MSDOS.SYS .
- ^ abcd راجع الروابط الأخرى للحصول على احتياطات خاصة فيما يتعلق بوقوع قيمة مجموعة 0xFF0 على وحدات تخزين FAT12 في أنظمة MS-DOS/PC DOS 3.3 والإصدارات الأحدث.
- ^ ab بعض إصدارات FORMAT منذ MS-DOS 1.25 و PC DOS 2.0 تدعم خيارًا
/O(للإصدارات القديمة ) لملء البايت الأول من جميع إدخالات الدليل بـ 0xE5 بدلاً من استخدام علامة النهاية 0x00 . وبالتالي، ظل المجلد قابلاً للوصول في أنظمة PC DOS 1.0 - 1.1 ، بينما استغرق التنسيق وقتًا أطول ولم تتمكن الإصدارات الأحدث من DOS من الاستفادة من التسارع الكبير الناتج عن استخدام علامة النهاية 0x00 . - ^ هذا هو السبب وراء حصول 0xE5 على معنى خاص في إدخالات الدليل.
- لتجنب سوء تفسير تسميات مجلدات الدليل التي تحتوي على إدخالات VFAT LFN بواسطة أنظمة التشغيل غير المتوافقة مع VFAT، من المعروف أن أدوات DR-DOS 7.07 FDISK وFORMAT تكتب صراحة
NO␠NAME␠␠␠␠تسميات مجلدات الدليل " " وهمية إذا تخطى المستخدم إدخال تسمية مجلد. سيقوم نظام التشغيل افتراضيًا بإرجاع نفس السلسلة إذا لم يتم العثور على تسمية مجلد دليل في جذر المجلد، ولكن بدون تسمية مجلد حقيقية مخزنة كإدخال أول (بعد إدخالات الدليل)، يمكن لأنظمة التشغيل القديمة التقاط إدخالات VFAT LFN بدلاً من ذلك عن طريق الخطأ. - ^ يجب أن يكون لنوع سمة توزيع نظام التشغيل IBM 4680 ونظام التشغيل 4690 قيمة بت على القرص تساوي 0 لأن الملفات تعود إلى هذا النوع عند فقد السمات عن طريق الخطأ.
مراجع
- ^ "أنظمة الملفات". Microsoft TechNet . 2001. مؤرشف من الأصل في 2011-08-12 . تم الاسترجاع في 2011-07-31 .
- ^ من قبل Microsoft (2006-11-15). ملف Windows 95 CD-ROM CONFIG.TXT مؤرشف في 2013-01-28 على archive.today المقال 135481، المراجعة: 1.1، تم استرجاعه في 2011-12-22: "بالنسبة لكل قرص ثابت، يحدد ما إذا كان سيتم تسجيل تاريخ آخر وصول إلى الملفات. يتم إيقاف تشغيل تواريخ آخر وصول لجميع محركات الأقراص عند بدء تشغيل الكمبيوتر في الوضع الآمن، ولا يتم الاحتفاظ بها للأقراص المرنة بشكل افتراضي. بناء الجملة:
ACCDATE=drive1+|- [drive2+|-]..." - ^ Bhat, WA (2010). "مراجعة بنية بيانات FAT لنظام الملفات FAT32". S2CID 58178285.
{{cite web}}: مفقود أو فارغ|url=( مساعدة ) - ^ abcdefghijklmno "Microsoft Extensible Firmware Initiative FAT32 File System Specification, FAT: General Overview of On-Disk Format". Microsoft . 2000-12-06. مؤرشف من الأصل في 2021-07-23 . تم الاسترجاع في 2011-07-03 .
- ^ اي بي سي دي هاف ، ويلفريد. ميدل ، فرانك (نوفمبر 1987). "البيانات على Scheiben – File- und Diskettenstrukturen unter CP/M, MSDOS und TOS: Dateiverwaltung unter TOS". c't - مجلة لتقنية الكمبيوتر . ج' كارتي (في المانيا). المجلد. 1987، لا. 11. شركة Verlag Heinz Heise GmbH & Co. KG . ص 241 – 246 [246]. ردمك 0724-8679.
- ^ abcdefghijklmnop Chappell, Geoff (January 1994). Schulman, Andrew; Pedersen, Amorette (eds.). DOS Internals . The Andrew Schulman Programming Series (الطبعة الأولى، الطبعة الأولى). Addison Wesley Publishing Company . ISBN 978-0-201-60835-9.(xxvi+738+iv صفحات، قرص مرن مقاس 3.5 بوصة [1][2]) أخطاء: [3][4][5]
- ^ abcdefghijklmnopqrstu vw Microsoft MS-DOS 3.1 Programmierhandbuch باللغة الإنجليزية Sprache [ الدليل المرجعي لمبرمجي Microsoft MS-DOS 3.1 باللغة الإنجليزية ]. ميونيخ: Markt & Technik Verlag (نشرت عام 1986). 1984. ردمك 3-89090-368-18411-310-02، 036-014-012.
فيما يتعلق بتعليمات القفز في بداية قطاع التمهيد: "حدد ما إذا كان البايت الأول من قطاع التمهيد هو E9H أو EBIT (البايت الأول من قفزة قصيرة مكونة من 3 بايتات أو قفزة قصيرة مكونة من بايتين) أو EBH (البايت الأول من قفزة مكونة من بايتين متبوعة بـ NOP). إذا كان الأمر كذلك، فإن BPB يقع بدءًا من الإزاحة 3."
(ملاحظة: هذا الكتاب يحتوي على العديد من الأخطاء.) - ^ من تأليف دانيال ب. سيدوري. قطاع التمهيد في نظام تشغيل IBM Personal Computer DOS الإصدار 1.00 (1981) . 2005-08-02 ([6] مؤرشف من الأصل في 2014-05-21 على موقع واي باك مشين ).
- ^ من تأليف دانيال ب. سيدوري. قطاع التمهيد في نظام تشغيل IBM Personal Computer DOS الإصدار 1.10 (1982) . 2005-07-29 ([7] مؤرشف من الأصل في 2014-05-21 على موقع واي باك مشين ).
- ^ ab Caldera (1997). Caldera OpenDOS Machine Readable Source Kit 7.01 . يُظهر ملف DISK.ASM في مجموعة أدوات المصدر القابلة للقراءة آليًا أن DR-DOS يختبر القيمة 0x69 أيضًا.
- ^ بول، ماثياس ر. (2002-02-20). "Need DOS 6.22 (Not OEM)". مجموعة الأخبار : alt.msdos.programmer. مؤرشف من الأصل في 2017-09-09 . تم الاسترجاع في 2006-10-14 .
- ^ Bass, Wally (1994-02-14). "Cluster Size". Newsgroup : comp.os.msdos.programmer. مؤرشف من الأصل في 2017-09-09 . تم الاسترجاع في 2006-10-14 .
- ^ abcdefgh Dave Williams (1992). Programmer's Technical Reference for MSDOS and the IBM PC . DOSREF, Shareware version 01/12/1992. ISBN 1-878830-02-3 . ([8] Archived 2014-05-20 at the Wayback Machine , accessed on 2012-01-08). التعليق: يذكر المؤلف أن DOS 4.0 يتحقق من ملصق OEM، لكنه ينكر أن DOS 3.2 يتحقق منه أيضًا (على الرغم من أنه يفعل ذلك).
- ^ بول، ماتياس ر. (2004-08-25). "NOVOLTRK.REG". www.drdos.org . مؤرشف من الأصل في 2016-03-04 . تم الاسترجاع في 2011-12-17 .[9]
- ^ ab "استكشاف أخطاء الأقراص وأنظمة الملفات وإصلاحها". Microsoft TechNet . 2005-11-05. مؤرشف من الأصل في 2014-06-07 . تم الاسترجاع في 2014-06-15 .
- ^ IBM (1983). IBM PC Technical Reference Handbook . التعليق: يتضمن قائمة كاملة برمز مصدر BIOS ROM لجهاز IBM PC الأصلي.
- ^ abcd هانز ديتر يانكوفسكي، ديتمار رابيتش، جوليان ف. ريشكي (1992). أتاري بروفيبوتش ST-STE-TT . سايبكس الطبعة الرابعة الدفعة الثانية عشرة. ردمك 3-88745-888-5 ، ردمك 978-3-88745-888-1 .
- ^ Seagate Technologies, "The Transition to Advanced Format 4K Sector Hard Drives (archived by Wayback Machine @Archive.org)", 2010 ([10]).
- ^ abcd Brown, Ralf D. (2002-12-29). "قائمة المقاطعات x86". مؤرشف من الأصل في 2016-06-16 . تم الاسترجاع في 2011-10-14 .
- ^ abcd de Boyne Pollard, Jonathan (2010) [2006]. "كل شيء عن كتل معلمات BIOS". إجابات متكررة . مؤرشف من الأصل في 2016-08-26 . تم الاسترجاع في 2014-06-02 .
- ^ abc Microsoft MS-DOS Programmer's Reference: version 5.0. Microsoft press. 1991. ISBN 1-55615-329-5.
- ^ abcdefghijk "تنسيقات الأقراص المرنة القياسية التي يدعمها نظام التشغيل MS-DOS". تعليمات ودعم Microsoft. 2003-05-12. مؤرشف من الأصل في 2015-01-09 . تم الاسترجاع في 2012-09-11 .
- ^ abc Microsoft (1987-07). مرجع مبرمج MS-DOS 3.3.
- ^ abcdefghij "حجم وبنية الملفات لخراطيش القرص لتبادل المعلومات". Standard ECMA-107 (الطبعة الثانية، يونيو 1995) . ECMA . 1995. مؤرشف من الأصل في 2018-10-07 . تم الاسترجاع في 2011-07-30 .
- ^ abcdefghij "تكنولوجيا المعلومات -- حجم وبنية الملفات لخراطيش الأقراص لتبادل المعلومات". ISO/IEC 9293:1994 . كتالوج ISO . 1994. مؤرشف من الأصل في 2012-01-17 . تم الاسترجاع في 2012-01-06 .
- ^ abcdefghij "معالجة المعلومات -- حجم وبنية الملف لخراطيش الأقراص المرنة لتبادل المعلومات". ISO 9293:1987 . كتالوج ISO . 1987. مؤرشف من الأصل في 2012-01-17 . تم الاسترجاع في 2012-01-06 .
- ^ abc Andries Brouwer (2002-09-20). "نظام الملفات FAT". مؤرشف من الأصل في 2011-10-06 . تم الاسترجاع في 2011-10-16 .
- ^ abcdefghijklmnopqr Paterson, Tim ; Microsoft (2013-12-19) [1983]. "Microsoft DOS V1.1 and V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM". CHM . متحف تاريخ الكمبيوتر ، مايكروسوفت . مؤرشف من الأصل في 2019-08-14 . تم الاسترجاع في 2014-03-25 .(ملاحظة: في حين يدعي الناشرون أن هذا سيكون MS-DOS 1.1 و2.0، فهو في الواقع SCP MS-DOS 1.25 ومزيج من Altos MS-DOS 2.11 و TeleVideo PC DOS 2.11 .)
- ^ abcdefghij Zbikowski, Mark ; Allen, Paul ; Ballmer, Steve ; Borman, Reuben; Borman, Rob; Butler, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Farmer, Rick; Gates, Bill ; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W.; Kermaani, Kaamel; King, Adrian; Koch, Reed; Landowski, James; Larson, Chris; Lennon, Thomas; Lipkie, Dan; McDonald, Marc ; McKinney, Bruce; Martin, Pascal; Mathers, Estelle; Matthews, Bob; Melin, David; Mergentime, Charles; Nevin, Randy; Newell, Dan; Newell, Tani; Norris, David; O'Leary, Mike; O'Rear, Bob ; Olsson, Mike; Osterman, Larry; Ostling, Ridge; Pai, Sunil; Paterson, Tim ; Perez, Gary; Peters, Chris; Petzold, Charles ; Pollock, John; Reynolds, Aaron ; Rubin, Darryl; Ryan, Ralph; Schulmeisters, Karl; Shah, Rajen; Shaw, Barry; Short, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). "المستشارون الفنيون". موسوعة MS-DOS: الإصدارات من 1.0 إلى 3.2 . بقلم Duncan, Ray; Bostwick, Steve; Burgoyne, Keith; Byers, Robert A.; Hogan, Thom; Kyle, Jim; Letwin, Gordon ; بيتزولد، تشارلز ؛ رابينوفيتز، شيب؛ توملين، جيم؛ ويلتون، ريتشارد؛ ولفيرتون، فان؛ وونغ، ويليام؛ وودكوك، جوان (طبعة منقحة بالكامل). ريدموند، واشنطن، الولايات المتحدة الأمريكية: مايكروسوفت برس . رقم ISBN 1-55615-049-0. LCCN 87-21452. OCLC 16581341.(1570 صفحة؛ 26 سم) (ملاحظة: نُشرت هذه الطبعة في عام 1988 بعد إعادة صياغة واسعة النطاق للطبعة الأولى التي سُحبت عام 1986 بواسطة فريق مختلف من المؤلفين. [11] محفوظ في 2018-10-14 على موقع Wayback Machine )
- ^ "شرح مفصل لقطاع التمهيد FAT". قاعدة معارف Microsoft . 2003-12-06. مؤرشف من الأصل في 2011-11-28 . تم الاسترجاع في 2011-10-16 .
- ^ abc Lai, Robert S.; The Waite Group (1987). Writing MS-DOS Device Drivers (2nd ed.). Addison Wesley. ISBN 0-201-60837-5.
- ^ abcdefghijklmnopqrst Paterson, Tim ; Microsoft (2013-12-19) [1983]. "Microsoft DOS V1.1 and V2.0: /msdos/v20source/DEVDRIV.txt". متحف تاريخ الكمبيوتر ، مايكروسوفت . مؤرشف من الأصل في 2019-08-14 . تم الاسترجاع في 2014-03-25 .(ملاحظة: في حين يدعي الناشرون أن هذا سيكون MS-DOS 1.1 و2.0، فهو في الواقع SCP MS-DOS 1.25 ومزيج من Altos MS-DOS 2.11 و TeleVideo PC DOS 2.11 .)
- ^ abcde Tim Paterson (1983). "An Inside Look at MS-DOS". Byte . مؤرشف من الأصل في 2011-07-20 . تم الاسترجاع في 18 يوليو 2011 .
يبدأ الترقيم بالرقم 2؛ الرقمان الأولان، 0 و1، محجوزان.
- ^ abcd PORT-DOS - Userprompt Guide for Apricot Portable . User-Prompt Guides, UK ([12] Archived 2013-05-22 at the Wayback Machine ).
- ^ abcde John C. Elliott (1998). تنسيقات أقراص DOSPLUS . ([13] أرشيف 2013-06-07 على موقع Wayback Machine ).
- ^ abcd The BBC Master 512 . Yellow Pig's BBC Computer Pages ([14] Archived 2014-05-21 at the Wayback Machine ).
- ^ Digital Equipment Corporation. Rainbow 100 MS-DOS 2.01 Technical Documentation Volume 1 (QV025-GZ)، Microsoft MS-DOS Operating System BIOS Listing (AA-X432A-TV)، Universal Disk Driver، الصفحة 1-17. 1983.
- ^ "شرح مفصل لقطاع التمهيد FAT". DEW Associates Corporation. 2002. مؤرشف من الأصل في 2011-09-26 . تم الاسترجاع في 2011-10-16 .
- ^ Tyagi, Tarun (2004-10-31). "Clusters size in FAT and NTFS file systems". Data Recovery With and Without Programming. نيودلهي، الهند: Gardners Books. ص. 4. ISBN 978-81-7656-922-4. تم أرشفة النسخة الأصلية في 2021-12-03 . تم استرجاعها في 2021-12-03 .
- ^ Daniel B. Sedory. Detailed Notes on the "Dirty Shutdown Flag" under MS-Windows . 2001-12-04. ([15] Archived 2014-05-21 at the Wayback Machine ).
- ^ abcde "Windows 98 Resource Kit - Chapter 10 - Disks and File Systems". Microsoft TechNet . 1998. مؤرشف من الأصل في 2012-05-01 . تم الاسترجاع في 2012-07-16 .
- ^ abcd Schulman, Andrew; Brown, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [November 1993]. Undocumented DOS: A Programmer's Guide to Reserved MS-DOS Functions and data structures – Expanded to include MS-DOS 6, Novell DOS and Windows 3.1 (2 ed.). Reading, Massachusetts: Addison Wesley . p. 11. ISBN 0-201-63287-X.(xviii+856+vi صفحات، قرص مرن مقاس 3.5 بوصة) أخطاء: [16][17]
- ^ بيتر نورتون (1986). داخل جهاز كمبيوتر IBM الشخصي، منقح وموسع ، برادي. ISBN 0-89303-583-1 ، ص 157.
- ^ abc Andries Brouwer . "FAT تحت Linux". مؤرشف من الأصل في 2014-07-01 . تم استرجاعه في 2014-05-20 .
- ^ Andries Brouwer (2002-09-20). "FAT". مؤرشف من الأصل في 2017-12-17 . تم الاسترجاع 2012-01-11 .
- ^ abc Seattle Computer Products (1981). "SCP 86-DOS 1.0 Addendum" (PDF) . مؤرشف من الأصل (PDF) في 2012-10-03 . تم الاسترجاع في 2013-03-10 .
- ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak Paul، Matthias R. (1997/07/30) [1994/05/01]. نصائح NWDOS — نصائح وحيل تعمل على نظام التشغيل Novell DOS 7، مع النقر على تفاصيل غير موثقة وأخطاء وحلول بديلة. MPDOSTIP (باللغة الألمانية) (3 ed.). مؤرشفة من الأصلي بتاريخ 2016-11-05 . تم الاسترجاع 2012/01/11 .(ملاحظة: NWDOSTIP.TXT هو عمل شامل على Novell DOS 7 و OpenDOS 7.01 ، بما في ذلك وصف العديد من الميزات والأجزاء الداخلية غير الموثقة. وهو جزء من مجموعة MPDOSTIP.ZIP الأكبر التي يحتفظ بها المؤلف حتى عام 2001 ويتم توزيعها على العديد من المواقع في ذلك الوقت. يشير الرابط المقدم إلى إصدار أقدم من الملف تم تحويله إلى HTML.) [18]
- ^ دليل مستخدم نظام التشغيل IBM. 4690 الإصدار 5.2 ، مستند IBM SC30-4134-01، 2008-01-10 ([19]).
- ^ ab Paterson, Tim ; Microsoft (2013-12-19) [1983]. "Microsoft DOS V1.1 and V2.0: /msdos/v20source/FORMAT.TXT". متحف تاريخ الكمبيوتر ، مايكروسوفت . مؤرشف من الأصل في 2019-08-14 . تم الاسترجاع في 2014-03-25 .(ملاحظة: في حين يدعي الناشرون أن هذا سيكون MS-DOS 1.1 و2.0، فهو في الواقع SCP MS-DOS 1.25 ومزيج من Altos MS-DOS 2.11 و TeleVideo PC DOS 2.11 .)
- ^ ab Shustek, Len (2014-03-24). "Microsoft MS-DOS early source code". Software Gems: The Computer History Museum Historical Source Code Series. مؤرشف من الأصل في 2019-08-10 . تم الاسترجاع في 2014-03-29 .(ملاحظة: في حين يدعي المؤلف أن هذا سيكون MS-DOS 1.1 و2.0، فهو في الواقع SCP MS-DOS 1.25 ومزيج من Altos MS-DOS 2.11 و TeleVideo PC DOS 2.11 .)
- ^ ab Levin, Roy (2014-03-25). "Microsoft makes source code for MS-DOS and Word for Windows available to public". مدونة Microsoft الرسمية . مؤرشف من الأصل في 2014-03-28 . تم الاسترجاع في 2014-03-29 .(ملاحظة: في حين يدعي المؤلف أن هذا سيكون MS-DOS 1.1 و2.0، فهو في الواقع SCP MS-DOS 1.25 ومزيج من Altos MS-DOS 2.11 و TeleVideo PC DOS 2.11 .)
- ^ JEIDA/JEITA/CIPA (2010). "Standard of the Camera & Imaging Products Association, CIPA DC-009-Translation-2010, Design rule for Camera File system: DCF Version 2.0 (Edition 2010)" (PDF) . مؤرشف من الأصل (PDF) في 2013-09-30 . تم الاسترجاع في 2011-04-13 .
- ^ abcdefghijklmnopq Caldera (1997). Caldera OpenDOS Machine Readable Source Kit 7.01 . يحتوي ملف FDOS.EQU في مجموعة أدوات المصدر القابلة للقراءة آليًا على معادلات لإدخالات الدليل المقابلة.
- ^ John C. Elliott (1998). تنسيقات أقراص CP/M 4.1 . ([20] أرشيف 2014-08-26 على موقع Wayback Machine ): "يسمح CP/M 4.1 (DOS Plus [1.2]) باستخدام نظامي ملفات - CP/M وDOS. لا يمكن للإصدار [...] المزود مع Amstrad PC1512 التعامل مع أقراص مرنة أكبر من 360 كيلو بايت (CP/M) / 1.2 ميجا بايت (DOS)، أو أقسام قرص ثابت أكبر من 32 ميجا بايت. [...] يمكن أن يكون نظام ملفات DOS إما FAT12 أو FAT16. التنسيق هو بالضبط كما هو الحال في PCDOS 2.11، باستثناء: يحتوي بايت 0Ch من إدخال الدليل [...] على "سمات المستخدم" الأربع F1'-F4' [...] كلمات المرور على غرار DRDOS غير مدعومة."
- ^ ab vinDaci (1998-01-06). "Long Filename Specification". مؤرشف من الأصل في 2001-04-20 . تم الاسترجاع في 2007-03-13 .
- ^ هنك كيلدر. FAT32.TXT لـ FAT32.IFS الإصدار 0.74 . ( "@Macarlo, Inc". مؤرشف من الأصل في 2012-03-30 . استرجاع 2012-01-14 .). التعليق: لا تزال هذه النسخة الأقدم من ملف README تناقش القيم السحرية القديمة 0xEA و 0xEC .
- ^ Henk Kelder (2003). FAT32.TXT لإصدار FAT32.IFS 0.9.13." ([21] مؤرشف 2022-01-25 على موقع Wayback Machine ): "لا يتم تعديل هذا البايت [...] أثناء تشغيل Windows 95 ، بل يتم تعديله بواسطة SCANDISK أو DEFRAG. [...] إذا قام برنامج آخر بتعيين القيمة على 0x00 لملف يحتوي على EAs ، فلن يتم العثور على هذه EAs باستخدام مكالمات DosFindFirst/Next فقط. لا تعتمد مكالمات OS/2 الأخرى لاسترداد EAs (DosQueryPathInfo وDosQueryFileInfo وDosEnumAttribute) على هذا البايت. كما يمكن أن يحدث العكس [...]. [...] في هذه الحالة، سيتم تقليل أداء عمليات فحص الدليل فقط. يتم تصحيح كلا الموقفين [...] بواسطة CHKDSK ".
- ^ Netlabs. FAT32.IFS Wiki and Sources . ([22] Archived 2013-05-11 at the Wayback Machine ).
- ^ من دليل برمجة نظام التشغيل IBM. 4690 الإصدار 5.2 ، مستند IBM SC30-4137-01، 2007-12-06 ([23]).
- ^ abcdefghijklmn سلسلة مرجع مطوري OpenDOS — دليل النظام والمبرمج — دليل المبرمج. Caldera, Inc. أغسطس 1997. رقم قطعة Caldera 200-DODG-003. مؤرشف من الأصل في 2017-10-07 . تم الاسترجاع في 2014-05-20 .(تمت الطباعة في المملكة المتحدة.)
- ^ Bob Eager, Tavi Systems (2000-10-28). Implementation of extended attributes on the file system FAT . ([24] Archived 2006-06-13 at the Wayback Machine ).
- ^ IBM (2003). معلومات حول سمات توزيع الملفات الفريدة لنظام التشغيل 4690 ، مستند IBM R1001487، 2003-07-30. ( "معلومات IBM حول سمات توزيع الملفات الفريدة لنظام التشغيل 4690 - الولايات المتحدة". مؤرشف من الأصل في 2014-05-21 . تم الاسترجاع في 2014-05-20 .): "[...] يتم تخزين أنواع الملفات في جزء "البتات المحجوزة" من بنية دليل ملفات PC-DOS [...] فقط 4690 يحترم ويحافظ على هذه السمات. تتخذ أنظمة التشغيل المختلفة غير 4690 إجراءات مختلفة إذا تم تشغيل هذه البتات [...] عند النسخ من قرص مرن تم إنشاؤه على نظام 4690. [...] سينسخ PC-DOS وWindows 2000 Professional الملف دون خطأ ويعيدان البتات إلى الصفر. سيرفض نظام التشغيل OS/2 [...] 1.2 [...] نسخ الملف ما لم [...] يقوم أولاً بتشغيل CHKDSK /F على الملف. بعد [...] CHKDSK، سينسخ الملف ويعيدان البتات إلى الصفر. [...] عند [...] النسخ [...] مرة أخرى إلى نظام 4690، [...] سيتم نسخ الملف كملف محلي."
- ^ IBM. 4690 حفظ واستعادة سمات توزيع الملفات . مستند IBM R1000622، 2010-08-31 ( "IBM 4690 حفظ واستعادة سمات توزيع الملفات - الولايات المتحدة". مؤرشف من الأصل في 2014-05-21 . استرجاع 2014-05-20 .).
- ^ "قيود نظام الملفات FAT32". قاعدة معارف Microsoft . 2007-03-26. مؤرشف من الأصل في 2011-08-15 . تم الاسترجاع في 2011-08-21 .
لا يمكن أن تكون المجموعات 64 كيلوبايت أو أكبر
- ^ Duncan, Ray (1989). "أهداف التصميم وتنفيذ نظام الملفات الجديد عالي الأداء". Microsoft Systems Journal. مؤرشف من الأصل في 2011-07-16 . تم الاسترجاع في 2014-05-20 .[ملاحظة: يحتوي ملف النص هذا على عدد من أخطاء التعرف الضوئي على الحروف؛ على سبيل المثال، "Ray" هو الاسم الصحيح للمؤلف؛ وليس "Roy" كما يظهر في النص.]
- ^ تشن، رايموند (يوليو 2006). "Microsoft TechNet: تاريخ موجز وغير مكتمل لنظام FAT32". مجلة Microsoft TechNet. مؤرشف من الأصل في 2008-11-18 . تم الاسترجاع في 2014-05-20 .
- ^ من قبل Les Bell؛ Associates Pty Ltd (1996-09-02) [1990]. "نظام الملفات عالي الأداء OS/2". مستشار دعم الكمبيوتر الشخصي . مؤرشف من الأصل في 2014-03-01 . تم الاسترجاع في 2014-06-24 .
- ^ ab Bridges, Dan (فبراير 1996). "Inside the High Performance File System - Part 2/6: Introduction". Significant Bits, Brisbug PC User Group Inc. مؤرشف من الأصل في 2015-09-23 . تم الاسترجاع في 2014-06-24 .
- ^ Natuerlich! (1992-03-24). "Getting longer filenames out of GEMDOS". comp.sys.atari.st.tech. مؤرشف من الأصل في 2014-04-24 . تم الاسترجاع في 2014-05-05 .
- ^ Torvalds, Linus (1992-12-23). "Long filenames". comp.os.minix. مؤرشف من الأصل في 2014-04-23 . تم الاسترجاع في 2014-05-05 .
- ^ "mount(8): mount file system". صفحة دليل Linux . مؤرشف من الأصل في 2014-05-05 . تم الاسترجاع في 2014-05-20 .
روابط خارجية
- ECMA-107 حجم وهيكل الملفات لخراطيش الأقراص لتبادل المعلومات، مطابق لمعيار ISO/IEC 9293.
- مواصفات نظام الملفات FAT32 من مبادرة البرامج الثابتة القابلة للتوسيع من Microsoft، FAT: نظرة عامة على تنسيق القرص
- فهم أنظمة الملفات FAT32 (موضحة لمطوري البرامج الثابتة المضمنة)
- فهم FAT بما في ذلك الكثير من المعلومات حول LFNs
- شرح تفصيلي لقطاع التمهيد FAT: مقالة قاعدة معارف Microsoft رقم 140418
- وصف نظام الملفات FAT32: مقالة قاعدة معارف Microsoft رقم 154997
- FAT12/FAT16/FAT32 file system implementation for *nix: Includes libfat libraries and fusefat, a FUSE file system driver
- MS-DOS: Directory and Subdirectory Limitations: Microsoft Knowledge Base Article 39927
- Overview of FAT, HPFS, and NTFS File Systems: Microsoft Knowledge Base Article 100108
- Volume and file size limits of FAT file systems: Microsoft Technet, copy made by Internet Archive Wayback Machine
- Microsoft TechNet: A Brief and Incomplete History of FAT32 by Raymond Chen
- FAT32 Formatter Archived 2009-07-21 at the Wayback Machine: allows formatting volumes larger than 32 GB with FAT32 under Windows 2000, Windows XP and Windows Vista
- Fdisk does not recognize full size of hard disks larger than 64 GB: Microsoft Knowledge Base Article 263044, copy made by Internet Archive Wayback Machine. Explains inability to work with extremely large volumes under Windows 95/98.
- Microsoft Windows XP: FAT32 File System. Copy made by Internet Archive Wayback Machine of an article with summary of limits in FAT32 which is no longer available on Microsoft website.
- Visual Layout of a FAT16 drive
