Paylaşımlı Kütüphaneler
Paylaşımlı kütüphaneler, çalışabilir dosya içeriğine kopyalanmaksızın, proses adres alanına sonradan dinamik olarak yüklenen kütüphanelerdir. Birden çok proses aynı paylaşımlı kütüphane kodunu kullanabilmektedir. Statik kütüphanelerin aksine, aynı kütüphaneyi kullanan uygulamalar kütüphane kodunu direkt olarak kopyalamadıklarından, disk ve RAM üzerinde kazanç elde edilmektedir.
Paylaşımlı kütüphaneler ayrıca, program tarafından ihtiyaç halinde eklenti (plugin) olarak yüklenebilmekte ve bu sayede program ek özellikler kazanabilmektedir.
Uygulamanın kütüphane koduna katı bir şekilde bağlanmaması sayesinde, bir çok durumda uygulama yeniden derlenmeksizin kütüphane üzerinde değişiklik yapılabilmektedir.
Paylaşımlı kütüphaneleri yukarıda saydıklarımıza ek bir çok özelliği daha bulunmaktadır, yeri geldikçe bunlara değinmeye çalışacağız.
Bu bölümde, temel olarak, Linux altında, x86 ve x64 hedefli paylaşımlı kütüphanelerin nasıl oluşturulduğunu ve kullanıldığını inceleyeceğiz.
Öncesinde, kütüphanelere neden ihtiyaç duyulduğuna ve statik kütüphanelere bakmak faydalı olacaktır.
Paylaşımlı kütüphaneler için İngilizce shared libraries, shared objects, dynamic shared objects (DSOs) ve dynamically linked libraries (DLLs) ifadelerinin kullanıldığını görmekteyiz.