النقل هو عملية تعيين عناوين التحميل للرمز المعتمد على الموضع وبيانات البرنامج وتعديل الكود والبيانات لتعكس العناوين المخصصة. قبل ظهور أنظمة العمليات المتعددة، ولا تزال في العديد من الأنظمة المضمنة، كانت عناوين الكائنات تبدأ بشكل مطلق من موقع معروف، وغالبًا ما تكون صفرًا. نظرًا لأن أنظمة المعالجة المتعددة تربط وتتحول ديناميكيًا بين البرامج، أصبح من الضروري أن تكون قادرًا على نقل الكائنات باستخدام رمز مستقل عن الموضع. عادةً ما يقوم الرابط بإجراء إعادة التوطين جنبًا إلى جنب مع دقة الرمز، وعملية البحث عن الملفات والمكتبات لاستبدال المراجع الرمزية أو أسماء المكتبات بعناوين فعلية قابلة للاستخدام في الذاكرة قبل تشغيل البرنامج. ويتم نقل عادة عن طريق رابط في وقت الارتباط، ولكن يمكن أيضا أن يتم ذلك في وقت التحميل من قبل الانتقال محمل، أو في وقت التشغيل من قبل برنامج تشغيل نفسه. تتجنب بعض الأبنية النقل تمامًا عن طريق تأجيل تعيين العنوان لوقت التشغيل ؛ يُعرف هذا باسم حساب العنوان الصفري تجزئة. يتم تقسيم ملفات الكائنات إلى أنواع مختلفة من مقاطع الذاكرة. تتضمن مقاطع المثال مقطع الكود (نص.)، مقطع بيانات مهيأ (بيانات. )، مقطع بيانات غير مهيأ (.bss)، أو غير ذلك. جدول النقل. جدول النقل هو قائمة بالمؤشرات التي أنشأها المترجم ( مترجم أو مُجمّع ) وتم تخزينها في الكائن أو الملف القابل للتنفيذ. كل إدخال في الجدول، أو "إصلاح"، هو مؤشر لعنوان مطلق في رمز الكائن الذي يجب تغييره عندما يقوم المُحمل بتغيير موقع البرنامج بحيث يشير إلى الموقع الصحيح. تم تصميم Fixups لدعم نقل البرنامج كوحدة كاملة. في بعض الحالات، يكون كل إصلاح في الجدول هو نفسه متعلقًا بالعنوان الأساسي صفر، لذلك يجب تغيير الإصلاحات نفسها أثناء تحرك أداة التحميل عبر الجدول. في بعض البنى، يعد الإصلاح الذي يتجاوز حدودًا معينة (مثل حدود المقطع) أو الذي لا يتم محاذاته على حدود الكلمة غير قانوني ويتم تمييزه كخطأ بواسطة الرابط. دوز وا وندوز 16 بت. المؤشرات البعيدة ( مؤشرات 32 بت مع مقطع : الإزاحة، تُستخدم لمعالجة مساحة ذاكرة 20 بت 640 كيلوبايت المتاحة لبرامج DOS )، والتي تشير إلى رمز أو بيانات داخل DOS قابل للتنفيذ ( EXE )، لا تحتوي على مقاطع مطلقة، لأن يعتمد العنوان الفعلي للرمز / البيانات على مكان تحميل البرنامج في الذاكرة وهذا غير معروف حتى يتم تحميل البرنامج. بدلاً من ذلك، المقاطع هي القيم النسبية في ملف DOS EXE. يجب تصحيح هذه الأجزاء، عندما يتم تحميل الملف القابل للتنفيذ في الذاكرة. يستخدم محمل EXE جدول نقل للعثور على الأجزاء التي تحتاج إلى تعديل. ويندوز 32 بت. مع أنظمة تشغيل وندوز 32 بت، ليس من الضروري توفير جداول إعادة تحديد موقع لملفات EXE، نظرًا لأنها أول صورة يتم تحميلها في مساحة العنوان الافتراضية، وبالتالي سيتم تحميلها على العنوان الأساسي المفضل لديهم. بالنسبة إلى كل من مكتبات DLL و EXE التي تشترك في التوزيع العشوائي لتخطيط مساحة العنوان (ASLR) - وهي تقنية لتخفيف الاستغلال تم تقديمها مع نظام التشغيل وندوز فيستا، تصبح جداول إعادة التوطين مرة أخرى إلزامية نظرًا لاحتمال نقل الملف الثنائي ديناميكيًا قبل تنفيذه، على الرغم من أنها لا يزال أول شيء يتم تحميله في مساحة العنوان الافتراضية. نظام التشغيل وندوز 64 بت. عند تشغيل ثنائيات 64 بت أصلية على نظام التشغيل Wوندوز
 عملية تعيين عناوين التحميل للرمز المعتمد على الموضع وبيانات البرنامج وتعديل الكود والبيانات لتعكس العناوين المخصصة
ما هي عملية النقل في عالم البرمجة ولماذا تكون ضرورية؟

كانت عناوين الكائنات تبدأ بشكل مطلق من موقع معروف، وغالبًا ما تكون صفرًا
ما هو الفرق بين أنظمة العمليات المتعددة والأنظمة المضمنة فيما يتعلق بعناوين الكائنات؟

هو قائمة بالمؤشرات التي أنشأها المترجم ( مترجم أو مُجمّع ) وتم تخزينها في الكائن أو الملف القابل
ما هو جدول النقل وما دوره في عملية النقل؟

 تتجنب بعض الأبنية النقل تمامًا عن طريق تأجيل تعيين العنوان لوقت التشغيل ؛ يُعرف هذا باسم حساب العنوان الصفري تجزئة.
ما هي مشكلة العنوان الصفري تجزئة وكيف يمكن تجنبها في عملية النقل؟

مقطع الكود (نص.)، مقطع بيانات مهيأ (بيانات. )، مقطع بيانات غير مهيأ (.bss)، أو غير ذلك. جدول النقل.
ما هي أنواع مقاطع الذاكرة التي تتعامل معها عملية النقل؟

 نظام التشغيل وندوز 64 بت. عند تشغيل ثنائيات 64 بت أصلية على نظام التشغيل Wوندوز
كيف تتغير عملية النقل عند تشغيل برامج بنية 64 بت على نظام التشغيل ويندوز 64 بت؟




ليس من الضروري توفير جداول إعادة تحديد موقع لملفات
لماذا تصبح جداول إعادة التوطين ضرورية في نظام التشغيل ويندوز 32 بت، وما هو دورها؟
