تنسيق وحدة الكائن (إنتل)

تنسيق وحدة الكائن ( OMF ) هو تنسيق ملف كائن يستخدم بشكل أساسي للبرامج المصممة للعمل على معالجات Intel 80x86 الدقيقة .طُوِّرت هذه التقنية في الأصل من قِبَل شركة إنتل في الفترة ما بين عامي 1975 و1977 لجهاز ISIS-II ، وكانت تستهدف معالجات إنتل 8080/8085 ذات 8 بت . [ 1 ] [ 2 ] [ 3 ] [ 4 ] عُرف هذا الإصدار لاحقًا باسم OMF-80 .تم تكييفها مع معالج 8086 ذي 16 بت في عام 1978. [ 5 ]

تم إصدار الإصدار 4.0 من OMF لعائلة 8086 في عام 1981 تحت اسم Relocatable Object Module Format ، [ 6 ] [ 3 ] [ 4 ] وربما يكون معروفًا بشكل أفضل لمستخدمي DOS كملف .OBJ .تم طرح إصدارات للمعالجات 80286 ( OMF-286 ) [ 7 ] [ 8 ] والمعالجات 80386 ذات 32 بت ( OMF-386 ) [ 9 ] [ 10 ] [ 3 ] في عامي 1981 و1985 على التوالي.وقد تم توحيدها منذ ذلك الحين من قبل لجنة معايير واجهة الأدوات [ 11 ] ، كما تم توسيعها من قبل مايكروسوفت [ 12 ] وآي بي إم ( IBM-OMF ). وقامت إنتل أيضًا بتكييف التنسيق مع وحدة التحكم الدقيقة 8051 ( OMF-51 [ 13 ] و AOMF ).

تنسيق الملف

تتألف العديد من تنسيقات ملفات الكائنات من مجموعة من الجداول، مثل جدول النقل، والتي تُخزَّن إما في مواقع ثابتة في الملف، كما هو الحال في تنسيق a.out ، أو يُشار إليها بواسطة رأس الملف، كما هو الحال في تنسيق ELF . تُخزَّن "الأقسام" والرموز ومناطق البيانات، وما إلى ذلك، كمساحات متجاورة من البايتات داخل هذه الملفات.

ومع ذلك، فقد صُمم تنسيق وحدة الكائنات القابلة للنقل بحيث يتطلب الحد الأدنى من الذاكرة عند الربط، ويتكون من سلسلة من السجلات التي لها التنسيق التالي:

مقاسمحتويات
1 بايتنوع السجل، على سبيل المثال معلومات الانتقال
2 بايتطول البيانات ( N + 1)
N بايتالبيانات (تختلف باختلاف نوع السجل)
1 بايتمجموع التحقق أو 0

يوجد تنوع كبير في أنواع السجلات نتيجةً لتوحيد إصدارات OMF من عدة موردين، وإضافة ميزات مثل الترميز 32 بت والربط الديناميكي. فيما يلي أنواع السجلات المهمة:

  • تعليق - (88 ساعة) تعليق، والذي قد يحتوي أيضًا على معلومات تحكم.
  • تعريف خارجي - (8Ch) يُعرّف المراجع الخارجية
  • PUBDEF - (90h/91h) يحدد الرموز الخارجية في هذه الوحدة
  • SEGDEF - (98 ساعة/99 ساعة) يحدد المقاطع
  • GRPDEF - (9Ah) يحدد مجموعات من المقاطع، على سبيل المثال MS-DOSDGROUP
  • FIXUPP - (9Ch/9Dh) سجلات الإصلاح أو النقل
  • LEDATA - (A0h/A1h) يحتوي على نص قسم من التعليمات البرمجية أو البيانات
  • COMDEF - (B0h) بيانات مشتركة غير مهيأة
  • COMDAT - (C2h/C3h) بيانات مشتركة مهيأة
  • MODEND - (8Ah/8Bh) يشير إلى نهاية الوحدة

لا يوجد رأس يحتوي على إزاحات الملفات، مثل مؤشر إلى جدول الرموز، في الملف؛ يجب على الرابط تحليل ملف الكائن بالكامل لاستخراج جميع المعلومات.

في تنسيق OMF، لا تُخزَّن بيانات القسم بالضرورة كبايتات متجاورة في الملف، بل يمكن تمثيلها بسجلات متعددة. تنص مواصفات تنسيق الملف (الإصدار 1.1) على وجوب تطبيق ذلك على الأقسام التي يزيد حجمها عن 1  كيلوبايت. يجب تخزين السجلات التي تحتوي على معلومات إعادة التوطين (التصحيحات) مباشرةً بعد سجلات بيانات القسم الذي تنطبق عليه، وبالتالي يتم دمج بيانات القسم ومعلومات إعادة التوطين في الملف.

يُوفر تنسيق الملف سجلات خاصة (LIDATA) تسمح بضغط تسلسلات البيانات المتكررة في ملف كائن. كما يُتيح إمكانية تخزين اسم رمز نقطة دخول الملف التنفيذي اللاحق في ملف كائن واحد.

يمكن استخدام تنسيق الملف أيضًا كتنسيق ملف مكتبة .

يستخدم

يُعد تنسيق الملف أهم تنسيق لملفات الكائنات في نظام التشغيل DOS ونظام التشغيل Windows ذي 16 بت .وأنظمة التشغيل OS/2 ذات 16 بت و32 بت . [ 14 ] [ 15 ]

تستخدم قلة من سلاسل الأدوات الإصدار 32 بت من تنسيق OMF. على سبيل المثال، تسمح سلسلة أدوات Watcom C بإنشاء التعليمات البرمجية للأهداف التي تستخدم تخطيطات ذاكرة مجزأة 32 بت؛ ويمكن لـ Iron Spring PL/I إنشاء التعليمات البرمجية لتخطيطات ذاكرة مسطحة 32 بت لنظام التشغيل OS/2.

استخدم مُصرّف Embarcadero Delphi هذا التنسيق عند إنشاء ملفات Cobj ++. وكان هذا التنسيق الوحيد لملفات الكائنات الذي يمكن ربطه ببرنامج أو وحدة مكتوبة بلغة Object Pascal قبل الإصدار XE2 من Delphi، الذي قدم دعمًا لتنسيق COFF ، بالإضافة إلى دعم نظام التشغيل Windows 64 بت.

انظر أيضاً

مراجع

  1. تنسيقات ملفات الكائنات المطلقة MCS 80/85 (ملف PDF) (المواصفات الفنية). سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . 1977. رقم المنتج 9800183B. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 27-06-2017.(16 صفحة)
  2. تنسيقات وحدات الكائنات القابلة للنقل MCS 80/85 (ملف PDF) (المواصفات الفنية). سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . مارس 1981. رقم المنتج 121747-001. A33S/381/S00 IP. مؤرشف (ملف PDF) من الأصل بتاريخ 25 نوفمبر 2023. تم الاطلاع عليه بتاريخ 25 نوفمبر 2023 .(42 صفحة)
  3. 1 2 3 بورجيت، كينيث "كين" (10 نوفمبر 2017). "تطوير نظام تشغيل إنتل ISIS - مقابلة مع كين بورجيت" . مؤرشف من الأصل في 24 نوفمبر 2023. تم الاطلاع عليه في 25 نوفمبر 2023. حصل صديقي العزيز، بروس، على وظيفة تطوير تنسيق وحدة الكائنات (OMF) للمعالج 8080 ، والمعالج 8086 القادم . استمر هذا العمل لسنوات، حيث استخدمه نظام MS-DOS مع تعديلات طفيفة أو بدون أي تعديلات [...] لقد كان عملاً جيداً، وتم تحديثه في عام 1985 لدعم وضع العناوين المسطحة 32 بت للمعالج 80386 . قدّم لنا إطار عمل OMF خارطة طريق جيدة لتصميم الرابط، الذي يربط وحدات الكائنات معًا، والمحدد، الذي يعالج الكود القابل للنقل إلى صورة ذاكرة ثابتة، مع نقطة دخول محددة، لأن هذه هي الطريقة التي تعامل بها نظام ISIS مع وحدات التحميل. كما صُمم المحدد لتمكين ربط الوحدة المرتبطة بمجموعة من صور EPROM ، بحيث يمكن برمجتها بواسطة برنامج نسخ ذاكرة ROM .
  4. 1 2 نيكاسيك، ميخال (25-07-2020) [09-07-2020]. "كم عمر OMF؟" . متحف OS/2 . مؤرشف من الأصل في 25-11-2023 . تم الاسترجاع في 25-11-2023 .
  5. مواصفات المنتج الخارجية، تنسيقات وحدة الكائن 8086. شركة إنتل . 1978-12-19.
  6. "8086 تنسيقات وحدات الكائنات القابلة للنقل" (ملف PDF) . الإصدار 4.0. سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . نوفمبر 1981. رقم المنتج 121748-001. ark:/13960/t07w7pz4b. مؤرشف (ملف PDF) من الأصل بتاريخ 25 نوفمبر 2023. تم الاطلاع عليه بتاريخ 8 فبراير 2020 .(124 صفحة)
  7. دليل مستخدم مُنشئ نظام iAPX 286 (ملف PDF) . سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . سبتمبر 1981. رقم الطلب 121711-001. مؤرشف (ملف PDF) من الأصل بتاريخ 26-11-2023 . تم الاطلاع عليه بتاريخ 26-11-2023 .(90 صفحة)
  8. "تنسيق وحدة كائن iAPX 286". دليل كتابة أنظمة تشغيل iAPX 286 (ملف PDF) . شركة إنتل . 1983. الصفحات 11-10 - 11-11 . رقم الطلب 121960-001. مؤرشف (ملف PDF) من الأصل بتاريخ 26-11-2023 . تم الاطلاع عليه بتاريخ 26-11-2023 . (صفحتان من أصل 251 صفحة)
  9. مواصفات تنسيق وحدات الكائنات 386. شركة إنتل . 1991 [1990]. رقم الطلب 482991-002.
  10. ملفات قابلة للتحميل بسهولة بتنسيق وحدات كائن 386. شركة إنتل . 1991 [1990]. رقم الطلب 483164-001.
  11. "مواصفات تنسيق وحدة الكائنات القابلة للنقل (OMF) لمعايير واجهة الأدوات (TIS)" (ملف PDF) . الإصدار 1.1. لجنة TIS / يونكس الدولية . مايو 1995 [1993، 1992]. مؤرشف من الأصل (ملف PDF) بتاريخ 7 فبراير 2020. تم الاطلاع عليه بتاريخ 7 فبراير 2020 .(87 صفحة)
  12. "تنسيق ملف مايكروسوفت OBJ" . FileFormat.Info . مؤرشف من الأصل بتاريخ 25-11-2023 . تم الاطلاع عليه بتاريخ 26-11-2023 .
  13. مواصفات المنتج الخارجية لتنسيق وحدة الكائنات MCS-51 (ملف PDF) . الإصدار 5.0، المراجعة أ. شركة إنتل . 5 سبتمبر 1982. رقم المنتج 9800183B. رقم مركز التحكم بالوثائق 481984. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 25 نوفمبر 2023.(24 صفحة) (ملاحظة: هذه هي النسخة التي تم شحنها مع Intel's RL51 2.0 و PL/M-51 1.0. كانت هناك نسخة سابقة X207 بتاريخ 1982-04-12.)
  14. تنسيق وحدة الكائنات (OMF) وتنسيق وحدة التنفيذ الخطي (LX) لنظام التشغيل IBM OS/2 ذي 16/32 بت (ملف PDF) . الإصدار 8. بوكا راتون، فلوريدا، الولايات المتحدة الأمريكية: شركة IBM . 30 يونيو 1994 [1991، 1993]. مؤرشف (ملف PDF) من الأصل بتاريخ 26 نوفمبر 2023. تم الاطلاع عليه بتاريخ 26 نوفمبر 2023 .(خمس صفحات + 87 صفحة)
  15. تنسيق وحدة الكائنات (OMF) وتنسيق وحدة التنفيذ الخطي (LX) لنظام التشغيل IBM OS/2 ذي 16/32 بت . الإصدار/المراجعة 10. بوكا راتون، فلوريدا، الولايات المتحدة الأمريكية: شركة IBM . 9 أكتوبر 1996 [1991]. مؤرشف من الأصل في 26 نوفمبر 2023. تم الاسترجاع في 26 نوفمبر 2023 .(6+95 صفحة)

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

  • ليفين، جون ر. (2000) [أكتوبر 1999]. "الفصل 3: ملفات الكائنات" . الروابط والمحملات . سلسلة مورغان كوفمان في هندسة البرمجيات والبرمجة (  الطبعة الأولى). سان فرانسيسكو، كاليفورنيا، الولايات المتحدة الأمريكية: مورغان كوفمان . ISBN 1-55860-496-0. OCLC 42413382 . تم الاسترجاع في 12 يناير 2020 . {{cite book}}: CS1 maint: deprecated archiveal service ( link ) Code:تصحيحات: