كتلة التحكم في الملفات

كتلة التحكم بالملف ( FCB ) هي بنية في نظام الملفات تُحفظ فيها حالة الملف المفتوح . تُدار كتلة التحكم بالملف بواسطة نظام التشغيل، ولكنها موجودة في ذاكرة البرنامج الذي يستخدم الملف، وليس في ذاكرة نظام التشغيل. وهذا يسمح للعملية بفتح أي عدد من الملفات في وقت واحد، شريطة أن يتوفر لديها مساحة كافية في الذاكرة لكتلة تحكم بالملف لكل ملف.

يعود أصل وحدة التحكم في الملفات (FCB) إلى نظام CP/M ، وهي موجودة أيضًا في معظم إصدارات نظام DOS ، ولكن فقط كإجراء للتوافق مع الإصدارات السابقة في MS-DOS الإصدار 2.0 والإصدارات اللاحقة. يبلغ طول وحدة التحكم في الملفات الكاملة 36 بايتًا؛ في الإصدارات الأولى من CP/M، كان طولها 33 بايتًا. هذا الحجم الثابت، الذي لا يمكن زيادته دون الإخلال بتوافق التطبيقات، أدى في النهاية إلى زوال وحدة التحكم في الملفات كطريقة قياسية للوصول إلى الملفات.

تختلف معاني العديد من الحقول في وحدة التحكم في الوظائف (FCB) بين نظامي التشغيل CP/M وDOS، وكذلك تبعًا للعملية التي يتم تنفيذها. الحقول التالية لها معاني ثابتة: [ 1 ]

إزاحةحجم البايتمحتويات
0x001رقم محرك الأقراص — 0 للوضع الافتراضي، 1 لـ A:، 2 لـ B:، ...
0x018اسم الملف والامتداد — يشكلان معًا اسم ملف 8.3 .
0x093
0x0C20يعتمد على التنفيذ - يجب تهيئته إلى الصفر قبل فتح FCB.
0x201رقم السجل في القسم الحالي من الملف - يستخدم عند إجراء الوصول التسلسلي .
0x213رقم السجل الذي سيتم استخدامه عند إجراء الوصول العشوائي .

يحتوي الحقل الذي يبلغ طوله 20 بايت والذي يبدأ عند الإزاحة 0x0C على حقول قدمت (من بين أمور أخرى) معلومات إضافية حول الملف: [ 2 ]

إزاحةحجم البايتمحتويات
0x0E2طول سجل الملف بالبايت.
0x104إجمالي حجم الملف بالبايت.
0x142تاريخ آخر تعديل لمحتويات الملف.
0x162وقت آخر تعديل.

استُخدمت قيم إضافية في الإصدارات الأحدث من نظام التشغيل DOS إلى أن لم يعد بالإمكان استيعاب المعلومات الجديدة في هذه البايتات العشرين. وقد تم اقتطاع بعض بايتات "الإزاحة السالبة" السابقة من المساحات المحجوزة في صفحة الصفر لنظام CP/M وبادئة مقطع البرنامج لنظام DOS لتخزين خصائص الملفات. [ 1 ]

الاستخدام

في أنظمة CP/M و86-DOS و PC DOS 1.x/MS-DOS 1.xx، كانت وحدة التحكم في الملفات (FCB) هي الطريقة الوحيدة للوصول إلى الملفات. في نظام DOS، وفرت بعض الدوال الفرعية INT 21h واجهةً للتعامل مع الملفات باستخدام وحدة التحكم في الملفات. [ 1 ] [ 3 ] [ 4 ] عندما تم، مع نظام MS-DOS 2، الاستعداد لدعم عمليات أو مستخدمين متعددين، [ 3 ] [ 4 ] أو استخدام أنظمة ملفات أخرى [ 3 ] [ 4 ] غير FAT أو مشاركة الملفات [ 4 ] عبر الشبكات في المستقبل، اعتُبرت وحدات التحكم في الملفات صغيرة جدًا بحيث لا تستطيع التعامل مع البيانات الإضافية المطلوبة لمثل هذه الميزات [ 4 ] ، وبالتالي اعتُبرت غير كافية لمختلف مسارات التوسع المستقبلية. [ 3 ] كما أنها لم توفر حقلًا لتحديد الدلائل الفرعية. [ 3 ] واعتُبر كشف بيانات نظام الملفات لمساحة المستخدم أيضًا خطرًا أمنيًا. [ 4 ] وهكذا تم استبدال واجهات التحكم في الملفات (FCBs) بمقابض الملفات ، كما هو مستخدم في نظام يونكس ومشتقاته. [ 3 ] مقابض الملفات هي ببساطة أرقام صحيحة متتالية مرتبطة بملفات مفتوحة محددة.

إذا استخدم برنامجٌ واجهة برمجة تطبيقات مقابض الملفات الأحدث لفتح ملف، فسيتولى نظام التشغيل إدارة بنية البيانات الداخلية المرتبطة بهذا الملف في مساحة ذاكرة خاصة به. تكمن الميزة الكبرى في إمكانية زيادة حجم هذه البنى في الإصدارات اللاحقة من نظام التشغيل دون التأثير على توافقها مع البرامج التطبيقية؛ أما عيبها، فيتمثل في أنه نظرًا لبساطة إدارة الذاكرة في نظام DOS، يجب حجز مساحة كافية لهذه البنى، بقدر ما قد يستخدمه أكثر البرامج استهلاكًا للملفات، عند بدء التشغيل، ولا يمكن استخدامها لأي غرض آخر أثناء تشغيل الحاسوب. يتم حجز هذه الذاكرة باستخدام التوجيه FILES = في ملف CONFIG.SYS . لا تحدث هذه المشكلة مع وحدات التحكم في الملفات (FCBs) في نظامي DOS 1 وCP/M، لأن نظام التشغيل يخزن كل ما يحتاج معرفته عن الملف المفتوح داخل وحدة التحكم في الملفات، وبالتالي لا يحتاج إلى استخدام أي ذاكرة خاصة بكل ملف في مساحة ذاكرة نظام التشغيل. عند استخدام ملفات FCB في نظام MS-DOS 3 أو الإصدارات الأحدث، يعتمد تنسيق ملف FCB على ما إذا كان SHARE.EXE مُحمّلاً، وما إذا كان ملف FCB يشير إلى ملف محلي أو بعيد، وغالبًا ما يشير إلى مدخل SFT. ولهذا السبب، فإن عدد ملفات FCB التي يمكن إبقاؤها مفتوحة في وقت واحد في نظام DOS 3 أو الإصدارات الأحدث محدود أيضًا، وعادةً ما يكون 4 ملفات؛ ويمكن زيادة هذا العدد باستخدام التوجيه FCBS = في ملف CONFIG.SYS عند الضرورة. أما في نظام DR-DOS ، فإن كلاً من ملفات FILES وملفات FCBS تأتي من نفس مجموعة هياكل المقابض الداخلية المتاحة، ويتم تعيينها ديناميكيًا حسب الحاجة. [ 5 ]

كانت وحدات التحكم في الملفات (FCBs) مدعومة في جميع إصدارات MS-DOS وويندوز حتى ظهور نظام الملفات FAT32 . لا تدعم أنظمة ويندوز 95 وويندوز 98 وويندوز Me استخدام وحدات التحكم في الملفات على محركات أقراص FAT32 بسبب أرقام المجموعات ذات 32 بت، [ 4 ] باستثناء قراءة اسم وحدة التخزين. وقد تسبب ذلك في تعطل بعض تطبيقات DOS القديمة، بما في ذلك WordStar ، في هذه الإصدارات من ويندوز.

لا تعمل واجهة FCB بشكل صحيح على أنظمة التشغيل Windows NT و 2000 وغيرها، فبرنامج WordStar لا يعمل بشكل صحيح على هذه الأنظمة. بينما تُطبّق برامج محاكاة DOS، مثل DOSEMU و DOSBox، واجهة FCB بشكل صحيح، مما يجعلها وسيلة لتشغيل برامج DOS القديمة التي تتطلب FCBs على أنظمة التشغيل الحديثة.

منطقة نقل القرص

كانت منطقة نقل القرص (DTA) بنية بيانات مصاحبة تُستخدم مع وحدة التحكم في الملفات (FCB ). [ 2 ] يُطلق هذا الاسم على المخزن المؤقت الذي تُقرأ منه محتويات الملفات (السجلات) وتُكتب إليه. تفترض دوال الوصول إلى الملفات في نظام DOS التي تستخدم وحدة التحكم في الملفات (FCB) موقعًا ثابتًا لمنطقة نقل القرص (DTA)، يشير في البداية إلى جزء من وحدة معالجة الملفات (PSP) (انظر القسم التالي)؛ ويمكن تغيير هذا الموقع باستدعاء دالة من دوال DOS، حيث تستخدم عمليات الوصول اللاحقة إلى الملفات الموقع الجديد ضمنيًا.

مع إيقاف استخدام طريقة FCB، وفرت وظائف الوصول إلى الملفات الجديدة التي تستخدم مقابض الملفات أيضًا وسيلة لتحديد مخزن مؤقت للذاكرة لمحتويات الملف مع كل استدعاء للوظيفة، بحيث أصبح الحفاظ على المخازن المؤقتة المتزامنة والمستقلة (سواء لملفات مختلفة أو لنفس الملف) أكثر عملية.

بادئة مقطع البرنامج وتهيئة البرنامج

كان كل ملف تنفيذي لنظام DOS يتم تشغيله من سطر الأوامر ( COMMAND.COM ) مزودًا ببنية بيانات مُعبأة مسبقًا بطول 256 بايت تُسمى بادئة مقطع البرنامج (PSP). تتضمن الحقول ذات الصلة داخل هذه البنية ما يلي: [ 2 ]

إزاحةحجم البايتمحتويات
0x022الذاكرة المتاحة للبرنامج بوحدات حجمها 16 بايت.
0x2C2عنوان المقطع الذي يحتوي على متغيرات بيئة البرنامج.
0x5C16تم تجهيز وحدة التحكم في الوظائف (FCB) للوسيط الأول في سطر الأوامر (غير مفتوح).
0x6C20تم تجهيز وحدة التحكم في الوظائف (FCB) لوسيط سطر الأوامر الثاني (غير مفتوح).
0x801طول سطر الأوامر.
0x81127محتويات سطر الأوامر.

يمكن العثور على بنية البيانات هذه في بداية مقطع البيانات الذي يُحدده نظام التشغيل DOS عند بدء تشغيل البرنامج، وذلك في سجلات مقطعي DS وES. بالإضافة إلى توفير سطر أوامر البرنامج حرفيًا عند العنوان 0x81، حاول نظام التشغيل DOS أيضًا إنشاء وحدتي تحكم في الملفات (FCB) تُقابلان أول كلمتين في سطر الأوامر، وذلك لتوفير جهد المبرمج في الحالة الشائعة التي تكون فيها هاتان الكلمتان اسمي ملفين. ولأن وحدتي التحكم هاتين ظلتا غير مفتوحتين، فلن تنشأ أي مشكلة حتى لو لم تُشر كلمات سطر الأوامر إلى ملفات.

تم تعيين العنوان الأولي لـ DTA لتغطية المنطقة الموجودة في PSP (عند العنوان 0x80) حيث يتم تخزين وسيطات سطر الأوامر، بحيث يحتاج البرنامج إلى تحليل هذه المنطقة لوسيطات سطر الأوامر قبل استدعاء وظائف DOS التي تستخدم DTA (مثل قراءة سجل ملف)، ما لم يحرص البرنامج على تغيير عنوان DTA إلى منطقة ذاكرة أخرى (أو عدم استخدام وظائف DTA/FCB تمامًا، والتي سرعان ما أصبحت مهملة لصالح مقابض الملفات).

انظر أيضاً

مراجع

  1. 1 2 3 "FCB - Standard DOS File Control Block" .
  2. 1 2 3 رودريجيز-روسيلو، ميغيل (1992). 8088-8086/8087 Programacion Ensamblador En Entorno MSDOS (بالإسبانية). Ediciones Anaya الوسائط المتعددة. رقم ISBN 84-7614-128-9.
  3. 1 2 3 4 5 6 زبيكوفسكي، مارك ؛ ألين، بول ؛ بالمر، ستيف ؛ بورمان، روبن؛ بورمان، روب؛ بتلر، جون؛ كارول، تشاك؛ تشامبرلين، مارك؛ تشيل، ديفيد؛ كولي، مايك؛ كورتني، مايك؛ دريفوس، مايك؛ دنكان، راشيل؛ إيكهارت، كورت؛ إيفانز، إريك؛ فارمر، ريك؛ غيتس، بيل ؛ جيري، مايكل؛ غريفين، بوب؛ هوغارث، دوغ؛ جونسون، جيمس دبليو؛ كرماني، كامل؛ كينغ، أدريان؛ كوخ، ريد؛ لاندوفسكي، جيمس؛ لارسون، كريس؛ لينون، توماس؛ ليبكي، دان؛ ماكدونالد، مارك ؛ ماكيني، بروس؛ مارتن، باسكال؛ ماذرز، إستيل؛ ماثيوز، بوب؛ ميلين، ديفيد؛ ميرجنتايم، تشارلز؛ نيفين، راندي؛ نيويل، دان؛ نيويل، تاني؛ نوريس، ديفيد؛ أوليري، مايك؛ أورير، بوب ؛ أولسون، مايك؛ أوسترمان، لاري؛ أوستلينغ، ريدج؛ باي، سونيل؛ باترسون، تيم ؛ بيريز، غاري؛ بيترز، كريس؛ بيتزولد، تشارلز ؛ بولوك، جون؛ رينولدز، آرون ؛ روبين، داريل؛ رايان، رالف؛ شولمايسترز، كارل؛ شاه، راجين؛ شو، باري؛ شورت، أنتوني؛ سليفكا، بن؛ سميرل، جون؛ ستيلمايكر، بيتي؛ ​​ستودارد، جون؛ تيلمان، دينيس؛ ويتن، غريغ؛ يونت، ناتالي؛ زيك، ستيف (1988). "المستشارون التقنيون". موسوعة MS-DOS: الإصدارات من 1.0 إلى 3.2 . بقلم: دنكان، راي؛ بوستويك، ستيف؛ بورغوين، كيث؛ بايرز، روبرت أ.؛ هوغان، ثوم؛ كايل، جيم؛ ليتوين، غوردون ؛ بيتزولد، تشارلز ؛ رابينوفيتز، تشيب؛ توملين، جيم؛ ويلتون، ريتشارد؛ وولفرتون، فان؛ وونغ، ويليام؛ وودكوك، جوان ( طبعة منقحة بالكامل). ريدموند، واشنطن، الولايات المتحدة الأمريكية: مطبعة مايكروسوفت . ISBN  1-55615-049-0LCCN 87-21452 . OCLC 16581341 .​  (xix+1570 صفحة؛ 26  سم) (ملاحظة: تم نشر هذه الطبعة في عام 1988 بعد إعادة صياغة واسعة النطاق للطبعة الأولى المسحوبة عام 1986 من قبل فريق مختلف من المؤلفين.)
  4. 1 2 3 4 5 6 7 تشابل، جيف (يناير 1994). شولمان، أندرو؛ بيدرسن، أموريت (محرران). أساسيات نظام التشغيل DOS . سلسلة أندرو شولمان للبرمجة (الطبعة الأولى، الإصدار الأول). شركة أديسون ويسلي للنشر . ISBN  978-0-201-60835-9.(xxvi+738+iv صفحات، قرص مرن 3.5 بوصة)) تصحيحات:
  5. ^ بول ماتياس ر. (30/07/1997). NWDOS-TIPs نصائح وحيل لتشغيل Novell DOS 7، مع النقر على تفاصيل التفاصيل والأخطاء والحلول البديلة . الإصدار 157 (باللغة الألمانية) (3 ed.). مؤرشف من الأصل بتاريخ 23-08-2017 . تم الاسترجاع 2012/01/11 . {{cite book}}|work=تم تجاهل هذا الملف ( مساعدة ) (ملاحظة : يُعدّ ملف NWDOSTIP.TXT مرجعًا شاملًا حول نظامي التشغيل Novell DOS 7 و OpenDOS 7.01 ، ويتضمن وصفًا للعديد من الميزات والتفاصيل الداخلية غير الموثقة. وهو جزء من مجموعة MPDOSTIP.ZIP الأكبر حجمًا التي احتفظ بها المؤلف حتى عام 2001، والتي تم توزيعها على العديد من المواقع في ذلك الوقت. يشير الرابط المرفق إلى نسخة أقدم من ملف NWDOSTIP.TXT تم تحويلها إلى صيغة HTML.)

للمزيد من القراءة