ملف تنفيذي


في مجال الحوسبة ، يُعدّ الملف التنفيذي موردًا يستخدمه الحاسوب للتحكم في سلوكه. وكما هو الحال مع جميع المعلومات في الحوسبة، فهو بيانات ، ولكنه يختلف عن البيانات التي لا تتضمن تدفقًا للتحكم . [ 2 ] تصف مصطلحات مثل "الرمز التنفيذي" و " الملف التنفيذي" و "البرنامج التنفيذي" و "الصورة التنفيذية" الأشكال التي تُمثّل بها المعلومات وتُخزّن. الملف التنفيذي الأصلي هو رمز الآلة ، ويمكن تنفيذه مباشرةً على مستوى تعليمات وحدة المعالجة المركزية . [ 3 ] [ 4 ] كما أن البرنامج النصي قابل للتنفيذ، وإن كان ذلك بشكل غير مباشر عبر مترجم . يمكن تفسير أو تحويل الرمز التنفيذي الوسيط (مثل رمز البايت ) إلى رمز أصلي أثناء التشغيل عبر الترجمة الفورية .
ملف تنفيذي أصلي
على الرغم من إمكانية كتابة برنامج تنفيذي أصلي مباشرةً بلغة الآلة من الناحية التقنية، إلا أن هذا الأسلوب غير شائع. فمن الأنسب بكثير تطوير البرامج كشفرة مصدرية سهلة القراءة، وأتمتة توليد شفرة الآلة عبر سلسلة أدوات بناء . اليوم، تُكتب معظم الشفرة المصدرية بلغة عالية المستوى، مع إمكانية استخدام لغة التجميع المرتبطة ارتباطًا وثيقًا بتعليمات لغة الآلة. تتألف العديد من سلاسل الأدوات من مُصرّف يُولّد الشفرة الأصلية كمجموعة من ملفات الكائنات ، ورابط يُولّد برنامجًا تنفيذيًا أصليًا من ملفات الكائنات وغيرها. بالنسبة للغة التجميع، يُطلق على أداة الترجمة عادةً اسم المُجمّع بدلًا من المُصرّف.
تُخزَّن ملفات الكائنات عادةً بتنسيق حاوية رقمية يدعم بنية في لغة الآلة ، مثل تنسيق ELF ( تنسيق قابل للتنفيذ والربط ) أو تنسيق PE ( تنسيق قابل للتنفيذ المحمول )، وذلك حسب سياق الحوسبة. [ 5 ] قد يدعم هذا التنسيق فصل التعليمات البرمجية إلى أقسام مثل .text (التعليمات البرمجية القابلة للتنفيذ)، و.data (المتغيرات العامة والثابتة المُهيأة)، و .rodata (البيانات للقراءة فقط، مثل الثوابت والسلاسل النصية).
تتضمن الملفات التنفيذية عادةً نظام تشغيل ، يُنفذ ميزات لغة التشغيل (مثل جدولة المهام ، ومعالجة الاستثناءات ، واستدعاء المُنشئات والمُدمرات الثابتة، وما إلى ذلك) والتفاعلات مع نظام التشغيل، ولا سيما تمرير الوسائط، والبيئة، وإرجاع حالة الخروج ، بالإضافة إلى ميزات بدء التشغيل والإيقاف الأخرى مثل تحرير الموارد كمؤشرات الملفات . في لغة C، يتم ذلك عن طريق ربط الكائن crt0 ، الذي يحتوي على نقطة الدخول الفعلية ويُجري عمليات الإعداد والإيقاف عن طريق استدعاء مكتبة وقت التشغيل . [ 6 ] وبالتالي، قد تحتوي الملفات التنفيذية على تعليمات برمجية كبيرة تتجاوز تلك المُولدة مباشرةً من التعليمات البرمجية المصدرية. في بعض الحالات، يُفضل حذف هذا الجزء، على سبيل المثال للأنظمة المُدمجة. في لغة C، يُمكن القيام بذلك عن طريق حذف وقت التشغيل المعتاد، وتحديد نص برمجي للرابط بشكل صريح، والذي يُولد نقطة الدخول ويتعامل مع بدء التشغيل والإيقاف، مثل استدعاء mainدالة البدء وإرجاع حالة الخروج إلى النواة في النهاية. [ 7 ]
لكي يكون الملف قابلاً للتنفيذ، يجب أن يتوافق مع واجهة التطبيق الثنائية (ABI) للنظام . في الواجهات البسيطة، يُنفَّذ الملف بتحميله في الذاكرة والانتقال إلى بداية مساحة العنوان، ثم يُنفَّذ من هناك. [ 8 ] أما في الواجهات الأكثر تعقيدًا، فتتضمن الملفات القابلة للتنفيذ بيانات وصفية إضافية ، قد تُحدد عمليات النقل التي تُجرى عند تحميل البرنامج، أو عنوان نقطة الدخول التي يبدأ منها التنفيذ. [ 9 ]
انظر أيضاً
- مقارنة بين تنسيقات الملفات القابلة للتنفيذ
- ضغط الملفات التنفيذية – وسيلة لضغط ملف تنفيذي
- نص قابل للتنفيذ – رمز برمجي مصمم كحمولة لاستغلال ثغرة أمنية في البرنامج. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه.
- ملف الكائن – ملف يحتوي على رمز آلة بتنسيق قابل للنقل
مراجع
- ^ سيلوفي ، بول (2002). جزءا لا يتجزأ من كتاب الطبخ FreeBSD . إلسفير . ص 108، 187- 188. ISBN 1-5899-5004-6تم الاطلاع عليه بتاريخ 2022-03-06 .
- ↑ مولر، جون بول (2007). إدارة ويندوز من سطر الأوامر لأنظمة ويندوز فيستا، وويندوز 2003، وويندوز إكس بي، وويندوز 2000. جون وايلي وأولاده . ص 24. ISBN 978-0-470-04616-6تم الاطلاع عليه بتاريخ 2023-03-06 .
- ↑ "ملف تنفيذي" . قاموس ميريام-ويبستر الإلكتروني . ميريام-ويبستر . تم الاطلاع عليه بتاريخ 19-07-2008 .
- ↑ "تعليمات الآلة" . GeeksforGeeks . 2015-11-03 . تم الاطلاع عليه بتاريخ 2019-09-18 .
- ↑ "الفصل 4: ملفات الكائنات" . refspecs.linuxbase.org . تم الاطلاع عليه بتاريخ 18-09-2019 .
- ↑ فيشر، تيم. "قائمة امتدادات الملفات التنفيذية" . lifewire.com . تم الاطلاع عليه بتاريخ 18-09-2019 .
- ↑ ماكيلار، جيسيكا (2010-03-16). "مرحباً من عالم خالٍ من مكتبة libc! (الجزء 1)" .
- ↑ سميث، جيمس إي .؛ ناير، رافي (16-05-2005). "بنية الآلات الافتراضية" . مجلة الكمبيوتر . 38 (5): 33-34 . doi : 10.1109/MC.2005.173 .
- ↑ روسلينغ، ديفيد أ. (1999). "الفصل 4 - العمليات" . نواة لينكس . القسم 4.8.1 - ELF . تم الاسترجاع في 2023-03-06 .
روابط خارجية
- تنسيق ملف EXE في موقع What Is
- أنظمة ملفات الحاسوب
- تنفيذ لغة البرمجة
