ملف الكائن
ملف الكائن هو ملف يحتوي على رمز الآلة أو رمز البايت ، بالإضافة إلى بيانات أخرى وبيانات وصفية ، يتم إنشاؤه بواسطة مُترجم أو مُجمِّع من التعليمات البرمجية المصدرية أثناء عملية الترجمة أو التجميع. يُعرف رمز الآلة المُنشأ باسم رمز الكائن .
عادةً ما يكون رمز الكائن قابلاً للنقل ، وليس قابلاً للتنفيذ مباشرةً . توجد صيغ مختلفة لملفات الكائنات، ويمكن تغليف نفس رمز الآلة في صيغ ملفات كائنات مختلفة. قد يعمل ملف الكائن أيضًا كمكتبة مشتركة .
يمكن استخدام البيانات الوصفية التي قد تتضمنها ملفات الكائنات لأغراض الربط أو تصحيح الأخطاء؛ فهي تشمل معلومات لحل المراجع الرمزية المتبادلة بين الوحدات المختلفة، ومعلومات إعادة التموضع ، ومعلومات فكّ التتبع ، والتعليقات ، ورموز البرنامج ، ومعلومات تصحيح الأخطاء أو تحليل الأداء . وقد تتضمن بيانات وصفية أخرى تاريخ ووقت التجميع، واسم المُجمِّع وإصداره، ومعلومات تعريفية أخرى.
يعود مصطلح "برنامج الكائن" إلى خمسينيات القرن العشرين على الأقل:
مصطلح في البرمجة الآلية يشير إلى برنامج لغة الآلة الذي تنتجه الآلة عن طريق ترجمة برنامج مصدر كتبه المبرمج بلغة مشابهة للترميز الجبري. [ 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 ]
- رأس الصفحة (معلومات وصفية ومعلومات تحكم)
- مقطع برمجي ("مقطع نصي، كود قابل للتنفيذ")
- مقطع البيانات ( المتغيرات الثابتة المُهيأة )
- مقطع بيانات للقراءة فقط ( rodata ، ثوابت ثابتة مهيأة )
- مقطع BSS (بيانات ثابتة غير مهيأة، سواء كانت متغيرات أو ثوابت)
- تعريفات ومراجع خارجية للربط
- معلومات عن الانتقال
- معلومات الربط الديناميكي
- معلومات تصحيح الأخطاء
قد يقوم الرابط بدمج المقاطع في ملفات الكائنات المختلفة وفقًا لقواعد محددة عند تعريف هذه المقاطع. توجد اصطلاحات خاصة بالمقاطع المشتركة بين ملفات الكائنات؛ على سبيل المثال، في نظام DOS، توجد نماذج ذاكرة مختلفة تحدد أسماء المقاطع الخاصة وما إذا كان يمكن دمجها أم لا. [ 8 ]
قد يكون تنسيق بيانات تصحيح الأخطاء لمعلومات تصحيح الأخطاء جزءًا لا يتجزأ من تنسيق ملف الكائن، كما هو الحال في COFF ، أو تنسيقًا شبه مستقل يمكن استخدامه مع العديد من تنسيقات الكائنات، مثل stabs أو DWARF .
انظر أيضاً
- تنسيق ملف كائن Intel السداسي العشري (عادةً ما يكون امتداد الملف .HEX، ولكن في بعض الأحيان يكون أيضًا .OBJ)
- تنسيق وحدة الكائن (ICL) (OMF لـ ICL VME)
- تنسيق وحدة الكائن (إنتل) (OMF لمعالجات إنتل 8080/8085، وOBJ لمعالجات إنتل 8086)
- ملف تنفيذي
- وحدة الترجمة (البرمجة)
- رأس مُجمَّع مسبقًا
- الوحدات (C++)
مراجع
- ↑ وروبل، مارشال هـ. (1959). مدخل إلى برمجة الحواسيب الرقمية . نيويورك، الولايات المتحدة الأمريكية: ماكجرو هيل . ص 222. تاريخ الاسترجاع: 31 يوليو 2020 .
- ↑ محرر ومحمل ربط نظام التشغيل من IBM (ملف PDF) . شركة IBM . 1973. ص 16. تم الاطلاع عليه بتاريخ 2012-08-06 .
- ↑ "الملفات الثنائية العامة وملفات PowerPC الثنائية 32 بت/64 بت" . مرجع تنسيق ملفات Mach-O لنظام التشغيل OS X ABI . شركة Apple Inc. 2009-02-04 [2003]. مؤرشف من الأصل في 2014-09-04.
- ↑ "FatELF: Universal Binaries for Linux" . تم الاطلاع عليه بتاريخ 2020-08-02 .
- ↑ وايلز، مايك؛ فيليكس، أندريه. ذاكرة القراءة فقط (ROM) الخاصة بـ MCM6830L7 MIKBUG/MINIBUG (ملف PDF) . شركة موتورولا لأشباه الموصلات . تم الاطلاع بتاريخ 31 يوليو 2020 .
- ^ جودسي، ديبالي أ. جودسي، أتول ب. (2008). المعالجات الدقيقة (1 ed.). بيون، الهند: المنشورات الفنية. ص 3 – 15. رقم ISBN 978-81-8431-355-0.
- ↑ ماورر، فولفغانغ (2010). "الملحق هـ. تنسيق ELF الثنائي" . بنية نواة لينكس الاحترافية . جون وايلي وأولاده . ص. الملحق هـ. ISBN 978-0-470-34343-2تم الاطلاع عليه بتاريخ 2020-08-01 .
- ↑ إيرفين، كيب ر. (1993). لغة التجميع لأجهزة IBM-PC ( الطبعة الثانية). نيويورك، الولايات المتحدة الأمريكية: ماكميلان. ISBN 0-02-359651-1.
للمزيد من القراءة
- ليفين، جون ر. (2000) [أكتوبر 1999]. "الفصل 3: ملفات الكائنات" . الروابط والمحملات . سلسلة مورغان كوفمان في هندسة البرمجيات والبرمجة ( الطبعة الأولى). سان فرانسيسكو، كاليفورنيا، الولايات المتحدة الأمريكية: مورغان كوفمان . ص 256. ISBN 1-55860-496-0. OCLC 42413382 . تم الاسترجاع في 12 يناير 2020 .
{{cite book}}: CS1 maint: deprecated archiveal service ( link ) Code:تصحيحات: - تنسيق ملف OBJ من مايكروسوفت . مايكروسوفت ، خدمات دعم المنتجات. ملاحظة التطبيق SS0288 . تم الاطلاع عليها بتاريخ 21 أغسطس 2017 .
{{cite book}}: CS1 maint: deprecated archiveal service ( link ) - إليوت، جون سي. (2002). "تنسيق ملف مايكروسوفت REL" . seasip.info . مؤرشف من الأصل بتاريخ 25-11-2023 . تم الاطلاع عليه بتاريخ 25-11-2023 .(ملاحظة: وصف لتنسيق ملف Microsoft REL للكائنات القابلة للنقل، والذي تستخدمه أيضًا شركة Digital Research.)
- إليوت، جون سي. (2012-06-05) [2000-01-02]. "تنسيق ملف PRL" . seasip.info . مؤرشف من الأصل بتاريخ 2020-01-26 . تم الاطلاع عليه بتاريخ 2020-01-26 .
- فريزر، كريستوفر "كريس" دبليو .؛ هانسون، ديفيد آر. (أبريل-مايو 1982) [9 سبتمبر 1981، 2 نوفمبر 1981]. "رابط مستقل عن الآلة" (ملف PDF) . البرمجيات: الممارسة والخبرة . 12 (4). جامعة أريزونا، توسون، أريزونا، الولايات المتحدة الأمريكية: جون وايلي وأولاده المحدودة : 351-366 . doi : 10.1002/spe.4380120407 . ISSN 0038-0644 . مؤرشف (ملف PDF) من الأصل بتاريخ 28 نوفمبر 2023. تم الاسترجاع بتاريخ 28 نوفمبر 2023 . (16 صفحة)
- مونتويل، جان؛ ويلرز، إيان (25-28 سبتمبر 1979) [أكتوبر 1978]. كُتبت في سيرن، جنيف، سويسرا. البرمجيات المتقاطعة باستخدام تنسيق وحدة الكائنات العالمية، CUFOM . يورو IFIP، لندن، المملكة المتحدة. CERN-DD/78/20 . تاريخ الاسترجاع: 28 نوفمبر 2023 .(صفحة واحدة + 23 صفحة)
- تنسيق المعالج الدقيق العالمي لوحدات الكائنات، MUFOM (مسودة وثيقة)، مجموعة عمل IEEE ، P695lD2
- مونتويل، جان؛ ويلرز، إيان (سبتمبر 1982). "رسالة إلى المحرر" . البرمجيات: الممارسة والتجربة . 12 (9). سيرن، جنيف، سويسرا: جون وايلي وأولاده المحدودة : 883-884 [884]. doi : 10.1002/spe.4380120909 . ISSN 0038-0644 . (صفحة واحدة) (ملاحظة: يصف تاريخ وعلاقة معيار IEEE 695 مع CUFOM و MUFOM.)
- IEEE 695-1990: معيار IEEE للتنسيق العالمي لوحدات الكائنات في المعالجات الدقيقة . IEEE . 1990-02-05. doi : 10.1109/IEEESTD.1990.101062 . ISBN 978-0-7381-3028-6.(ملاحظة: يحل محل IEEE 695-1985 (985-09-09)).
- تنسيقات الملفات القابلة للتنفيذ
- بناء المترجم
- مكتبات الحاسوب
- تنفيذ لغة البرمجة
