الانتقال الذاتي

في برمجة الحاسوب ، يُعرف البرنامج ذاتي النقل بأنه برنامج ينقل تعليماته وبياناته المرتبطة بعنوانه عند تشغيله، وبالتالي يمكن تحميله في الذاكرة عند أي عنوان. [ 1 ] [ 2 ] وفي كثير من الحالات، يُعدّ الكود ذاتي النقل أيضًا شكلاً من أشكال الكود ذاتي التعديل .

ملخص

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

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

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

أمثلة

برامج الإقلاع

على سبيل المثال، غالبًا ما يتم استخدام إعادة التوطين الذاتي في المراحل المبكرة من تهيئة أنظمة التشغيل على بنى مثل أجهزة الكمبيوتر المتوافقة مع IBM PC ، حيث تقوم محملات سلسلة التمهيد ذات المستوى الأدنى (مثل سجل التمهيد الرئيسي (MBR) وسجل تمهيد وحدة التخزين (VBR) ومراحل التمهيد الأولية لأنظمة التشغيل مثل DOS ) بنقل نفسها من مكانها من أجل تحميل المرحلة التالية في الذاكرة.

ملحقات CP/M

في نظام التشغيل CP/M ، كانت أداة تصحيح الأخطاء الديناميكية (DDT) تقوم بنقل نفسها ديناميكيًا إلى أعلى الذاكرة المتاحة من خلال نقل حدود الصفحة من أجل زيادة مساحة البرنامج العابر (TPA) إلى أقصى حد لتشغيل البرامج فيها. [ 5 ] [ 6 ]

في عام 1988، قدم معالج سطر الأوامر البديل ZCPR 3.4 لنظام Z ما يُسمى ببرامج النوع 4 ، والتي كانت قابلة للنقل الذاتي عبر وحدة برمجية مضمنة أيضًا. [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ]

برامج تشغيل DOS x86

في نظام التشغيل DOS ، يُستخدم النقل الذاتي أحيانًا من قِبل برامج التشغيل المتقدمة وامتدادات النظام المقيمة (RSXs) أو البرامج التي تُنهي عملها وتظل مقيمة (TSRs)، حيث تُحمّل نفسها في الجزء العلوي من الذاكرة بكفاءة أعلى من برامج التحميل الخارجية (مثل LOADHIGH / HILOAD و INSTALLHIGH / HIINSTALL و DEVICEHIGH / HIDEVICE وغيرها [ 12 ] منذ DOS 5) لزيادة الذاكرة المتاحة للتطبيقات إلى أقصى حد. ويعود ذلك إلى أن نظام التشغيل لا يعرف تفاصيل عمل برنامج التشغيل المراد تحميله، وبالتالي يضطر إلى تحميله في مساحة ذاكرة حرة كبيرة بما يكفي لاستيعاب برنامج التشغيل بالكامل كوحدة واحدة، بما في ذلك رمز التهيئة، حتى لو تم تحرير هذه المساحة بعد التهيئة. بالنسبة للبرامج التي تُنهي عملها وتظل مقيمة، يضطر نظام التشغيل أيضًا إلى تخصيص بادئة مقطع البرنامج (PSP) ومقطع بيئة . [ 13 ] قد يؤدي ذلك إلى عدم تحميل برنامج التشغيل في منطقة الذاكرة الحرة الأنسب، أو حتى منعه من التحميل في المناطق العليا من الذاكرة. على النقيض من ذلك، يمكن تحميل برنامج التشغيل ذاتي النقل في أي مكان (بما في ذلك الذاكرة التقليدية )، ثم نقل الجزء المقيم منه فقط (الأصغر حجمًا عادةً) إلى منطقة ذاكرة حرة مناسبة في الذاكرة العليا. إضافةً إلى ذلك، يمكن لبرامج TSR المتقدمة ذاتية النقل (حتى لو تم تحميلها بالفعل في الذاكرة العليا بواسطة نظام التشغيل) نقل معظم جزء PSP الخاص بها ومخزن سطر الأوامر، وتحرير جزء بيئتها لتقليل حجم الذاكرة الناتج وتجنب التجزئة . [ 14 ] يمكن لبعض برامج TSR ذاتية النقل أيضًا تغيير "طبيعتها" ديناميكيًا والتحول إلى برامج تشغيل أجهزة حتى لو تم تحميلها في الأصل كبرامج TSR، مما يؤدي عادةً إلى تحرير بعض الذاكرة. [ 4 ] وأخيرًا، من المستحيل تقنيًا أن يقوم برنامج تحميل خارجي بنقل برامج التشغيل إلى الذاكرة الموسعة (EMS) أو منطقة الذاكرة العالية (HMA) أو الذاكرة الممتدة (عبر DPMS أو CLOAKING )، لأن هذه الطرق تتطلب بقاء أجزاء صغيرة خاصة ببرامج التشغيل في الذاكرة التقليدية أو العليا من أجل تنسيق الوصول إلى منطقة هدف النقل، [ 15 ] [ ملاحظة 1 ] [ ملاحظة 2 ]وفي حالة برامج تشغيل الأجهزة أيضًا، لأن رأس برنامج التشغيل يجب أن يبقى دائمًا في الميغابايت الأول. [ 15 ] [ 13 ] ولتحقيق ذلك، يجب تصميم برامج التشغيل خصيصًا لدعم إعادة التموضع الذاتي في هذه المناطق. [ 15 ]

تحتوي بعض برامج تشغيل DOS المتقدمة أيضًا على كلٍ من برنامج تشغيل الجهاز (الذي يتم تحميله عند الإزاحة +0000h بواسطة نظام التشغيل) وTSR (الذي يتم تحميله عند الإزاحة +0100h) ويتشاركان جزءًا مشتركًا من التعليمات البرمجية داخليًا كملف ثنائي شامل . [ 13 ] إذا لم يكن الكود المشترك مصممًا ليكون مستقلًا عن الموقع ، فإنه يتطلب شكلًا من أشكال إصلاح العنوان الداخلي المشابه لما كان سيتم تنفيذه بالفعل بواسطة مُحمِّل إعادة التموضع ؛ وهذا مشابه لمرحلة الإصلاح في إعادة التموضع الذاتي ولكن مع تحميل الكود بالفعل في الموقع المستهدف بواسطة مُحمِّل نظام التشغيل (بدلاً من أن يقوم بذلك برنامج التشغيل نفسه).

برامج IBM DOS/360 و OS/360

لم يكن نظام التشغيل IBM DOS/360 يدعم نقل البرامج أثناء التحميل. في بعض الأحيان، كانت تُحفظ نسخ متعددة من البرنامج، كل منها مُصممة لعنوان تحميل مختلف ( قسم ). وقد صُممت فئة خاصة من البرامج، تُسمى البرامج ذاتية النقل، لنقل نفسها بعد التحميل. [ 16 ] أما نظام التشغيل IBM OS/360 فكان ينقل البرامج التنفيذية عند تحميلها في الذاكرة. كانت هناك حاجة لنسخة واحدة فقط من البرنامج، ولكن بمجرد تحميله، لا يمكن نقله (ما يُعرف بالبرنامج المستقل عن الموقع لمرة واحدة ).

أمثلة أخرى

كمثالٍ متطرف على إعادة التموضع الذاتي (المتكرر)، والذي يُسمى أيضًا إعادة التموضع الذاتي الديناميكي، يُمكن تصميم برنامج حاسوبي بحيث لا يبقى في عنوان ثابت في الذاكرة، حتى أثناء تنفيذه، كما هو الحال في اختبارات ذاكرة الديدان . [ 17 ] [ 18 ] [ 19 ] [ 20 ] دودة أبل هي أيضًا مثال على إعادة التموضع الذاتي الديناميكي. [ 21 ]

انظر أيضاً

ملحوظات

  1. هناك استثناء لشرط وجود stub وهو عندمايتم تحويل الذاكرة الموسعة إلى ذاكرة علوية دائمة بواسطة مدير الذاكرة عبر EMSUMB ، وبالتالي يتم الوصول إليها بشكل فعال كذاكرة علوية ، وليس عبر EMS .
  2. هناك استثناءان لشرط وجود وحدة وسيطة (stub) لتحميل برنامج تشغيل في منطقة الذاكرة عالية الأداء (HMA) : لا تكون الوحدة الوسيطة ضرورية عندتفعيل الذاكرة العالية بشكل دائم على الأجهزة التي لا تحتوي على منطق البوابة A20 ، ولكن نظرًا لعدم تحقق هذا الشرط بشكل عام، لا يمكن لبرامج تشغيل DOS العامة الاستفادة منه (إلا إذا تم اختباره مسبقًا بشكل صريح). كما أن الوحدة الوسيطة غير ضرورية أيضًا في نظام DR DOS 6.0 والإصدارات الأحدث، عندما تقوم ملحقات النظام المقيمة (مثل SHARE و NLSFUNC ) فقط بربط مقاطعة الإرسال المتعدد INT 2Fh، لأنها تستطيع حينها استخدام واجهة خلفية للربط بسلسلة المقاطعات في مساحة النواة ، بحيث يوفر معالج البوابة A20 في النواة وظائف الوحدة الوسيطة. [أ] مع ذلك، يجب على برنامج التشغيل إجراء إعادة توجيه ذاتي لكي يعمل بشكل صحيح في منطقة الذاكرة عالية الأداء (HMA).

مراجع

  1. ^ دامدير، دانانجاي م. (1999). برمجة النظم وأنظمة التشغيل . تعليم. نيودلهي، الهند: تاتا ماكجرو هيل . ص.  232. ردمك 0-07-463579-4رقم الكتاب المعياري الدولي ( ISBN) 978-0-07-463579-7أُرشف من المصدر الأصلي بتاريخ 2020-02-01 . تم الاطلاع عليه بتاريخ 2011-11-08 .(658 صفحة)
  2. ^ دامدير، دانانجاي م. (2006). أنظمة التشغيل: نهج قائم على المفهوم . تعليم. نيودلهي، الهند: تاتا ماكجرو هيل . ص. 231. ردمك  0-07-061194-7رقم الكتاب المعياري الدولي ( ISBN) 978-0-07-061194-8أُرشف من المصدر الأصلي بتاريخ ٢٠ فبراير ٢٠٢٠. تم الاطلاع عليه بتاريخ ٢٠ فبراير ٢٠٢٠ .(799 صفحة)
  3. بول، ماتياس ر.؛ فرينك، أكسل سي. (1997-10-13) [1991]، FreeKEYB - برنامج تشغيل لوحة المفاتيح ووحدة التحكم المحسّن لنظام DOS (دليل المستخدم) ( الإصدار 6.5). (ملاحظة: FreeKEYB هو برنامج تشغيل قابل للتكوين ديناميكيًا يعتمد على Unicode ، ويدعم معظم تخطيطات لوحات المفاتيح وصفحات الترميز ورموز البلدان . ​​يستخدم البرنامج مُجمِّع ماكرو جاهزًا، بالإضافة إلى إطار عمل لأدوات تحليل المعالجة المسبقة واللاحقة التلقائية لإنشاء بيانات تعريف التبعية وتغيير التعليمات البرمجية ليتم تضمينها في الملف القابل للتنفيذ جنبًا إلى جنب مع التعليمات البرمجية الثنائية ، ومُحمِّل ذاتي التخلص والاسترخاء وإعادة التوطين . يدعم برنامج التشغيل التحميل والتثبيت الذاتي كبرنامج تشغيل جهاز أو برنامج تشغيل TSR ، كما أنه يُنفِّذ تقنيات متقدمة لإعادة التوطين الذاتي (بما في ذلك في ذاكرة DOS العادية ، ووحدات UMB ، وذاكرة الفيديو غير المستخدمة ، أو الذاكرة الخام، مع استخدام التحميل الزائد لبادئة مقطع البرنامج وإعادة تجميع مقطع البيئة )، وإزالة التعليمات البرمجية الميتة الديناميكية الدقيقة على مستوى البايت في وقت التحميل ، بالإضافة إلى التعليمات البرمجية ذاتية التعديل وإعادة التكوين في وقت التشغيل لتقليل حجم الذاكرة التي يشغلها، وذلك اعتمادًا على الأجهزة ونظام التشغيل وتكوين برنامج التشغيل، بالإضافة إلى مجموعة الميزات واللغة المحددة.)
  4. 1 2 بول، ماتياس ر.؛ فرينك، أكسل سي. (2006-01-16)، FreeKEYB - برنامج تشغيل لوحة المفاتيح ووحدة التحكم DOS الدولي المتقدم (دليل المستخدم) (7 ( إصدار أولي)). 
  5. كيلدال، غاري آرلين (فبراير 1978) [1976]. "تقنية بسيطة لإعادة التموضع الثابت لرمز الآلة المطلق" . مجلة دكتور دوبز لتمارين الحاسوب وتقويم الأسنان . 3 (2). شركة حاسوب الشعب : 10-13 (66-69). ISBN 0-8104-5490-4. #22 ark:/13960/t8hf1g21p . تم الاسترجاع بتاريخ 19-08-2017 .عُرضت هذه الورقة البحثية لأول مرة في: كيلدال، غاري آرلين (1977) [22-24 نوفمبر 1976]. "تقنية بسيطة لإعادة التموضع الثابت لرمز الآلة المطلق". كُتبت في كلية الدراسات العليا البحرية ، مونتيري، كاليفورنيا، الولايات المتحدة الأمريكية. في: تيتوس، هارولد أ. (محرر). سجل المؤتمر: المؤتمر السنوي العاشر لأسيلومار حول الدوائر والأنظمة والحواسيب: الأوراق المقدمة في 22-24 نوفمبر 1976. فندق ومؤتمرات أسيلومار، باسيفيك غروف، كاليفورنيا، الولايات المتحدة الأمريكية: شركة ويسترن بيريوداليكس. الصفحات 420-424 . الرقم الدولي الموحد للدوريات 1058-6393 . تاريخ الاسترجاع: 6 ديسمبر 2021 .  (609 صفحة). ( يمكن تطبيق طريقة "تغيير الحجم" هذه، المسماة " نقل حدود الصفحة "، بشكل ثابت على صورة قرص CP/M-80 باستخدام MOVCPM لزيادة مساحة الذاكرة المخصصة للبرامج. كما استُخدمت ديناميكيًا بواسطة أداة تصحيح الأخطاء الديناميكية (DDT) في CP/M لنقل نفسها إلى ذاكرة أكبر. وقد طوّر بروس هـ. فان ناتا من شركة IMS Associates نفس الأسلوب بشكل مستقل لإنتاج كود PL/M قابل للنقل . لاحقًا، استُخدمت نسخة أخرى من هذه الطريقة، وهي نقل حدود الفقرة، بواسطة برامج TSR ذاتية النقل الديناميكية HMA مثل KEYB و SHARE و NLSFUNC في نظام DR DOS 6.0 والإصدارات الأحدث. وقد ابتكر ماتياس ر. بول وأكسل س. فرينك بشكل مستقل طريقة نقل إزاحة أكثر تطورًا ودقة على مستوى البايت ، تعتمد على أسلوب مشابه إلى حد ما، وذلك لإزالة التعليمات البرمجية غير المستخدمة ديناميكيًا، بهدف تقليل حجم وقت التشغيل لبرامج التشغيل وبرامج TSR المقيمة (مثل FreeKEYB).)
  6. هويت، روبرت؛ يوبانكس، جوردون ؛ رولاندر، توماس "توم" آلان ؛ لوز، ديفيد؛ ميشيل، هوارد إي.؛ هالا، برايان؛ وارتون، جون هاريسون ؛ بيرج، برايان؛ سو، ويليان؛ كيلدال، سكوت ؛ كامبي، بيل (25-04-2014). لوز، ديفيد (محرر). "إرث غاري كيلدال: إهداء CP/M IEEE للمعالم البارزة" (ملف PDF) (نص الفيديو). باسيفيك غروف، كاليفورنيا، الولايات المتحدة الأمريكية: متحف تاريخ الحاسوب . رقم مرجع CHM: X7170.2014. مؤرشف (PDF) من الأصل في 27-12-2014 . تم الاسترجاع في 19-01-2020 . [...] لوز: [...] " إعادة التوطين الديناميكية " لنظام التشغيل. هل يمكنك أن تخبرنا ما هو هذا ولماذا كان مهمًا؟ [...] يوبانكس : [...] ما فعله غاري [...] كان [...] مذهلاً. أتذكر ذلك اليوم في المدرسة، عندما دخل المختبر بحماس وقال: "لقد اكتشفتُ طريقةً لإعادة التوطين ". استغل حقيقة أن البايت الوحيد سيكون دائمًا هو البايت الأعلى رتبة . وهكذا ابتكر خريطة بتات . لم يكن حجم ذاكرة الحاسوب مهمًا، إذ كان من الممكن دائمًا نقل نظام التشغيل إلى الذاكرة الأعلى رتبة. وبالتالي، أصبح بالإمكان تسويق هذا النظام على أجهزة ذات سعات ذاكرة مختلفة. لم يكن من الممكن بيع نظام CP /M بسعة 64 كيلوبايت وآخر بسعة 47 كيلوبايت. سيكون من السخف وجود ترجمة برمجية ثابتة في العناوين. لقد اكتشف غاري هذا الحل ذات ليلة، ربما في منتصف الليل وهو يفكر في أمر برمجي، وهذا ما جعل تسويق CP/M ممكنًا بالفعل. أعتقد حقًا أنه لولا إعادة التوطين هذه، لكانت المشكلة بالغة الصعوبة. لإقناع الناس بشرائه، سيبدو الأمر معقدًا بالنسبة لهم، وإذا أضفت المزيد من الذاكرة، فسيتعين عليك الحصول على نظام تشغيل مختلف. كانت شركة إنتل قد عكست ترتيب البايتات لعناوين الذاكرة، صحيح ؟ لكنها كانت دائمًا في نفس المكان، لذا كان بالإمكان نقلها على حدود 256 بايت ، على وجه الدقة. وبالتالي، كان بالإمكان دائمًا نقلها باستخدام خريطة بتات توضح مكان تلك البايتات. القوانين: بالتأكيد هذا هو التفسير الأكثر بلاغة الذي سمعته على الإطلاق عن النقل الديناميكي.(33 صفحة)
  7. سيج، جاي (مايو–يونيو 1988). كارلسون، آرت (محرر). "ZCPR 3.4 – برامج من النوع 4" . مجلة الكمبيوتر (TCJ) – البرمجة، دعم المستخدم، التطبيقات . ركن ZCPR3 (32). كولومبيا فولز، مونتانا، الولايات المتحدة الأمريكية: 10-17 . ISSN 0748-9331 . ark:/13960/t1wd4v943 . تاريخ الاسترجاع: 29 نوفمبر 2021 . 
  8. ميتشل، بريدجر (يوليو-أغسطس 1988). كارلسون، آرت (محرر). "Z3PLUS وإعادة التوطين - معلومات حول ZCPR3PLUS، وكيفية كتابة كود Z80 ذاتي إعادة التوطين" . مجلة الكمبيوتر (TCJ) - البرمجة، دعم المستخدم، التطبيقات . Advanced CP/M (33). كولومبيا فولز، مونتانا، الولايات المتحدة الأمريكية: 9-15 . ISSN 0748-9331 . ark:/13960/t36121780 . تاريخ الاسترجاع: 9 فبراير 2020 . 
  9. سيج، جاي (سبتمبر-أكتوبر 1988). كارلسون، آرت (محرر). "المزيد حول التعليمات البرمجية القابلة للنقل، وملفات PRL، وZCPR34، وبرامج النوع 4" . مجلة الكمبيوتر (TCJ) - البرمجة، ودعم المستخدم، والتطبيقات . ركن ZCPR3 (34). كولومبيا فولز، مونتانا، الولايات المتحدة الأمريكية: 20-25 . ISSN 0748-9331 . ark:/13960/t0ks7pc39 . تاريخ الاسترجاع: 9 فبراير 2020 . 
  10. سيج، جاي (يناير–فبراير 1992). كارلسون، آرت؛ ماكوين، كريس (محرران). "عشر سنوات من ZCPR" . مجلة الكمبيوتر (TCJ) – البرمجة، دعم المستخدم، التطبيقات . ركن نظام Z (54). ساوث بلينفيلد، نيو جيرسي، الولايات المتحدة الأمريكية: دار سقراط للنشر: 3-7 . ISSN 0748-9331 . ark:/13960/t89g6n689 . تاريخ الاسترجاع: 29 نوفمبر 2021 . 
  11. سيج، جاي (مايو–يونيو 1992) [مارس–يونيو 1992]. كارلسون، آرت؛ ماكوين، كريس (محرران). "برامج النوع 3 والنوع 4" . مجلة الكمبيوتر (TCJ) – البرمجة، دعم المستخدم، التطبيقات . ركن نظام Z – بعض التطبيقات الجديدة لبرامج النوع 4 (55). ساوث بلينفيلد، نيو جيرسي، الولايات المتحدة الأمريكية: مطبعة سقراط: 13-19 . ISSN 0748-9331 . ark:/13960/t4dn54d22 . تاريخ الاسترجاع: 29 نوفمبر 2021 . 
  12. "الفصل العاشر: إدارة الذاكرة" . دليل مستخدم Caldera DR-DOS 7.02 . شركة Caldera، 1998 [1993، 1997]. مؤرشف من الأصل بتاريخ 30 أغسطس 2017. تم الاطلاع عليه بتاريخ 30 أغسطس 2017 .
  13. ١ ٢ ٣ بول، ماتياس ر. (٢٠٠٢-٠٤-٠٦). "ردًا على: [ fd-dev ] إعلان: CuteMouse 2.0 alpha 1" . freedos-dev . مؤرشف من الأصل في ٢٠٢٠-٠٢-٠٧ . تم الاسترجاع في ٢٠٢٠-٠٢-٠٧ . [...] أضف رأس برنامج تشغيل جهاز SYS إلى برنامج التشغيل، بحيث يمكن أن يكون CTMOUSE في ملف واحد ، برنامج تشغيل عادي وبرنامج تشغيل جهاز - على غرار برنامج تشغيل لوحة المفاتيح المتقدم FreeKEYB. [...] هذا ليس ضروريًا حقًا في DR DOS لأن INSTALL = مدعوم منذ DR DOS 3.41+ ويحافظ DR DOS على ترتيب توجيهات [ D ] CONFIG.SYS [...] ولكنه من شأنه [...] تحسين [...] المرونة على أنظمة MS-DOS / PC DOS ، والتي [...] تنفذ دائمًا توجيهات DEVICE = قبل أي عبارات INSTALL =، بغض النظر عن ترتيبها في الملف. قد يتطلب البرنامج وجود برنامج تشغيل الماوس كبرنامج تشغيل جهاز، حيث كانت برامج تشغيل الماوس تُعتبر برامج تشغيل أجهزة منذ القدم. وقد حملت هذه البرامج أسماءً خاصة بها تبعًا للبروتوكول المستخدم (" PC$MOUSE " لوضع أنظمة الماوس على سبيل المثال)، وقد يبحث بعض البرامج عن هذه البرامج لتحديد نوع الماوس المناسب. ومن المزايا الأخرى أن برامج تشغيل الأجهزة عادةً ما تستهلك ذاكرة أقل (لا حاجة إلى بيئة أو PSP ) . الأمر ببساطة يتعلق برأس ملف معقد، ورمز مختلف لتحليل سطر الأوامر، ونقطة دخول وخروج مختلفتين، وبعض الحيل البرمجية للتغلب على الفرق بين ORG 0 وORG 100h. يُعد تحميل برنامج تشغيل الجهاز ذاتيًا أكثر تعقيدًا بعض الشيء، إذ يجب ترك رأس برنامج التشغيل في مكانه ونقل باقي البرنامج فقط.  
  14. بول، ماتياس ر. (18-08-2001). "ردًا على: [ fd-dev ] حول GRAFTABL وDISPLAY.SYS (كان: تغيير صفحات الترميز في FreeDOS)" . freedos-dev . تم الاسترجاع في 04-09-2017 . [...] على الأقل، يقوم MS-DOS 6.0 + GRAFTABL بنقل نفسه فوق أجزاء من مقطع PSP الخاص به (إزاحة +60h وما فوق) لتقليل حجمه المقيم. [...]{{cite web}}: CS1 maint: deprecated archiveal service ( link ) (NB. A post- DR-DOS 7.03 GRAFTABL 2.00+ supports dynamic self-location as well.)
  15. 1 2 3بول ماتياس ر. (2002-02-02). "Treiber dynamisch nachladen" [ تحميل برامج التشغيل ديناميكيًا ] (باللغة الألمانية). مجموعة الأخبار : de.comp.os.msdos . تم الاسترجاع 2017/07/02 . {{cite newsgroup}}: صيانة CS1: خدمة الأرشفة المهملة ( رابط ) (ملاحظة: يقدم هذا القسم نظرة عامة على أساليب التحميل العالي في نظام DOS، بما في ذلك استخدام أوامر LOADHIGH وما شابهها، وأساليب النقل الذاتي إلى وحدات UMB باستخدام واجهة برمجة تطبيقات XMSUMB . كما يناقش أساليب أكثر تعقيدًا ضرورية لوحدات TSR للانتقال إلى وحدة HMA باستخدام نقل الإزاحة داخل القطاع .)
  16. أنظمة إدارة بوث (1 نوفمبر 1972). "الإنتاجية - هل تحصل على كل ما تستحقه؟ - DOSRELO" . مجلة Computerworld - النشرة الأسبوعية لمجتمع الحاسوب (إعلان). المجلد السادس، العدد 44. سان فرانسيسكو، كاليفورنيا، الولايات المتحدة الأمريكية: Computerworld, Inc. ، صفحة 9. مؤرشف من الأصل في 6 فبراير 2020. تم الاسترجاع في 7 فبراير 2020. [...] يوفر DOSRELO طريقة لجعل برامج DOS التي بها مشاكل ذاتية النقل. يحقق DOSRELO إمكانية النقل الذاتي لجميع البرامج، بغض النظر عن اللغة، عن طريق إضافة منطق نقطة الدخول إلى رمز الكائن الخاص بالبرنامج قبل أن يقوم محرر الربط بفهرسته في مكتبة الصور الأساسية . [...]   
  17. اختبار ذاكرة الدودة (ملف PDF) . رسم متجهي . 21-10-2015. مؤرشف (ملف PDF) من الأصل بتاريخ 15-05-2019 . تم الاطلاع عليه بتاريخ 13-12-2021 .(3 صفحات) (ملاحظة: من دليل خدمة Vector Graphic 3. )
  18. ويلكنسون، ويليام "بيل" ألبرت (2003) [1996، 1984]. "دودة H89: اختبار ذاكرة H89" . صفحة شركة بيل ويلكنسون هيث . مؤرشفة من الأصل في 13 ديسمبر 2021. تم الاسترجاع في 13 ديسمبر 2021. [ ...] بالإضافة إلى جلب التعليمات، يستخدم معالج Z80 نصف الدورة لتحديث ذاكرة الوصول العشوائي الديناميكية . [...] بما أن معالج Z80 يقضي نصف كل دورة جلب تعليمات في أداء مهام أخرى، فإنه لا يملك الوقت الكافي لجلب بايت التعليمات كما يفعل مع بايت البيانات. إذا كانت إحدى رقائق ذاكرة الوصول العشوائي في موقع الذاكرة الذي يتم الوصول إليه بطيئة بعض الشيء، فقد يحصل معالج Z80 على نمط بت خاطئ عند جلب التعليمات، ولكنه يحصل على النمط الصحيح عند قراءة البيانات. [...] لن يكتشف اختبار الذاكرة المدمج هذا النوع من المشاكل [...] إنه اختبار قراءة/كتابة بيانات فقط. أثناء الاختبار، يتم جلب جميع التعليمات من ذاكرة القراءة فقط (ROM) ، وليس من ذاكرة الوصول العشوائي (RAM)، مما يؤدي إلى اجتياز معالج H89 لاختبار الذاكرة، ولكنه لا يزال يعمل بشكل غير منتظم مع بعض البرامج. هذا برنامج يختبر الذاكرة عن طريق إعادة توجيه نفسه عبر ذاكرة الوصول العشوائي. أثناء ذلك، يطبع المعالج عنوان البرنامج الحالي على شاشة العرض ، ثم يجلب التعليمات من ذلك العنوان. إذا كانت دوائر ذاكرة الوصول العشوائي سليمة عند ذلك العنوان، ينقل المعالج برنامج الاختبار إلى موقع الذاكرة التالي، ويطبع العنوان الجديد، ويكرر العملية. ولكن، إذا كانت إحدى دوائر ذاكرة الوصول العشوائي بطيئة بما يكفي لإرجاع نمط بتات غير صحيح، فسيفسر المعالج التعليمات بشكل خاطئ ويتصرف بشكل غير متوقع. ومع ذلك، من المحتمل أن تتوقف الشاشة عن العمل، وتعرض عنوان الدائرة المعيبة. هذا يقلل عدد الدوائر المعيبة إلى ثماني دوائر، وهو تحسن ملحوظ مقارنةً بفحص ما يصل إلى 32 دائرة. سيقوم البرنامج بإجراء اختبار الدودة عن طريق دفع تعليمة RST 7 (إعادة التشغيل 7) من الطرف الأدنى للذاكرة وصولاً إلى آخر عنوان يعمل بشكل صحيح. يبقى باقي البرنامج ثابتًا ويتولى عرض الموقع الحالي لأمر RST 7 ونقله . ويُطلق على البرنامج اسم "اختبار الدودة" لأن تعليمة RST 7، أثناء انتقالها عبر الذاكرة، تترك وراءها سلسلة من أوامر NOP (لا عملية).
  19. شتاينمان، جان دبليو. (1986-09-01). كُتب في ويست لين، أوريغون، الولايات المتحدة الأمريكية. "اختبار ذاكرة الدودة" . الحق في التجميع (TRTA). مجلة دكتور دوب لأدوات البرمجيات للمبرمج المحترف . 11 (9). ريدوود سيتي، كاليفورنيا، الولايات المتحدة الأمريكية: دار نشر إم آند تي / شركة حاسوب الشعب : 114-115 (662-663). ISSN 1044-789X . #119. ark:/13960/t74v34p9p CODEN DDJOEB . تم الاسترجاع في 2021-12-13 .  (صفحتان)
  20. شتاينمان، جان دبليو. (1986). "III. إجراءات وتقنيات مفيدة لمعالج 68000، 16. اختبار ذاكرة الدودة" (ملف PDF) . كُتب في ويست لين، أوريغون، الولايات المتحدة الأمريكية. كتاب أدوات دكتور دوب لبرمجة معالج 68000. نيويورك، الولايات المتحدة الأمريكية: دار برادي للنشر / دار برنتيس هول للنشر / دار سيمون وشوستر للنشر. الصفحات 341-350 . ISBN  0-13-216649-6LCCN 86-25308 . مؤرشف (PDF) من الأصل بتاريخ 13 ديسمبر 2021. تم الاطلاع عليه بتاريخ 13 ديسمبر 2021 . (1+5+10+1 صفحة)
  21. ديودني، ألكسندر كييواتين (مارس 1985). "التسلية الحاسوبية - مجموعة من الفيروسات والديدان وغيرها من التهديدات لذاكرة الحاسوب" . مجلة ساينتفك أمريكان . 285 : 38-39 . مؤرشف من الأصل في 4 يوليو 2017. تم الاطلاع عليه في 4 يوليو 2017 .

للمزيد من القراءة