شما این‌جا هستید
کتابخانه های به اشتراک گذاشته شده (Managing Shared Libraries) LPIC-1 

کتابخانه های به اشتراک گذاشته شده (Managing Shared Libraries)


دوره آموزشی LPIC-1، جلسه سی و دوم

ایده ای که پشت سر این موضوع هست در اصل مدیریت کردن قطعه برنامه های پرکاربرد به صورت جدا از برنامه اصلی هست. بطور مثال یکی از کتابخانه های پرکاربرد، کتابخانه c (libc) می باشد که خیلی از ویژگی های سطح بالای زبان c را ارایه می دهد. نمونه دیگری از کتابخانه های پرکاربرد در مورد GUI یا همان رابط کاربری هستند. این کتابخانه ها اغلب بنام مجموعه ویجت ها نامیده می شوند چون آنها ویجت هایی را ارایه می دهند که توسط برنامه ها، اسکرول بارها، منوبارها و … استفاده می شوند. GIMP Tool Kit و Qt از نمونه های محبوبی هستند که به عنوان مجموعه ویجت شناخته می شوند و هر دو شامل تعداد زیادی کتابخانه هست در لینوکس از (glibc) یا (GNU C Library) که نسخه ای از کتابخانه های c هست استفاده می شود. فایل های کتابخانه براحتی می توانند به متن اصلی یک برنامه لینک شوند و توسط کامپایلر، کامپایل شوند، اما این ایده دارای اشکالات زیر می تواند باشد:

  • فایل اجرایی برنامه نهایی، سایز بزرگی خواهد داشت و این به معنی نیاز داشتن به فضای کافی بر روی دیسک و همچنین فضای کافی در RAM هنگام لود برنامه هست.
  • اگر چندین برنامه از یک کتابخانه استفاده کنند مشکل بزرگ شدن سایز فایل اجرایی هم به تناسب تکرار شده و همچنین فایل کتابخانه به ازای هر برنامه یک بار بر روی دیسک و رم ذخیره می گردد.
  • برنامه نمی تواند نتیجه مطلوبی در بهینه سازی کتابخانه ها بگیرد تا زمانی که بطور کلی مجدداً کامپایل نشود.

رفع مشکلات مطروحه با ایده کتابخانه های اشتراکی:
برای رفع مشکلات مطروحه، اغلب برنامه ها فایل کتابخانه خود را بصورت اشتراکی استفاده می کنند و هر برنامه فقط از کتابخانه های مورد نیاز خود استفاده می کند و فایل اجرایی برنامه فقط رفرنسی به یک کتابخانه دارد نه اینکه تمام آن کتابخانه را در خود جای دهد. در این حالت فقط فایل اجرایی برنامه اجرا می شود و در زمان نیاز به کتابخانه ها رجوع می کند و این باعث می شود حجم فایل اصلی کم بماند و یک بار فضا در رم و دیسک برای کتابخانه ها اختصاص داده شود. همچنین برنامه تنها با به روز رسانی فایل کتابخانه، می تواند نتیجه مطلوبی در بهینه سازی کتابخانه ها بگیرد.

نکته: کتابخانه های اشتراکی در لینوکس دقیقاً مانند (DLL) یا (Dynamic link libraries)   در ویندوز عمل می کنند.

پست‌های مرتبط

یک نظر بگذارید

قالب وردپرس