موصى به, 2024

اختيار المحرر

الفرق بين رابط و لودر

Linker و Loader هي البرامج المساعدة التي تلعب دورًا رئيسيًا في تنفيذ أحد البرامج. يمر شفرة المصدر للبرنامج من خلال برنامج التحويل البرمجي والتجميع والرابط والمحمل بالترتيب المطلوب قبل التنفيذ. من ناحية ، حيث ينفذ linker رموز الكائن التي تم إنشاؤها بواسطة المجمع ودمجها لإنشاء وحدة قابلة للتنفيذ. على الجانب الآخر ، يقوم المُحمل بتحميل الوحدة النمطية القابلة للتنفيذ هذه إلى الذاكرة الرئيسية للتنفيذ. دعونا نناقش الفرق بين رابط ومحمل بمساعدة مخطط المقارنة.

رسم بياني للمقارنة

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

تعريف رابط

ينشئ Assembler رمز الكائن لبرنامج المصدر ويسلمه إلى رابط. يأخذ رابط رمز الكائن هذا ويقوم بإنشاء التعليمات البرمجية القابلة للتنفيذ للبرنامج ثم تسليمها إلى Loader.

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

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

محرر الروابط : هو رابط يولد وحدة قابلة للتنفيذ ، قابلة للتنفيذ.

Dynamic Linker : يعرقل / يؤجل ارتباط بعض الوحدات الخارجية حتى يتم إنشاء الوحدة النمطية للتحميل / الوحدة القابلة للتنفيذ. هنا ، يتم الربط أثناء وقت التحميل أو وقت التشغيل.

تعريف لودر

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

هناك ثلاثة أنواع من طرق التحميل:

  • التحميل المطلق
  • تحميل قابل للنقل
  • تحميل وقت التشغيل الديناميكي

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

التحميل القابل لإعادة النقل: في هذا الأسلوب ، لا ينتج المحول البرمجي أو المجمّع عنوان الذاكرة الرئيسي الفعلي . وتنتج العناوين النسبية.

تحميل وقت التشغيل الديناميكي : في هذا الأسلوب ، يتم إنشاء العنوان المطلق لأحد البرامج عند تنفيذ تعليمات وحدة نمطية قابلة للتنفيذ بالفعل. إنها مرنة للغاية ، يمكن تحميل الوحدة القابلة للتحميل / الوحدة القابلة للتنفيذ في أي منطقة من الذاكرة الرئيسية . يمكن أن ينقطع البرنامج المنفذ بين ويمكن تبادلها إلى القرص والعودة إلى الذاكرة الرئيسية هذه المرة في عنوان ذاكرة رئيسي آخر.

الاختلافات الأساسية بين رابط و Loader

  1. الاختلاف الرئيسي بين linker و loader هو أن ينشئ linker الملف القابل للتنفيذ من برنامج بينما ، يقوم المُحمل بتحميل الملف القابل للتنفيذ الذي تم الحصول عليه من الرابط إلى الذاكرة الرئيسية للتنفيذ .
  2. يدخل رابط وحدة الكائن لبرنامج تم إنشاؤه بواسطة المجمّع. ومع ذلك ، يدخل محمل الوحدة النمطية القابلة للتنفيذ التي تم إنشاؤها بواسطة رابط.
  3. يجمع الرابط بين كل وحدة الكائن في برنامج لإنشاء وحدات قابلة للتنفيذ ، ويربط أيضًا وظيفة المكتبة في وحدة الكائن بالمكتبات المدمجة في لغة البرمجة عالية المستوى. على الجانب الآخر ، يخصص اللودر المساحة إلى وحدة قابلة للتنفيذ في الذاكرة الرئيسية.
  4. يمكن تصنيف الرابط كمحرر رابط ، ورابط ديناميكي في حين يمكن تصنيف اللودر كمحمل مطلق ، ومحمل قابل للنقل ، ومحمل وقت التشغيل الديناميكي .

استنتاج:

يأخذ رابط الوحدات النمطية كائن من برنامج من المجمّع ويربط بينها لإنشاء نموذج قابل للتنفيذ من برنامج. ثم يتم تحميل الوحدة التنفيذية بواسطة محمل في الذاكرة الرئيسية للتنفيذ.

Top