قابل للتنفيذ

تفريغ سداسي عشري لمحمل الوضع الحقيقي القابل للتنفيذ . يتكون العمود الأول من عناوين البايت الأول في العمود الثاني، والذي يتألف من بايتات البيانات في صيغة سداسية عشرية ( البايت الأقل أهمية أولاً)، ويتألف العمود الأخير من نموذج ASCII المقابل . [1]

في علوم الكمبيوتر ، يتسبب الكود القابل للتنفيذ ، أو الملف القابل للتنفيذ ، أو البرنامج القابل للتنفيذ ، والذي يُشار إليه أحيانًا ببساطة باسم الملف القابل للتنفيذ أو الثنائي ، في قيام الكمبيوتر "بتنفيذ المهام المشار إليها وفقًا لتعليمات مشفرة "، [2] على عكس ملف البيانات الذي يجب تفسيره ( تحليله ) بواسطة مترجم ليكون وظيفيًا. [3]

يعتمد التفسير الدقيق على الاستخدام. يُفهم مصطلح "التعليمات" تقليديًا على أنه تعليمات التعليمات البرمجية الآلية لوحدة المعالجة المركزية المادية . [4] في بعض السياقات، قد يُعتبر الملف الذي يحتوي على تعليمات البرمجة النصية (مثل البايت كود ) قابلاً للتنفيذ أيضًا.

إنشاء ملفات قابلة للتنفيذ

يمكن كتابة الملفات القابلة للتنفيذ يدويًا بلغة الآلة، على الرغم من أنه من الأسهل بكثير تطوير البرامج ككود مصدر بلغة عالية المستوى يمكن للبشر فهمها بسهولة. في بعض الحالات، قد يتم تحديد الكود المصدر بلغة التجميع بدلاً من ذلك، والتي تظل قابلة للقراءة من قبل البشر مع ارتباطها الوثيق بإرشادات الكود الآلي.

يتم تجميع لغة البرمجة عالية المستوى إما في ملف كود آلي قابل للتنفيذ أو ملف كود آلي غير قابل للتنفيذ - ملف كائن من نوع ما؛ تسمى العملية المكافئة في كود مصدر لغة التجميع التجميع . يتم ربط العديد من ملفات الكائنات لإنشاء الملف القابل للتنفيذ. عادةً ما يتم تخزين ملفات الكائنات - قابلة للتنفيذ أم لا - بتنسيق حاوية ، مثل تنسيق قابل للتنفيذ والربط (ELF) أو قابل للتنفيذ محمول (PE) خاص بنظام التشغيل . [5] وهذا يعطي هيكلًا للكود الآلي الناتج، على سبيل المثال تقسيمه إلى أقسام مثل .text (كود قابل للتنفيذ)، و .data (متغيرات عالمية وثابتة مبدئية)، و .rodata (بيانات للقراءة فقط، مثل الثوابت والسلاسل).

تتضمن الملفات القابلة للتنفيذ عادةً أيضًا نظام وقت التشغيل ، والذي ينفذ ميزات لغة وقت التشغيل (مثل جدولة المهام ، ومعالجة الاستثناءات ، واستدعاء المنشئين والمدمرين الثابتين، وما إلى ذلك) والتفاعلات مع نظام التشغيل، ولا سيما تمرير الوسائط والبيئة وإرجاع حالة الخروج ، جنبًا إلى جنب مع ميزات بدء التشغيل والإيقاف الأخرى مثل تحرير الموارد مثل مقابض الملفات . بالنسبة إلى C، يتم ذلك عن طريق الارتباط في كائن crt0 ، والذي يحتوي على نقطة الدخول الفعلية ويقوم بالإعداد والإيقاف عن طريق استدعاء مكتبة وقت التشغيل . [6]

تحتوي الملفات القابلة للتنفيذ عادةً على كود آلي إضافي كبير يتجاوز ذلك الذي تم إنشاؤه مباشرةً من الكود المصدري المحدد. في بعض الحالات، من المستحسن حذف هذا، على سبيل المثال لتطوير الأنظمة المضمنة، أو ببساطة لفهم كيفية عمل التجميع والربط والتحميل. في C، يمكن القيام بذلك عن طريق حذف وقت التشغيل المعتاد، وتحديد نص رابط صراحةً بدلاً من ذلك، والذي يولد نقطة الدخول ويتعامل مع بدء التشغيل وإيقاف التشغيل، مثل استدعاء mainالبدء وإعادة حالة الخروج إلى النواة في النهاية. [7]

تنفيذ

لكي يتم تنفيذه بواسطة النظام (مثل نظام التشغيل أو البرامج الثابتة [ بحاجة لمصدر ] أو أداة تحميل التشغيل )، يجب أن يتوافق الملف القابل للتنفيذ مع واجهة التطبيق الثنائية للنظام (ABI). في الواجهات البسيطة، يتم تنفيذ الملف عن طريق تحميله في الذاكرة والانتقال إلى بداية مساحة العنوان والتنفيذ من هناك. [8] في الواجهات الأكثر تعقيدًا، تحتوي الملفات القابلة للتنفيذ على بيانات تعريفية إضافية تحدد نقطة دخول منفصلة . على سبيل المثال، في ELF، يتم تعريف نقطة الدخول في حقل الرأس e_entry، والذي يحدد عنوان الذاكرة (الافتراضية) لبدء التنفيذ. [9] في مجموعة GNU Compiler Collection ، يتم تعيين هذا الحقل بواسطة الرابط بناءً على _startالرمز. [10]

انظر أيضا

مراجع

  1. ^ سيلوفي ، بول (2002). كتاب الطبخ FreeBSD المدمج. إلسفير . ص 108، 187-188. رقم ISBN 1-5899-5004-6. تم الاسترجاع بتاريخ 2022-03-06 .
  2. ^ "قابل للتنفيذ". قاموس ميريام وبستر الإلكتروني . ميريام وبستر . تم الاسترجاع في 2008-07-19 .
  3. ^ مولر، جون بول (2007). إدارة Windows في سطر الأوامر لأنظمة التشغيل Windows Vista وWindows 2003 وWindows XP وWindows 2000. جون وايلي وأولاده . ص 24. رقم ISBN 978-0-470-04616-6. تم الاسترجاع بتاريخ 2023-03-06 .
  4. ^ "تعليمات الآلة". GeeksforGeeks . 2015-11-03 . تم الاسترجاع في 2019-09-18 .
  5. ^ "الفصل 4: ملفات الكائنات". refspecs.linuxbase.org . تم الاسترجاع في 2019-09-18 .
  6. ^ فيشر، تيم. "قائمة ملحقات الملفات القابلة للتنفيذ". lifewire.com . تم الاسترجاع في 2019-09-18 .
  7. ^ McKellar, Jessica (2010-03-16). "مرحبًا من عالم خالٍ من libc! (الجزء 1)".
  8. ^ سميث، جيمس إي .؛ نير، رافي (16 مايو 2005). "هندسة الآلات الافتراضية". مجلة الكمبيوتر . 38 (5): 33-34. doi :10.1109/MC.2005.173.
  9. ^ Rusling, David A. (1999). "الفصل 4 – العمليات". نواة لينكس . القسم 4.8.1 – ELF . تم الاسترجاع في 2023-03-06 .
  10. ^ Page, Daniel (2009). مقدمة عملية لهندسة الحاسوب. Springer Science+Business Media . ص 415-416. ISBN 978-1-84882-255-9. تم الاسترجاع بتاريخ 2023-03-06 .
  • تنسيق ملف EXE في ما هو
Retrieved from "https://en.wikipedia.org/w/index.php?title=Executable&oldid=1251149916"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate