المكتبة (الحوسبة)

في علوم الكمبيوتر ، المكتبة هي مجموعة من الموارد التي يتم الاستفادة منها أثناء تطوير البرامج لتنفيذ برنامج كمبيوتر .
تاريخيًا، كانت المكتبة تتكون من برامج فرعية (تسمى عمومًا بالوظائف اليوم). يتضمن المفهوم الآن أشكالًا أخرى من التعليمات البرمجية القابلة للتنفيذ بما في ذلك الفئات والبيانات غير القابلة للتنفيذ بما في ذلك الصور والنصوص . يمكن أن يشير أيضًا إلى مجموعة من التعليمات البرمجية المصدرية .
على سبيل المثال، يمكن لبرنامج أن يستخدم مكتبة لإجراء مكالمات النظام بشكل غير مباشر بدلاً من إجراء تلك المكالمات النظامية مباشرة في البرنامج.
صفات
عام
يمكن استخدام المكتبة بواسطة مستهلكين مستقلين متعددين (برامج ومكتبات أخرى). وهذا يختلف عن الموارد المحددة في برنامج والتي لا يمكن استخدامها عادةً إلا بواسطة هذا البرنامج.
عندما يستخدم المستهلك موردًا من المكتبة، فإنه يحصل على قيمة المكتبة دون الحاجة إلى تنفيذه بنفسه. تشجع المكتبات إعادة استخدام التعليمات البرمجية بطريقة معيارية .
عند كتابة كود يستخدم مكتبة، يحتاج المبرمج فقط إلى معرفة معلومات عالية المستوى مثل العناصر التي تحتوي عليها وكيفية استخدام العناصر - وليس كل التفاصيل الداخلية للمكتبة.
يمكن للمكتبات استخدام مكتبات أخرى مما يؤدي إلى تسلسل هرمي للمكتبات في البرنامج.
قابل للتنفيذ
تحتوي مكتبة التعليمات البرمجية القابلة للتنفيذ على واجهة محددة جيدًا يتم من خلالها استدعاء الوظيفة. على سبيل المثال، في لغة C ، يتم استدعاء وظيفة المكتبة عبر إمكانية استدعاء الوظيفة العادية في لغة C. يقوم الرابط بإنشاء تعليمات برمجية لاستدعاء وظيفة عبر آلية المكتبة إذا كانت الوظيفة متاحة من مكتبة بدلاً من البرنامج نفسه. [1]
يمكن ربط وظائف المكتبة بالبرنامج المستدعي في مراحل مختلفة من دورة حياة البرنامج . إذا تم الوصول إلى كود المكتبة أثناء بناء البرنامج المستدعي، فإن المكتبة تسمى مكتبة ثابتة . [2] البديل هو بناء ملف البرنامج القابل للتنفيذ ليكون منفصلاً عن ملف المكتبة. يتم ربط وظائف المكتبة بعد بدء تشغيل الملف القابل للتنفيذ، إما في وقت التحميل أو وقت التشغيل . في هذه الحالة، تسمى المكتبة مكتبة ديناميكية .
تحتوي أغلب اللغات المترجمة على مكتبة قياسية ، على الرغم من أن المبرمجين يمكنهم أيضًا إنشاء مكتباتهم المخصصة. توفر أغلب أنظمة البرمجيات الحديثة مكتبات تنفذ أغلب خدمات النظام. وقد نظمت هذه المكتبات الخدمات التي تتطلبها التطبيقات الحديثة. وبالتالي، يتم توفير أغلب التعليمات البرمجية التي تستخدمها التطبيقات الحديثة في مكتبات النظام هذه.
تاريخ
تعود فكرة مكتبة الكمبيوتر إلى أول أجهزة كمبيوتر أنشأها تشارلز باباج . اقترحت ورقة بحثية عام 1888 حول محركه التحليلي أنه يمكن تثقيب عمليات الكمبيوتر على بطاقات منفصلة عن المدخلات الرقمية. إذا تم حفظ بطاقات التثقيب هذه لإعادة الاستخدام، "فإن المحرك سيكون لديه مكتبة خاصة به تدريجيًا". [3]

في عام 1947، تكهن جولدستين وفون نيومان بأنه سيكون من المفيد إنشاء "مكتبة" من البرامج الفرعية لعملهم على جهاز IAS ، وهو جهاز كمبيوتر مبكر لم يكن يعمل بعد في ذلك الوقت. [4] لقد تصوروا مكتبة مادية من التسجيلات السلكية المغناطيسية ، حيث يخزن كل سلك كود كمبيوتر قابل لإعادة الاستخدام. [5]
مستوحى من فون نيومان، قام ويلكس وفريقه ببناء EDSAC . كانت خزانة ملفات من شريط مثقوب تحتوي على مكتبة البرامج الفرعية لهذا الكمبيوتر. [6] تتكون برامج EDSAC من برنامج رئيسي وسلسلة من البرامج الفرعية المنسوخة من مكتبة البرامج الفرعية. [7] في عام 1951، نشر الفريق أول كتاب مدرسي عن البرمجة، إعداد البرامج لجهاز كمبيوتر رقمي إلكتروني ، والذي شرح بالتفصيل إنشاء المكتبة والغرض منها. [8]
تضمنت لغة كوبول "قدرات بدائية لنظام مكتبة" في عام 1959، [9] لكن جان ساميت وصفها بأنها "مرافق مكتبة غير كافية" في وقت لاحق. [10]
تحتوي JOVIAL على مجموعة اتصالات (COMPOOL)، وهي عبارة عن مكتبة من ملفات الرأس تقريبًا.
كان أحد المساهمين الرئيسيين في مفهوم المكتبة الحديثة هو ابتكار البرامج الفرعية في لغة فورتران . يمكن تجميع البرامج الفرعية في لغة فورتران بشكل مستقل عن بعضها البعض، ولكن المترجم يفتقر إلى رابط . لذا قبل تقديم الوحدات النمطية في لغة فورتران-90، كان التحقق من النوع بين البرامج الفرعية في لغة فورتران [NB 1] مستحيلاً. [11]
بحلول منتصف ستينيات القرن العشرين، أصبحت مكتبات النسخ والماكرو شائعة الاستخدام في برامج التجميع. وبدءًا من شعبية نظام IBM System/360 ، أصبحت المكتبات التي تحتوي على أنواع أخرى من عناصر النص، مثل معلمات النظام، شائعة أيضًا.
في نظام التشغيل OS/360 الخاص بشركة IBM وخلفائه، يُطلق على هذا اسم مجموعة البيانات المقسمة .
كانت لغة البرمجة الموجهة للكائنات ، سيمولا ، التي تم تطويرها في عام 1965، تدعم إضافة الفئات إلى المكتبات عبر المترجم الخاص بها. [12] [13]
الربط
المكتبات مهمة في عملية ربط البرنامج أو ربطه ، والتي تحل المراجع المعروفة بالروابط أو الرموز إلى وحدات المكتبة. تتم عملية الربط عادةً تلقائيًا بواسطة برنامج ربط أو ربط يبحث في مجموعة من المكتبات والوحدات الأخرى بترتيب معين. عادةً لا يُعتبر العثور على هدف رابط عدة مرات في مجموعة معينة من المكتبات خطأً. يمكن إجراء الربط عند إنشاء ملف قابل للتنفيذ (ربط ثابت)، أو كلما تم استخدام البرنامج في وقت التشغيل (ربط ديناميكي).
قد تكون المراجع التي يتم حلها عبارة عن عناوين للقفزات والمكالمات الروتينية الأخرى. وقد تكون في البرنامج الرئيسي، أو في وحدة واحدة اعتمادًا على وحدة أخرى. يتم حلها إلى عناوين ثابتة أو قابلة للنقل (من قاعدة مشتركة) عن طريق تخصيص ذاكرة وقت التشغيل لشرائح الذاكرة لكل وحدة مرجعية.
تستخدم بعض لغات البرمجة ميزة تسمى الارتباط الذكي حيث يكون الرابط على علم بالمترجم أو متكاملًا معه، بحيث يعرف الرابط كيفية استخدام المراجع الخارجية، ويمكن تجاهل التعليمات البرمجية الموجودة في مكتبة لا يتم استخدامها فعليًا أبدًا ، حتى لو تم الرجوع إليها داخليًا، من التطبيق المترجم. على سبيل المثال، يمكن للبرنامج الذي يستخدم الأعداد الصحيحة فقط للحساب، أو لا يقوم بأي عمليات حسابية على الإطلاق، استبعاد روتينات المكتبة ذات الفاصلة العائمة. يمكن أن تؤدي ميزة الارتباط الذكي هذه إلى أحجام ملفات تطبيق أصغر واستخدام ذاكرة أقل.
الانتقال
يتم تخزين بعض المراجع في وحدة نمطية لبرنامج أو مكتبة في شكل نسبي أو رمزي لا يمكن حله حتى يتم تعيين عناوين ثابتة نهائية لجميع التعليمات البرمجية والمكتبات. إعادة التوطين هي عملية ضبط هذه المراجع، ويتم ذلك إما بواسطة الرابط أو المحمل . بشكل عام، لا يمكن إجراء إعادة التوطين للمكتبات الفردية نفسها لأن العناوين في الذاكرة قد تختلف حسب البرنامج الذي يستخدمها والمكتبات الأخرى التي يتم دمجها معها. يتجنب التعليمات البرمجية المستقلة عن الموضع الإشارات إلى العناوين المطلقة وبالتالي لا تتطلب إعادة التوطين.
المكتبات الثابتة
عندما يتم تنفيذ الربط أثناء إنشاء ملف قابل للتنفيذ أو ملف كائن آخر، يُعرف ذلك بالربط الثابت أو الربط المبكر . في هذه الحالة، يتم الربط عادةً بواسطة رابط ، ولكن يمكن أيضًا أن يتم بواسطة المترجم . [14] المكتبة الثابتة ، والمعروفة أيضًا باسم الأرشيف ، هي مكتبة مخصصة للربط الثابت. في الأصل، كانت المكتبات الثابتة فقط موجودة. يجب تنفيذ الربط الثابت عند إعادة تجميع أي وحدات.
في بعض الأحيان، يتم ربط جميع الوحدات النمطية المطلوبة للبرنامج بشكل ثابت ونسخها في الملف القابل للتنفيذ. تُعرف هذه العملية والملف المستقل الناتج عنها بالبناء الثابت للبرنامج. قد لا يحتاج البناء الثابت إلى أي نقل إضافي إذا تم استخدام الذاكرة الافتراضية ولم تكن هناك حاجة إلى عشوائية تخطيط مساحة العنوان . [15]
المكتبات المشتركة
المكتبة المشتركة أو الكائن المشترك هو ملف من المفترض أن يتم مشاركته بواسطة ملفات قابلة للتنفيذ وملفات كائنات مشتركة أخرى . يتم تحميل الوحدات النمطية التي يستخدمها البرنامج من كائنات مشتركة فردية إلى الذاكرة في وقت التحميل أو وقت التشغيل ، بدلاً من نسخها بواسطة رابط عندما ينشئ ملفًا قابلاً للتنفيذ واحدًا للبرنامج.
يمكن ربط المكتبات المشتركة بشكل ثابت أثناء وقت التجميع، مما يعني أن الإشارات إلى وحدات المكتبة يتم حلها ويتم تخصيص ذاكرة للوحدات عند إنشاء الملف القابل للتنفيذ. [ بحاجة لمصدر ] ولكن غالبًا ما يتم تأجيل ربط المكتبات المشتركة حتى يتم تحميلها. [ مشكوك فيه - مناقشة ]
مكتبات الكائنات
على الرغم من أن الربط الديناميكي كان رائدًا في ستينيات القرن العشرين، إلا أنه لم يصل إلى أنظمة التشغيل الأكثر استخدامًا حتى أواخر الثمانينيات. كان متاحًا بشكل عام في معظم أنظمة التشغيل بحلول أوائل التسعينيات. خلال نفس الفترة، أصبحت البرمجة الموجهة للكائنات (OOP) جزءًا مهمًا من مشهد البرمجة. تتطلب البرمجة الموجهة للكائنات مع الربط وقت التشغيل معلومات إضافية لا توفرها المكتبات التقليدية. بالإضافة إلى أسماء ونقاط دخول الكود الموجود بداخلها، فإنها تتطلب أيضًا قائمة بالكائنات التي تعتمد عليها. هذا هو أحد الآثار الجانبية لأحد المفاهيم الأساسية للبرمجة الموجهة للكائنات، وهو الميراث، مما يعني أن أجزاء من التعريف الكامل لأي طريقة قد تكون في أماكن مختلفة. هذا أكثر من مجرد سرد أن مكتبة واحدة تتطلب خدمات أخرى: في نظام OOP حقيقي، قد لا تكون المكتبات نفسها معروفة في وقت التجميع ، وتختلف من نظام إلى آخر.
في الوقت نفسه، عمل العديد من المطورين على فكرة البرامج متعددة الطبقات، حيث يستخدم "العرض" الذي يتم تشغيله على جهاز كمبيوتر سطح المكتب خدمات الحاسوب المركزي أو الحاسوب الصغير لتخزين البيانات أو معالجتها. على سبيل المثال، يقوم البرنامج الموجود على جهاز كمبيوتر قائم على واجهة المستخدم الرسومية بإرسال رسائل إلى حاسوب صغير لإرجاع عينات صغيرة من مجموعة بيانات ضخمة للعرض. كانت استدعاءات الإجراءات عن بعد (RPC) تتولى بالفعل هذه المهام، ولكن لم يكن هناك نظام RPC قياسي.
سرعان ما بدأت أغلب شركات تصنيع أجهزة الكمبيوتر الصغيرة والكبيرة في تنفيذ مشاريع تهدف إلى الجمع بين الاثنين، مما أدى إلى إنتاج تنسيق مكتبة OOP يمكن استخدامه في أي مكان. وكانت مثل هذه الأنظمة تُعرف باسم مكتبات الكائنات ، أو الكائنات الموزعة ، إذا كانت تدعم الوصول عن بُعد (ولكن لم تكن جميعها كذلك). ويُعد نظام COM من Microsoft مثالاً على مثل هذا النظام للاستخدام المحلي. ويدعم نظام DCOM، وهو إصدار معدَّل من COM، الوصول عن بُعد.
لفترة من الوقت، احتلت مكتبات الكائنات مكانة "الشيء الكبير القادم" في عالم البرمجة. كانت هناك عدد من الجهود لإنشاء أنظمة تعمل عبر منصات مختلفة، وتنافست الشركات لمحاولة حبس المطورين في نظامهم الخاص. تشمل الأمثلة نموذج كائن النظام (SOM/DSOM) من IBM، و Distributed Objects Everywhere (DOE) من Sun Microsystems ، و Portable Distributed Objects (PDO) من NeXT ، وObjectBroker من Digital ، ونموذج كائن المكون (COM/DCOM) من Microsoft ، وأي عدد من الأنظمة المستندة إلى CORBA .
مكتبات الفصول الدراسية
مكتبات الفئات هي المعادل التقريبي للبرمجة الكائنية التوجه لأنواع أقدم من مكتبات التعليمات البرمجية. وهي تحتوي على فئات تصف الخصائص وتحدد الإجراءات ( الطرق ) التي تنطوي على كائنات. تُستخدم مكتبات الفئات لإنشاء مثيلات أو كائنات بخصائصها المحددة لقيم معينة. في بعض لغات البرمجة الكائنية التوجه، مثل Java ، يكون التمييز واضحًا، حيث غالبًا ما تكون الفئات موجودة في ملفات المكتبة (مثل تنسيق ملف JAR في Java ) والكائنات المولدة التي توجد في الذاكرة فقط (على الرغم من إمكانية جعلها دائمة في ملفات منفصلة). وفي لغات أخرى، مثل Smalltalk ، تكون مكتبات الفئات مجرد نقطة بداية لصورة النظام التي تتضمن الحالة الكاملة للبيئة والفئات وجميع الكائنات المولدة.
اليوم يتم تخزين أغلب مكتبات الفئات في مستودع حزم (مثل Maven Central لـ Java). يعلن كود العميل صراحةً عن التبعيات للمكتبات الخارجية في ملفات تكوين البناء (مثل Maven Pom في Java).
المكتبات البعيدة
تستخدم تقنية مكتبة أخرى ملفات قابلة للتنفيذ منفصلة تمامًا (غالبًا في شكل خفيف الوزن) وتستدعيها باستخدام استدعاء إجراء بعيد (RPC) عبر شبكة إلى جهاز كمبيوتر آخر. وهذا يزيد من إعادة استخدام نظام التشغيل إلى أقصى حد: فالكود المطلوب لدعم المكتبة هو نفس الكود المستخدم لتوفير دعم التطبيق والأمان لكل برنامج آخر. بالإضافة إلى ذلك، لا تتطلب مثل هذه الأنظمة وجود المكتبة على نفس الجهاز، ولكن يمكنها إعادة توجيه الطلبات عبر الشبكة.
ومع ذلك، فإن هذا النهج يعني أن كل استدعاء للمكتبة يتطلب قدرًا كبيرًا من النفقات العامة. إن استدعاءات RPC أكثر تكلفة بكثير من استدعاء مكتبة مشتركة تم تحميلها بالفعل على نفس الجهاز. يُستخدم هذا النهج عادةً في بنية موزعة تستخدم بشكل كبير مثل هذه الاستدعاءات عن بُعد، ولا سيما أنظمة العميل والخادم وخوادم التطبيقات مثل Enterprise JavaBeans .
مكتبات توليد التعليمات البرمجية
مكتبات توليد التعليمات البرمجية هي واجهات برمجة تطبيقات عالية المستوى يمكنها توليد أو تحويل التعليمات البرمجية الثنائية لجافا . يتم استخدامها بواسطة البرمجة الموجهة للجوانب ، وبعض أطر الوصول إلى البيانات، وللاختبار لتوليد كائنات وكيل ديناميكية. كما يتم استخدامها لاعتراض الوصول إلى الحقل. [ 16]
تسمية الملف
معظم أنظمة التشغيل الحديثة الشبيهة بنظام يونكس
يقوم النظام بتخزين libfoo.aالملفات libfoo.soفي دلائل مثل /libأو . تبدأ أسماء الملفات دائمًا بـ أو وتنتهي بلاحقة ( archive أو static library) أو ( shared object أو dynamically linked library). قد تحتوي بعض الأنظمة على أسماء متعددة لمكتبة مرتبطة ديناميكيًا. تشترك هذه الأسماء عادةً /usr/libفي نفس البادئة ولها لاحقات مختلفة تشير إلى رقم الإصدار. معظم الأسماء هي أسماء لارتباطات رمزية لأحدث إصدار. على سبيل المثال، في بعض الأنظمة سيكون اسم الملف للمراجعة الرئيسية الثانية للواجهة للمكتبة المرتبطة ديناميكيًا . الملفات الموجودة أحيانًا في دلائل المكتبة هي أرشيفات libtool ، ولا يمكن للنظام استخدامها على هذا النحو.
/usr/local/liblib.a.solibfoo.so.2libfoo.la
ماك
يرث النظام اتفاقيات المكتبة الثابتة من BSD ، مع تخزين المكتبة في .aملف، ويمكنه استخدام .soمكتبات مرتبطة ديناميكيًا على غرار - (مع .dylibاللاحقة بدلاً من ذلك). ومع ذلك، تتكون معظم المكتبات في macOS من "أطر عمل"، توضع داخل أدلة خاصة تسمى " الحزم " والتي تغلف الملفات والبيانات الوصفية المطلوبة للمكتبة. على سبيل المثال، MyFrameworkسيتم تنفيذ إطار عمل يسمى في حزمة تسمى MyFramework.framework، مع MyFramework.framework/MyFrameworkكونه إما ملف المكتبة المرتبطة ديناميكيًا أو كونه ارتباطًا رمزيًا لملف المكتبة المرتبطة ديناميكيًا في MyFramework.framework/Versions/Current/MyFramework.
مايكروسوفت ويندوز
عادةً ما تحتوي مكتبات الارتباط الديناميكي على اللاحقة *.DLL، [17] على الرغم من أن ملحقات اسم الملف الأخرى قد تحدد مكتبات مرتبطة ديناميكيًا لغرض محدد، على سبيل المثال *.OCXلمكتبات OLE . يتم ترميز مراجعات الواجهة إما في أسماء الملفات، أو تجريدها باستخدام واجهات كائنات COM . اعتمادًا على كيفية تجميعها، *.LIBيمكن أن تكون الملفات إما مكتبات ثابتة أو تمثيلات لمكتبات قابلة للربط ديناميكيًا مطلوبة فقط أثناء التجميع، والمعروفة باسم " مكتبات الاستيراد ". على عكس عالم UNIX ، الذي يستخدم ملحقات ملفات مختلفة، عند الارتباط بملف .LIBفي Windows، يجب على المرء أولاً معرفة ما إذا كانت مكتبة ثابتة عادية أم مكتبة استيراد. في الحالة الأخيرة، .DLLيجب أن يكون الملف موجودًا وقت التشغيل.
انظر أيضا
- إعادة استخدام الكود – استخدام البرامج الموجودة لبناء برامج جديدة
- الرابط (الحوسبة) – برنامج كمبيوتر يجمع ملفات كائنات متعددة في ملف واحد
- المحمل (الحوسبة) - جزء من نظام التشغيل
- مكتبة الارتباط الديناميكي – تنفيذ مايكروسوفت لمفهوم المكتبة المشتركة في Windows وOS/2
- ملف الكائن – ملف يحتوي على كود آلة تنسيق قابل للنقل
- المكون الإضافي – مكون برمجي يضيف ميزة معينة إلى تطبيق برمجي موجود
- الربط المسبق ، والمعروف أيضًا باسم الربط المسبق
- المكتبة الثابتة – مجموعة من الروتينات والوظائف الخارجية والمتغيرات في علوم الكمبيوتر
- مكتبة وقت التشغيل – نوع من مكتبة البرامج
- مكتبة المكونات المرئية – إطار عمل Object Pascal لنظام التشغيل Windows (VCL)
- مكتبة المكونات لنظام التشغيل متعدد المنصات (CLX)
- مكتبة سي القياسية – مكتبة قياسية للغة البرمجة سي
- مكتبة Java Class – مكتبة قياسية لـ Java ولغات برمجة JVM الأخرى
- مكتبة فئة Framework – مكتبة قياسية لـ .NET Framework من Microsoft
- البرمجة العامة – أسلوب برمجة الكمبيوتر (تستخدمه مكتبة C++ القياسية )
- soname – حقل البيانات في ملف الكائن المشترك
- مقتطف من الطريقة – نسخة مختصرة وبسيطة من الطريقة
ملحوظات
- ^ كان من الممكن في وقت سابق بين، على سبيل المثال، البرامج الفرعية Ada.
مراجع
- ^ ديسباندي، براساد (2013). الكشف عن التحول باستخدام تحليل رسم استدعاء الوظيفة (أطروحة). مكتبة جامعة ولاية سان خوسيه. doi : 10.31979/etd.t9xm-ahsc .
- ^ "المكتبات الثابتة". TLDP. مؤرشف من الأصل في 2013-07-03 . تم الاسترجاع 2013-10-03 .
- ^ باباج، إتش بي (12 سبتمبر 1888). "المحرك التحليلي". وقائع الجمعية البريطانية . باث.
- ^ جولدستين، هيرمان هـ. (2008-12-31). الحاسوب من باسكال إلى فون نيومان. برينستون: مطبعة جامعة برينستون. doi :10.1515/9781400820139. ISBN 978-1-4008-2013-9.
- ^ Goldstine, Herman ; von Neumann, John (1947). Planning and coding of problems for an electronic computing instrument (Report). Institute for Advanced Studies. pp. 3, 21–22. OCLC 26239859.
ربما يكون من المهم جدًا تطوير "مكتبة" موسعة من البرامج الفرعية
- ^ Wilkes, MV (1951). "The EDSAC Computer". 1951 International Workshop on Managing Requirements Knowledge . 1951 International Workshop on Managing Requirements Knowledge. IEEE. p. 79. doi :10.1109/afips.1951.13.
- ^ كامبل كيلي، مارتن (سبتمبر 2011). "في مديح 'ويلكس، ويلر، وجيل'". اتصالات جمعية الحوسبة الآلية . 54 (9): 25-27. doi :10.1145/1995376.1995386. S2CID 20261972.
- ^ Wilkes, Maurice ; Wheeler, David ; Gill, Stanley (1951). The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley. ص. 45، 80-91، 100. OCLC 641145988.
- ^ Weexelblat, Richard (1981). تاريخ لغات البرمجة. سلسلة ACM Monograph. نيويورك، نيويورك: Academic Press (شركة تابعة لـ Harcourt Brace ). ص. 274. ISBN 0-12-745040-8.
- ^ ويكسبلات، مرجع سابق. سيتي. ، ص. 258
- ^ ويلسون، ليزلي ب.؛ كلارك، روبرت ج. (1988). لغات البرمجة المقارنة . ووكينجهام، إنجلترا: أديسون ويسلي. ص. 126. ISBN 0-201-18483-4.
- ^ ويلسون وكلارك، المصدر السابق ، ص 52.
- ^ ويكسبلات، مرجع سابق. سيتي. ، ص. 716
- ^ كامينسكي، دان (2008). "الفصل 3 - الملفات القابلة للتنفيذ والملفات القابلة للتنفيذ وتنسيقات الربط". هندسة عكسية للكود باستخدام IDA Pro . إلسفير. ص. 37-66. doi :10.1016/b978-1-59749-237-9.00003-x. ISBN 978-1-59749-237-9. تم الاسترجاع بتاريخ 2021-05-27 .
- ^ Collberg, Christian; Hartman, John H.; Babu, Sridivya; Udupa, Sharath K. (2003). SLINKY: Static Linking Reloaded. USENIX '05. Department of Computer Science, University of Arizona . مؤرشف من الأصل في 2016-03-23 . تم الاسترجاع في 2016-03-17 .
- ^ "مكتبة توليد التعليمات البرمجية". المصدر Forge . مؤرشف من الأصل في 2010-01-12 . تم الاسترجاع في 2010-03-03 .
مكتبة توليد التعليمات البرمجية الثنائية هي واجهة برمجة تطبيقات عالية المستوى لتوليد وتحويل التعليمات البرمجية الثنائية بلغة JAVA. يتم استخدامها بواسطة AOP والاختبار وأطر الوصول إلى البيانات لتوليد كائنات وكيل ديناميكية واعتراض الوصول إلى الحقل.
- ^ Bresnahan, Christine; Blum, Richard (2015-04-27). دليل دراسة شهادة LPIC-1 Linux Professional Institute: الاختبار 101-400 والاختبار 102-400. John Wiley & Sons (نُشر عام 2015). ص. 82. ISBN
9781119021186. مؤرشف من الأصل في 2015-09-24 . تم الاسترجاع في 2015-09-03 .
تشبه مكتبات Linux المشتركة مكتبات الارتباط الديناميكي (DLLs) لنظام التشغيل Windows. عادةً ما يتم تحديد مكتبات الارتباط الديناميكي (DLLs) لنظام التشغيل Windows من خلال
.dllملحقات اسم الملف.
قراءة إضافية
- ليفين، جون ر. (2000) [أكتوبر 1999]. "الفصل 9: المكتبات المشتركة والفصل 10: الربط الديناميكي والتحميل". أدوات الربط والتحميل. سلسلة مورجان كوفمان في هندسة البرمجيات والبرمجة (طبعة واحدة). سان فرانسيسكو، الولايات المتحدة الأمريكية: مورجان كوفمان . رقم ISBN 1-55860-496-0. OCLC 42413382. مؤرشف من الأصل في 2012-12-05 . تم الاسترجاع 2020-01-12 .الكود: [1][2] الأخطاء: [3]
- مقالة دليل المبتدئين إلى أدوات الربط بقلم ديفيد درايسديل
- مقالة تسريع بدء تشغيل برامج C++ من خلال تحسين كفاءة الربط وقت التشغيل بقلم ليون بوتو وجون رايلاند
- كيفية إنشاء مكتبات البرامج بقلم باريس سيمسيك
- BFD - مكتبة الوصف الثنائي للملفات
- ورشة عمل تصميم البرمجيات الأولى التي تركز على المكتبات LCSD'05 أرشيف 2019-08-28 في Wayback Machine في OOPSLA'05
- ورشة العمل الثانية لتصميم البرمجيات المرتكزة على المكتبة LCSD'06 في OOPSLA'06
- كيفية إنشاء مكتبة مشتركة بواسطة Ulrich Drepper (مع الكثير من المعلومات الخلفية)
- تشريح المكتبات الديناميكية لنظام Linux في IBM.com
