ملف الكائن

ملف الكائن هو ملف يحتوي على رمز الآلة أو رمز البايت ، بالإضافة إلى بيانات أخرى وبيانات وصفية ، يتم إنشاؤه بواسطة مُترجم أو مُجمِّع من التعليمات البرمجية المصدرية أثناء عملية الترجمة أو التجميع. يُعرف رمز الآلة المُنشأ باسم رمز الكائن .

عادةً ما يكون رمز الكائن قابلاً للنقل ، وليس قابلاً للتنفيذ مباشرةً . توجد صيغ مختلفة لملفات الكائنات، ويمكن تغليف نفس رمز الآلة في صيغ ملفات كائنات مختلفة. قد يعمل ملف الكائن أيضًا كمكتبة مشتركة .

يمكن استخدام البيانات الوصفية التي قد تتضمنها ملفات الكائنات لأغراض الربط أو تصحيح الأخطاء؛ فهي تشمل معلومات لحل المراجع الرمزية المتبادلة بين الوحدات المختلفة، ومعلومات إعادة التموضع ، ومعلومات فكّ التتبع ، والتعليقات ، ورموز البرنامج ، ومعلومات تصحيح الأخطاء أو تحليل الأداء . وقد تتضمن بيانات وصفية أخرى تاريخ ووقت التجميع، واسم المُجمِّع وإصداره، ومعلومات تعريفية أخرى.

يعود مصطلح "برنامج الكائن" إلى خمسينيات القرن العشرين على الأقل:

مصطلح في البرمجة الآلية يشير إلى برنامج لغة الآلة الذي تنتجه الآلة عن طريق ترجمة برنامج مصدر كتبه المبرمج بلغة مشابهة للترميز الجبري. [ 1 ]

يتم استخدام الرابط لدمج رمز الكائن في برنامج تنفيذي واحد أو مكتبة واحدة، مع استدعاء مكتبات النظام المترجمة مسبقًا حسب الحاجة.

تنسيقات ملفات الكائنات

توجد العديد من تنسيقات ملفات الكائنات المختلفة؛ في الأصل كان لكل نوع من أنواع أجهزة الكمبيوتر والبرامج الداعمة تنسيقه الفريد الخاص به، مثل تنسيق ملف الكائنات OS/360 ، ولكن مع ظهور نظام التشغيل Unix وأنظمة التشغيل المحمولة الأخرى ، تم تعريف بعض التنسيقات، مثل COFF و ELF و Mach-O ، واستخدامها على أنواع مختلفة من الأنظمة.

تُفرّق بعض الأنظمة بين الصيغ القابلة للتنفيذ مباشرةً والصيغ التي تتطلب معالجةً بواسطة الرابط . على سبيل المثال، يُطلق نظام التشغيل OS/360 والإصدارات اللاحقة على الصيغة الأولى اسم " وحدة تحميل" وعلى الثانية اسم " وحدة كائن" . في هذه الحالة، تكون للملفات صيغ مختلفة تمامًا. [ 2 ] كما يستخدم نظاما DOS و Windows صيغ ملفات مختلفة للملفات التنفيذية وملفات الكائنات، مثل Portable Executable للملفات التنفيذية وCOFF لملفات الكائنات في أنظمة Windows ذات 32 بت و64 بت.

استخدمت أنظمة يونكس والأنظمة الشبيهة بها نفس التنسيق للملفات التنفيذية وملفات الكائنات، بدءًا من تنسيق a.out الأصلي . قد تحتوي بعض التنسيقات على رمز الآلة لمعالجات مختلفة، حيث يختار نظام التشغيل المعالج المناسب عند تحميل البرنامج. [ 3 ] [ 4 ]

يُعدّ تصميم و/أو اختيار تنسيق ملف الكائن جزءًا أساسيًا من تصميم النظام ككل. فهو يؤثر على أداء الرابط، وبالتالي على سرعة إنجاز المبرمجين لعملية تطوير البرنامج. وإذا استُخدم هذا التنسيق للملفات التنفيذية، فإن التصميم يؤثر أيضًا على الوقت الذي تستغرقه البرامج لبدء التشغيل ، وبالتالي على استجابة النظام للمستخدمين.

توفر مكتبة واصفات الملفات الثنائية (مكتبة BFD) التابعة لمشروع GNU واجهة برمجة تطبيقات مشتركة لمعالجة ملفات الكائنات بتنسيقات متنوعة.

الملفات المطلقة

تدعم العديد من الحواسيب القديمة، أو الحواسيب الصغيرة ، تنسيق الكائنات المطلقة فقط. لا يمكن نقل البرامج؛ بل يجب تجميعها أو ترجمتها لتنفيذها في عناوين محددة مسبقًا. لا يحتوي الملف على أي معلومات نقل أو ربط. يمكن تحميل هذه الملفات في ذاكرة القراءة/الكتابة، أو تخزينها في ذاكرة القراءة فقط . على سبيل المثال، يحتوي جهاز مراقبة موتورولا 6800 MIKBUG على روتين لقراءة ملف كائن مطلق ( تنسيق SREC ) من شريط ورقي . [ 5 ] تُعد ملفات DOS COM مثالًا أحدث على ملفات الكائنات المطلقة. [ 6 ]

التجزئة

تُبنى معظم تنسيقات ملفات الكائنات على شكل أقسام بيانات منفصلة، ​​يحتوي كل قسم منها على نوع معين من البيانات. تُعرف هذه الأقسام باسم "القطاعات" نسبةً إلى مصطلح " قطاع الذاكرة "، الذي كان سابقًا شكلاً شائعًا لإدارة الذاكرة . عند تحميل برنامج في الذاكرة بواسطة مُحمِّل ، يُخصِّص المُحمِّل مناطق ذاكرة مختلفة للبرنامج. بعض هذه المناطق تُطابق أقسام ملف الكائن، ولذلك تُعرف عادةً بنفس الأسماء. أما مناطق أخرى، مثل المكدس، فتوجد فقط أثناء التشغيل. في بعض الحالات، يقوم المُحمِّل (أو الرابط) بإعادة التموضع لتحديد عناوين الذاكرة الفعلية. مع ذلك، بالنسبة للعديد من البرامج أو البنى، لا تكون إعادة التموضع ضرورية، نظرًا لأن وحدة إدارة الذاكرة أو التعليمات البرمجية المستقلة عن الموقع تتولى هذه المهمة. في بعض الأنظمة، يمكن نسخ قطاعات ملف الكائن (تقسيمها إلى صفحات) إلى الذاكرة وتنفيذها، دون الحاجة إلى معالجة إضافية. في هذه الأنظمة، يمكن القيام بذلك بشكل كسول ، أي فقط عندما تتم الإشارة إلى الأجزاء أثناء التنفيذ، على سبيل المثال من خلال ملف مرتبط بالذاكرة مدعوم بملف الكائن.

أنواع البيانات التي تدعمها تنسيقات ملفات الكائنات النموذجية: [ 7 ]

قد يقوم الرابط بدمج المقاطع في ملفات الكائنات المختلفة وفقًا لقواعد محددة عند تعريف هذه المقاطع. توجد اصطلاحات خاصة بالمقاطع المشتركة بين ملفات الكائنات؛ على سبيل المثال، في نظام DOS، توجد نماذج ذاكرة مختلفة تحدد أسماء المقاطع الخاصة وما إذا كان يمكن دمجها أم لا. [ 8 ]

قد يكون تنسيق بيانات تصحيح الأخطاء لمعلومات تصحيح الأخطاء جزءًا لا يتجزأ من تنسيق ملف الكائن، كما هو الحال في COFF ، أو تنسيقًا شبه مستقل يمكن استخدامه مع العديد من تنسيقات الكائنات، مثل stabs أو DWARF .

انظر أيضاً

مراجع

  1. وروبل، مارشال هـ. (1959). مدخل إلى برمجة الحواسيب الرقمية . نيويورك، الولايات المتحدة الأمريكية: ماكجرو هيل . ص  222. تاريخ الاسترجاع: 31 يوليو 2020 .
  2. محرر ومحمل ربط نظام التشغيل من IBM (ملف PDF) . شركة IBM . 1973. ص 16. تم الاطلاع عليه بتاريخ 2012-08-06 . 
  3. "الملفات الثنائية العامة وملفات PowerPC الثنائية 32 بت/64 بت" . مرجع تنسيق ملفات Mach-O لنظام التشغيل OS X ABI . شركة Apple Inc. 2009-02-04 [2003]. مؤرشف من الأصل في 2014-09-04.
  4. "FatELF: Universal Binaries for Linux" . تم الاطلاع عليه بتاريخ 2020-08-02 .
  5. وايلز، مايك؛ فيليكس، أندريه. ذاكرة القراءة فقط (ROM) الخاصة بـ MCM6830L7 MIKBUG/MINIBUG (ملف PDF) . شركة موتورولا لأشباه الموصلات . تم الاطلاع بتاريخ 31 يوليو 2020 .
  6. ^ جودسي، ديبالي أ. جودسي، أتول ب. (2008). المعالجات الدقيقة (1 ed.). بيون، الهند: المنشورات الفنية. ص 3 – 15. رقم ISBN   978-81-8431-355-0.
  7. ماورر، فولفغانغ (2010). "الملحق هـ. تنسيق ELF الثنائي" . بنية نواة لينكس الاحترافية . جون وايلي وأولاده . ص. الملحق هـ. ISBN  978-0-470-34343-2تم الاطلاع عليه بتاريخ 2020-08-01 .
  8. إيرفين، كيب ر. (1993). لغة التجميع لأجهزة IBM-PC ( الطبعة الثانية). نيويورك، الولايات المتحدة الأمريكية: ماكميلان. ISBN  0-02-359651-1.

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