Relocation (computing)
In software development, relocation is the process of assigning load addresses for position-dependent code and data of a program and adjusting the code and data to reflect the assigned addresses.[1][2]
A linker usually performs relocation in conjunction with symbol resolution, the process of searching files and libraries to replace symbolic references or names of libraries with actual usable addresses in memory before running a program.
Relocation is typically done by the linker at link time, but it can also be done at load time by a relocating loader, or at run time by the running program itself.
Segmentation
Object files are typically segmented into various memory segments or section types. Example segment types include code segment (.text), initialized data segment (.data), uninitialized data segment (.bss), or others as established by the programmer, such as common segments or named static segments.
Relocation table
The relocation table is a list of addresses created by a compiler or assembler and stored in the object or executable file. Each entry in the table references an absolute address in the object code that must be changed when the loader relocates the program so that it will refer to the correct location. Entries in the relocation table are known as fixups and are designed to support relocation of the program as a complete unit. In some cases, each fixup in the table is itself relative to a base address of zero, so the fixups themselves must be changed as the loader moves through the table.[2]
In some architectures, a fixup that crosses certain boundaries (such as a segment boundary) or that is not aligned on a word boundary is illegal and flagged as an error by the linker.[3]
DOS and 16-bit Windows
Far pointers (32-bit pointers with segment:offset, used to address 20-bit 640 KB memory space available to DOS programs), which point to code or data within a DOS executable (EXE), do not have absolute segments, because the actual address of code or data depends on where the program is loaded in memory and this is not known until the program is loaded.
بدلاً من ذلك، تُعدّ المقاطع قيماً نسبية في ملف DOS EXE. يجب تصحيح هذه المقاطع عند تحميل الملف التنفيذي في الذاكرة. يستخدم مُحمّل ملفات EXE جدول إعادة التوطين للعثور على المقاطع التي تحتاج إلى تعديل.
ويندوز
مع أنظمة تشغيل ويندوز 32 بت، ليس من الضروري توفير جداول إعادة التوطين لملفات EXE، لأنها أول صورة يتم تحميلها في مساحة العنوان الظاهري وبالتالي سيتم تحميلها في عنوانها الأساسي المفضل.
بالنسبة لكل من ملفات DLL وملفات EXE التي تختار عشوائية تخطيط مساحة العناوين (ASLR)، وهي تقنية لتخفيف الاستغلال تم تقديمها مع نظام التشغيل Windows Vista ، تصبح جداول إعادة التوطين إلزامية مرة أخرى بسبب إمكانية نقل الملف الثنائي ديناميكيًا قبل تنفيذه، على الرغم من أنها لا تزال أول شيء يتم تحميله في مساحة العناوين الافتراضية.
يمكن وضع علامة "متوافق مع ASLR" على ملفات ويندوز التنفيذية. تتوفر هذه الميزة في ويندوز 8 والإصدارات الأحدث، حيث يمكن تفعيل ASLR حتى للتطبيقات غير المصنفة على أنها متوافقة. [ 4 ] ولضمان التشغيل الناجح في هذه البيئة، لا يمكن للمترجم حذف أقسام إعادة التوجيه.
أنظمة شبيهة بنظام يونكس
يُتيح تنسيق الملفات التنفيذية والمكتبات المشتركة (ELF)، المستخدم في معظم الأنظمة الشبيهة بنظام يونكس، تعريف أنواع متعددة من عمليات النقل. [ 5 ] : 1-22
على غرار الوضع في نظام ويندوز، يجب أن تكون المكتبات قابلة للنقل (أي تحتوي على كود مستقل عن الموقع وجداول مصاحبة)، بينما يمكن جعل الملفات التنفيذية قابلة للنقل اختيارياً لتقنية ASLR. تُعرف الملفات التنفيذية القابلة للنقل أيضاً بالملفات التنفيذية المستقلة عن الموقع .
إجراءات النقل
يقوم الرابط بقراءة معلومات القطاعات وجداول إعادة التوطين في ملفات الكائنات، وينفذ عملية إعادة التوطين عن طريق:
- دمج جميع أجزاء النوع المشترك في جزء واحد من ذلك النوع
- تخصيص عناوين وقت تشغيل غير متداخلة لكل مقطع ولكل رمز، وتخصيص عناوين وقت تشغيل فريدة لجميع التعليمات البرمجية (الدوال) والبيانات (المتغيرات العامة).
- الرجوع إلى جدول إعادة التوطين لتعديل مراجع الرموز في البيانات ورمز الكائن بحيث تشير إلى عناوين وقت التشغيل المعينة.
مثال
يستخدم المثال التالي بنية MIX الخاصة بدونالد كنوث ولغة التجميع MIXAL. تبقى المبادئ نفسها لأي بنية، مع اختلاف التفاصيل.

- (أ) يتم تجميع البرنامج SUBR لإنتاج ملف الكائن (ب)، الموضح بصيغتي لغة الآلة ولغة التجميع. قد يُحدد المُجمِّع بداية الكود المُجمَّع في موقع عشوائي، غالبًا الموقع 1، كما هو موضح. يحتوي الموقع 13 على كود الآلة لتعليمات القفز إلى العبارة ST في الموقع 5.
- (ج) إذا تم ربط SUBR لاحقًا بشفرة أخرى، فقد يتم تخزينها في موقع آخر غير 1. في هذا المثال، يضعها الرابط في الموقع 120. يجب نقل العنوان الموجود في تعليمة القفز، والذي يوجد الآن في الموقع 133، ليشير إلى الموقع الجديد لشفرة العبارة ST ، والذي أصبح الآن 125. [1 61 الموضح في التعليمة هو تمثيل شفرة الآلة MIX للرقم 125].
- (د) عند تحميل البرنامج في الذاكرة لتشغيله، قد يتم تحميله في موقع مختلف عن الموقع الذي حدده الرابط. يوضح هذا المثال أن SUBR موجود الآن في الموقع 300. يجب إعادة توجيه العنوان الموجود في تعليمة القفز، الموجود الآن في الموقع 313، بحيث يشير إلى الموقع المُحدَّث لـ ST ، وهو 305. [4 49 هو تمثيل آلة MIX للموقع 305].
البدائل
تتجنب بعض البنى إعادة التوطين تمامًا عن طريق تأجيل تعيين العنوان إلى وقت التشغيل، كما هو الحال، على سبيل المثال، في آلات المكدس ذات الحساب الصفري للعناوين أو في بعض البنى المجزأة حيث يتم تحميل كل وحدة تجميع في جزء منفصل.
انظر أيضاً
- جمع القمامة
- تبديل المؤشر ، وهو شكل كسول من تعديل المؤشر
- التجليد المسبق
- إعادة التأسيس
- تنسيق وحدة الكائن القابل للنقل
- مكتبة ثابتة
مراجع
- ↑ "أنواع كود الكائن". دليل مرجعي لمحمل تطبيقات iRMX 86 ( ملف PDF) . إنتل . الصفحات 1-2-1-3 . مؤرشف (ملف PDF) من الأصل بتاريخ 11-01-2020 . تم الاسترجاع بتاريخ 11-01-2020 .
[...]
الكود المطلق
، ووحدة الكائن المطلقة، هو كود تمت معالجته بواسطة LOC86 ليتم تشغيله فقط في موقع محدد في الذاكرة.
يقوم المحمل
بتحميلوحدة الكائن المطلقة فقط في الموقع المحدد الذي يجب أن تشغله الوحدة. يختلف
الكود المستقل عن الموقع
(المشار إليه عادةً باسم PIC) عن الكود المطلق في أنه يمكن تحميل PIC في أي موقع ذاكرة. ميزة PIC على الكود المطلق هي أن PIC لا يتطلب منك حجز كتلة ذاكرة محددة. عندما يقوم المحمل بتحميل PIC، فإنه يحصل على مقاطع ذاكرة
iRMX 86
من مجموعة مهام المهمة المستدعِية ويقوم بتحميل PIC في هذه المقاطع. من القيود المتعلقة بمعالج PIC، كما هو الحال في نموذج التجزئة
PL/M-86
COMPACT، أنه لا يمكن أن يحتوي إلا على مقطع واحد للتعليمات البرمجية ومقطع واحد للبيانات، بدلاً من السماح لعناوين الأساس لهذه المقاطع، وبالتالي المقاطع نفسها، بالتغير ديناميكيًا. هذا يعني أن برامج PIC يجب ألا يتجاوز طولها 64 كيلوبايت. يمكن إنتاج كود PIC باستخدام أمر BIND في معالج LINK86. أما
الكود القابل للتحديد وقت التحميل
(المعروف باسم كود LTL) فهو الشكل الثالث من كود الكائن. يشبه كود LTL معالج PIC في إمكانية تحميله في أي مكان في الذاكرة. مع ذلك، عند تحميل كود LTL، يقوم المحمل بتغيير الجزء الأساسي من المؤشرات بحيث تصبح هذه المؤشرات مستقلة عن المحتويات الأولية للسجلات في المعالج الدقيق. بفضل هذا التعديل (ضبط عناوين الأساس)، يمكن استخدام كود LTL في المهام التي تحتوي على أكثر من مقطع واحد للتعليمات البرمجية أو أكثر من مقطع واحد للبيانات. هذا يعني أن برامج LTL قد يتجاوز طولها 64 كيلوبايت. تُنتج
لغتا FORTRAN 86
و
Pascal 86
تلقائيًا كود LTL، حتى للبرامج القصيرة. ويمكن إنتاج كود LTL باستخدام خاصية BIND في معالج LINK86. […]
- 1 2 ليفين، جون ر. (2000) [أكتوبر 1999]. "الفصل 1: الربط والتحميل والفصل 3: ملفات الكائنات". الروابط والمحملات . سلسلة مورغان كوفمان في هندسة البرمجيات والبرمجة ( الطبعة الأولى). سان فرانسيسكو، كاليفورنيا، الولايات المتحدة الأمريكية: مورغان كوفمان . ص 5. ISBN 1-55860-496-0. OCLC 42413382 . تم الاسترجاع في 12 يناير 2020 .
{{cite book}}: CS1 maint: deprecated archiveal service ( link ) Code:تصحيحات: - ↑ بورلاند (1999-09-01) [1998-07-02]. "مقالة بورلاند رقم 15961: التعامل مع رسائل 'Fixup Overflow'" . community.borland.com . قاعدة بيانات المعلومات التقنية - المنتج: Borland C++ 3.1. TI961C.txt #15961. مؤرشفة من الأصل بتاريخ 2008-07-07 . تم الاطلاع عليها بتاريخ 2007-01-15 .
- ↑ "ست حقائق حول عشوائية تخطيط مساحة العناوين في نظام ويندوز" . 17 مارس 2020. تم الاطلاع عليه بتاريخ 24 يوليو 2020 .
- ↑ "تنسيق قابل للتنفيذ والربط (ELF)" (ملف PDF) . skyfree.org . مواصفات تنسيقات واجهة الأدوات (TIS) المحمولة، الإصدار 1.1. مؤرشف من الأصل (ملف PDF) بتاريخ 24-12-2019 . تم الاطلاع عليه بتاريخ 01-10-2018 .
للمزيد من القراءة
- جونسون، جلين (21-12-1975) [13-11-1975]. اختبار المنطق الأساسي لإدارة الذاكرة 11/34 . شركة المعدات الرقمية (DEC). MAINDEC-11-DFKTA-AD . تاريخ الاسترجاع: 19-08-2017 .
- فورمانياك، بيتر ج.؛ ليتش، ديفيد (يوليو 1977). "معيار برمجي مقترح للمعالجات الدقيقة" . مجلة بايت - مجلة الأنظمة الصغيرة . المنتدى التقني. المجلد 2، العدد 7. بيتربورو، نيو هامبشاير، الولايات المتحدة الأمريكية: منشورات بايت. الصفحات 34، 62-63 . ark:/13960/t32245485 . تاريخ الاسترجاع: 6 ديسمبر 2021 .(3 صفحات) (ملاحظة: يصف تنسيقًا سداسيًا قابلًا لإعادة التموضع من قِبل موستيك .)
- أوجدين، كارول آن؛ كولفين، نيل؛ بيتمان، توم؛ توب، فيليب (نوفمبر 1977). "تنسيقات كود الكائنات القابلة للنقل" . مجلة بايت - مجلة الأنظمة الصغيرة . المنتدى التقني. المجلد 2، العدد 11. بيتربورو، نيو هامبشاير، الولايات المتحدة الأمريكية: منشورات بايت. الصفحات 198-205 . ark:/13960/t59c88b4h، ark:/13960/t3kw76j24 . تاريخ الاسترجاع: 6 ديسمبر 2021 . (8 صفحات) (ملاحظة: يصف تنسيقًا سداسيًا قابلًا للنقل بواسطة TDL .)
- كيلدال، غاري آرلين (فبراير 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).)
- موسيب، ريتشارد هـ. (سبتمبر - أكتوبر 1980). كُتب في بلومينغديل، نيو جيرسي، الولايات المتحدة الأمريكية. "الرمز القابل للنقل" (ملف PDF) . أنظمة S-100 الدقيقة . المجلد 1، العدد 5. ماونتنسايد وسبرينغفيلد، نيو جيرسي، الولايات المتحدة الأمريكية: شركة ليبس. الصفحات 54-55 . الرقم الدولي الموحد للدوريات 0199-7955 . ark:/13960/s2cfgkmxcwg. ark:/13960/s2qdm1t01nr. مؤرشف (ملف PDF) من الأصل بتاريخ 27 نوفمبر 2023. تم الاطلاع عليه بتاريخ 27 نوفمبر 2023 . (صفحتان) (ملاحظة: يصف نقل حدود الصفحة ونقل المجمعات.)
- هويت، روبرت؛ يوبانكس، جوردون ؛ رولاندر، توماس "توم" آلان ؛ لوز، ديفيد؛ ميشيل، هوارد إي.؛ هالا، برايان؛ وارتون، جون هاريسون ؛ بيرج، برايان؛ سو، ويليان؛ كيلدال، سكوت ؛ كامبي، بيل (25 أبريل 2014). لوز، ديفيد (محرر). "إرث غاري كيلدال: إهداء CP/M IEEE للمعالم البارزة" (ملف PDF) (نص الفيديو). باسيفيك غروف، كاليفورنيا، الولايات المتحدة الأمريكية: متحف تاريخ الحاسوب . رقم مرجع CHM: X7170.2014. مؤرشف (PDF) من الأصل في 27 ديسمبر 2014. تم الاسترجاع في 19 يناير 2020. [
...] لوز: [...] "إعادة التوطين الديناميكية" لنظام التشغيل. هل يمكنك إخبارنا ما هو هذا ولماذا كان مهمًا؟ [...] يوبانكس : [...] ما فعله غاري [...] كان [...] مذهلاً. أتذكر ذلك اليوم في المدرسة، عندما دخل المختبر بحماس وقال: "لقد اكتشفتُ طريقةً لإعادة التوطين". استغل حقيقة أن البايت الوحيد سيكون دائمًا هو البايت الأعلى رتبة . وهكذا ابتكر خريطة بتات . لم يكن حجم ذاكرة الحاسوب مهمًا، إذ كان من الممكن دائمًا نقل نظام التشغيل إلى الذاكرة الأعلى رتبة. وبالتالي، أصبح بالإمكان تسويق هذا النظام على أجهزة ذات سعات ذاكرة مختلفة. لم يكن من الممكن بيع نظام CP /M بسعة 64 كيلوبايت وآخر بسعة 47 كيلوبايت. سيكون من السخف وجود ترجمة برمجية ثابتة في العناوين. لقد اكتشف غاري هذا الحل ذات ليلة، ربما في منتصف الليل وهو يفكر في أمر برمجي، وهذا ما جعل تسويق CP/M ممكنًا بالفعل. أعتقد حقًا أنه لولا إعادة التوطين هذه، لكانت المشكلة بالغة الصعوبة. لإقناع الناس بشرائه، سيبدو الأمر معقدًا بالنسبة لهم، وإذا أضفت المزيد من الذاكرة، فسيتعين عليك الحصول على نظام تشغيل مختلف. كانت شركة إنتل قد عكست ترتيب البايتات لعناوين الذاكرة، صحيح ؟ لكنها كانت دائمًا في نفس المكان، لذا كان بالإمكان نقلها على حدود 256 بايت ، على وجه الدقة. وبالتالي، كان بالإمكان دائمًا نقلها باستخدام خريطة بتات توضح مكان تلك البايتات. القوانين: بالتأكيد هذا هو التفسير الأكثر بلاغة الذي سمعته على الإطلاق عن النقل الديناميكي.
(33 صفحة) - جوزيس، تشارلز "تشاك" ب. (29-07-2015). "رد: كيف يعمل موقع MOVCPM.COM؟" . منتدى الحواسيب القديمة . النوع: CP/M وMP/M. مؤرشف من الأصل في 01-02-2020 . تم الاسترجاع في 01-02-2020 .
[...] يستخدم MOVCPM نوعًا مبكرًا من تنسيق PRL. في الأساس، يتم تجميع CP/M مرتين؛ المرة الثانية بإزاحة 100H بايت. تتم مقارنة الملفين الثنائيين وإنشاء خريطة بتات . يشير البت المُفعّل إلى أنه سيتم تعديل البايت الأعلى رتبة من العنوان. لا تتأثر بايتات العنوان الأدنى رتبة؛ ومن هنا جاء مصطلح "ملف قابل لإعادة التموضع للصفحة". يتوافق كل بايت في خريطة البتات مع 8 بايتات في البيانات الثنائية. [...] لذا فإن كل ما يُراد نقله في MOVCPM هو جزء من الصورة وخريطة بتات إعادة التموضع الخاصة بها. [...]
- غوزيس، تشارلز "تشاك" ب. (2016-11-08). "ردًا على: هل استخدام RST 28h آمن في برامج التجميع CP/M؟" . منتدى الحواسيب القديمة . النوع: CP/M وMP/M. مؤرشف من الأصل في 2020-02-01 . تم الاسترجاع في 2020-02-01 .
[...] لقد أشرتُ إلى ملفات PRL وكيف بدأت مع MOVCPM ، ثم أصبحت جزءًا لا يتجزأ من MP/M و CP/M 3.0 . تستخدم ملفات PRL خريطة بتات حيث يتوافق كل بت مع موقع ذاكرة؛ يشير بت واحد إلى ضرورة إضافة إزاحة نقل الصفحة إلى موقع الذاكرة المقابل. إذا كان لديك عدد قليل جدًا من مراجع الذاكرة المطلقة (مقارنةً بالمراجع النسبية)، فقد ترغب في استخدام قائمة مؤشرات (بايتان لكل مرجع) بدلًا من خريطة البتات. هذا غير مرجح في كود 8080 الذي لا يحتوي على قفزات نسبية، ولكنه قد يكون عاملاً مهماً في كود Z80 . الطريقة السريعة لاكتشاف ذلك هي تجميع البرنامج مرتين؛ في المرة الثانية مع إزاحة قدرها 100H، ثم مقارنة الملفين التنفيذيين. تكمن ميزة إعادة التوطين أثناء التشغيل في عدم تكبد أي تكلفة إضافية للكود الذي يحاول تجاوز مشكلة إعادة التوطين - لا توجد "حيل"؛ فقط اكتب الكود مباشرةً. […]
- روث، ريتشارد ل. (فبراير 1978) [1977]. "إعادة التوطين ليست مجرد نقل برامج" . مجلة دكتور دوب لتمارين الحاسوب وتقويم الأسنان . 3 (2). ريدجفيلد، كاليفورنيا، الولايات المتحدة الأمريكية: شركة بيبلز كمبيوتر : 14-20 (70-76). ISBN 0-8104-5490-4رقم ٢٢. مؤرشف من الأصل بتاريخ ٢٠ أبريل ٢٠١٩. تم الاطلاع عليه بتاريخ ١٩ أبريل ٢٠١٩ .
- كالينجارت، بيتر (1979) [1978-11-05]. "8.2.2 مُحمِّل النقل". كُتب في جامعة نورث كارولينا في تشابل هيل . في هورويتز، إليس (محرر). المُجمِّعات، والمُترجمات، وترجمة البرامج . سلسلة هندسة برمجيات الحاسوب (الطبعة الأولى، الطبعة الأولى). بوتوماك، ماريلاند، الولايات المتحدة الأمريكية: دار نشر علوم الحاسوب. الصفحات 237-241 . ISBN 0-914894-23-4ISSN 0888-2088 . LCCN 78-21905 . تاريخ الاسترجاع: 20 مارس 2020 . (صفحتان + 14 صفحة + 270 صفحة + 6 صفحات)
- تنسيق ملف OBJ من مايكروسوفت . مايكروسوفت ، خدمات دعم المنتجات. ملاحظة التطبيق SS0288 . تم الاطلاع عليها بتاريخ 21 أغسطس 2017 .
{{cite book}}: CS1 maint: deprecated archiveal service ( link ) - تانينباوم، أندرو ستيوارت ؛ بوس، هربرت (2015). أنظمة التشغيل الحديثة ( الطبعة الرابعة). بيرسون إديوكيشن إنك. ISBN 978-0-13359162-0.
- إليوت، جون سي. (5 يونيو 2012) [2 يناير 2000]. "تنسيق مايكروسوفت REL" . seasip.info . مؤرشف من الأصل في 26 يناير 2020. تم الاسترجاع في 26 يناير 2020. [
...] يتم إنشاء تنسيق REL بواسطة برنامج M80 من مايكروسوفت وبرنامج RMAC من ديجيتال ريسيرش . [...]
- براذرز، هاردين (أبريل 1983). "فهم الكود القابل للنقل" . 80 مايكرو . الخطوة التالية (39). 1001001، Inc .: 38 ، 40، 42، 45. ISSN 0744-7868 . تاريخ الاسترجاع: 2020-02-06 .
- براذرز، هاردين (أبريل 1985). "البرامج القابلة للنقل: رواد الحوسبة المصغرة" . 80 مايكرو . الخطوة التالية (63). سي دبليو كوميونيكيشنز/بيتربورو، إنك .: 98 ، 100، 102-103 . الرقم الدولي الموحد للدوريات 0744-7868 . تاريخ الاسترجاع 2020-02-06 .
- غانسل، جاك (فبراير 1992). "كتابة التعليمات البرمجية القابلة للنقل - يجب تشغيل بعض التعليمات البرمجية المضمنة على أكثر من عنوان واحد" . برمجة الأنظمة المضمنة . مجموعة غانسل - إتقان فن بناء الأنظمة المضمنة / TGG. مؤرشف من الأصل في 18 يوليو 2019. تم الاسترجاع في 20 فبراير 2020 .
- مكتبات الحاسوب
- عمليات التخصيص
