المكتبات في لينكس
يوجد نوعان من المكتبات في Linux: ديناميكي وثابت حيث سنوضح في هذا المقال مميزات كل واحدة وعيوبها
مكتبة الارتباطات الثابتة:
عند استخدامها ، سيكتشف الرابط الوظائف المطلوبة من قبل البرنامج ، ثم يقوم بنسخها إلى ملف التنفيذ. ولأن هذه النسخة مكتملة ، فبمجرد نجاح الاتصال ، لم تعد هناك حاجة إلى مكتبة البرامج الثابتة .
من حيث المكتبات الديناميكية: عندما يستدعي برنامج وظيفة مكتبة ارتباط ديناميكي أثناء تشغيله ، يقوم نظام التشغيل أولاً بفحص جميع البرامج قيد التشغيل لمعرفة ما إذا كانت نسخة من وظيفة المكتبة هذه موجودة بالفعل في الذاكرة. إذا كان الأمر كذلك ، فدعه يشارك هذه النسخة ، فقط إذا لم يربط التحميل. عند تشغيل البرنامج ، يتم وضع وظائف مكتبة الارتباط الديناميكي المسماة في مكان ما في الذاكرة ، وستشير جميع البرامج التي تستدعيها إلى مقطع التعليمات البرمجية هذا. لذلك ، يجب أن تستخدم هذه الرموز العناوين النسبية ، وليس العناوين المطلقة. عند التحويل البرمجي ، نحتاج إلى إخبار المترجم أن ملفات الكائنات هذه تُستخدم كمكتبات ارتباطات ديناميكية ، لذا نحتاج إلى استخدامها رمز العنوان المستقل (PIC) لكي يتم ربطه بالمكتبة
هناك طريقتان لتحميل مكتبات الارتباطات الديناميكية: تحميل ضمني وتحميل صريح.
ملاحظة: العملية الافتراضية للربط تحت Linux هي ربط المكتبة الديناميكية أولاً ، أي إذا كانت هناك مكتبة ثابتة وديناميكية في نفس الوقت ، فسيتم ربطها بالمكتبة الديناميكية إذا لم يتم تحديدها.
المكتبة هي شكل ثنائي من التعليمات البرمجية القابلة للتنفيذ التي يمكن تحميلها في الذاكرة بواسطة نظام التشغيل للتنفيذ. أي أن كود المصدر يتم تحويله إلى كود ثنائي المصدر ، وهو ما يعادل التشفير ، ويمكن للآخرين استخدام المكتبة ، ولكن لا يمكنهم رؤية محتويات المكتبة لكي يتم حجب المعلومات الحساسة عن المكتبة.
كيف تستعمل؟
يحتاج المستخدمون إلى أن يكون لديهم ملفات رأس ومكتبات.
المكتبة المنتجة (تنفيذ محدد ، تخزين. c ، .cpp)
عمل واستخدام مكتبات ثابتة:
قواعد التسمية:
اسم ملف المكتبة الثابتة يسمى "libxxx.a" ، ويسبق اسم المكتبة بـ "lib" ، واللاحقة هي ".a" ، و "xxx" هو اسم المكتبة الثابتة.
خطوات الإنتاج:
المواد الخام: كود المصدر ccc
إنشاء ملف .c بتنسيق .o ، gcc a.c b.c -c
التعبئة والتغليف. o
اسم المادة الخام لمكتبة rcs الثابتة
ar rcs libtest.a a.o b.o
استخدام المكتبة:
gcc test.c -I ./ -L./lib -lmycalc -o app
-L: حدد المسار للمكتبة
-l: حدد اسم المكتبة وأزل lib و. a
استخدام المكتبة:
يحصل المستخدمون على الدليلين أعلاه ويمكنهم استخدام المكتبة لتحقيق احتياجاتهم
تضمين ملفات الرأس في هذه المكتبة
عمل واستخدام مكتبات ديناميكية:
قواعد التسمية:
تتم تسمية المكتبة الديناميكية بشكل مشابه للمكتبة الثابتة ، بنفس البادئة "lib" واللاحقة ".so". لذلك ل "libmytime.so"
خطوات الإنتاج:
إنشاء ملف المصدر. o ، تحتاج إلى إضافة معلمة fpic
gcc a.c b.c -c -fpic(fPIC)
إيجابيات وسلبيات المكتبات الثابتة والمكتبات الديناميكية:
مكتبة ثابتة:
المزايا:
1. يتم تجميع المكتبة الثابتة في التطبيق وتحميلها بسرعة
2. لا يحتاج الناشر إلى توفير مكتبة ثابتة ، لأنه موجود بالفعل في التطبيق ويسهل نقله.
العيوب:
1. تدمير موارد النظام وإضاعة الذاكرة
2. مشكلة في التحديث والنشر والنشر.
مكتبة ديناميكية:
المزايا:
1. يمكنه تحقيق مشاركة الموارد بين العمليات ، ويمكنه مشاركة المكتبات الديناميكية. كما يتبين من الشكل أدناه ، فإن DynamicMath.so لديه نسخة واحدة فقط في الذاكرة. عند التحميل ، سيتم تحميل المكتبة الديناميكية في المنطقة المشتركة لمنطقة المستخدم.
2. ترقية البرنامج بسيطة ، لأنه لا يوجد كود مصدر للمكتبة في التطبيق. بعد الترقية ، طالما لم يتغير اسم المكتبة ، لم يتغير اسم الوظيفة والمعلمات ، وتم تحسين التنفيذ فقط ، يمكن تحميله. النجاح
3. يمكن للبرنامج التحكم عند تحميل المكتبة الديناميكية
العيوب:
الأحمال أبطأ من المكتبات الثابتة
يحتاج الناشر إلى توفير مكتبة ديناميكية تابعة

ليست هناك تعليقات:
إرسال تعليق