الفرق بين static library و shared library

بعد أن فهمنا تقسيمة لغات البرمجة، والفرق بين اللغات المترجمة "compiled" والمفسرة "interpreted" سنفهم الآن ما الفرق بين المكتبة البرمجية الـ static والـ shared. إن كنت قد استخدمت أنظمة لينكس فإن المكتبات البرمجية تُسمى "someLibrary.so"، أما فى نظام التشغيل ويندوز تُسمى (someLibrary.dll)، أما فى نظام التشغيل ماك أو إس إكس تُسمى "someLibarary.dylib". وهذه المكتبات البرمجية هى مكتبات متشاركة "Shared Libraries".

أما المكتبات الـ static تُسمى غالباً "something.a" أو "something.lib" والآن دعونا نفهم فكرة كل نوع منهما لكى نعرف كيف نستفيد منهما فى كتابة برامجنا فى المستقبل القريب إن شاء الله.

المكتبة البرمجية بشكل عام "library" هى عبارة عن ملف مترجم إلى لغة الآلة يحتوى على وظيفة نحتاج أن نستخدمها. يمكننا كتابة كود يقوم بتحويل ملف الوورد "Word" إلى pdf ولكن لماذا نجهد أنفسنا ونعيد اختراع العَجَلَة! لما لا نستخدم المكتبة البرمجية المتخصصة فى ذلك بدلاً من كتابتها من جديد. هذه هى الفكرة؛ أننا لا نعيد كتابة الكود مرة أخرى بل نعيد استخدام هذه الوظائف أو الأكواد مرةً أخرى فى شكل مكتبات برمجية.

عندما نستخدم مكتبة برمجية متشاركة "shared library" هذا يعنى أن الكومبيلر عند ترجمة البرنامج إلى لغة الآلة يقوم بإضافة رابط "linking" لهذه المكتبة لكى يقوم البرنامج بإستخدامها للقيام بعملية أو وظيفة معينة.

أما عندما نستخدم مكتبة برمجية ثابتة "static library" فإن الكومبيلر عند ترجمة البرنامج إلى لغة الآلة يقوم بأخذ نسخة من أجزاء الكود المستخدمة داخل البرنامج من المكتبة البرمجية ويضيفهم فى كود البرنامج نفسه بلغة الآلة.

عندما نقوم بتشغيل البرنامج الذى استخدمنا فيه "shared library" فإن البرنامج يحتاج إلى وجود هذه المكتبة لكى يعمل، وإلا يتوقف البرنامج عن العمل. مثل ما يحدث فى البرامج الضخمة والألعاب على نظام ويندوز عندما يكون هناك أحد مكتبات dll غير موجود ولا يعمل البرنامج إلا إن تواجد الملف.

أما عند تشغيل البرنامج الذى استخدمنا فيه "static library" فإن البرنامج يعمل بشكل عادى جداً ﻷن الأكواد التى يحتاجها من المكتبة هى موجودة فى داخله حالياً ولذلك لم يعد بحاجه إلى المكتبة البرمجية مرةً أخرى.

عيوب استخدام الـ shared library :

- حدوث مشكلات فى تشغيل البرنامج بسبب غياب ملفات المكتبات التى يطلبها البرنامج

مميزات استخدام الـ shared library :

- حجم البرنامج قليل ويسهل نقله وتبادله على الإنترنت وتوزيعه.

عيوب استخدام الـ static library :

- حجم البرنامج يكون كبير؛ وخاصةً إن استخدمت الكثير من المكتبات وهذا ما يحدث دائماً.

مميزات استخدام الـ static library :

- البرنامج يعمل دائماً وليس هناك أى مشكلة ﻷنه لا يعتمد على مكتبات خارجية؛ أى كل الأكواد موجودة فى حزمة البرنامج نفسها.

أراك فى تدوينة أخرى قريباً على موقع أبانوب حنا للبرمجيات.
تعليقات الفيسبوك
0 تعليقات جوجل

0 تعليقات:

إرسال تعليق