Genel anlamda sistem kitaplığı, işletim sistemleri veya uygulama yazılımları tarafından çalışma veya derleme sırasında kullanılan bir veri deposudur.
Sistem kitaplıkları, yaygın olarak kullanılan alt rutinleri ve işlevleri içerir. Programlama ile ilgili olarak, kütüphaneler grafikler, diziler, diyaloglar ve daha fazlasıyla çalışmak için ortak sınıfları depolar.
Sistem kitaplığı kavramı, hem bireysel programlara hem de bir bütün olarak işletim sistemlerine uygulanabilir ve bu hem Windows, UNIX ve Mac aileleri için geçerlidir.
"Kütüphane" tanımı ilk olarak 1951'de M. Wilkes, D. Wheeler ve S. Gill'in "Programming for Electronic Calculate Machines" kitabında ortaya çıktı.
Çalışma prensibine göre sistem kütüphaneleri dinamik ve statik olarak ikiye ayrılır.
Dinamik kitaplıklar
Dinamik bağlantı kitaplıkları, çalışan bir program tarafından istendiğinde belleğe yüklenen bir bileşendir. Bu nedenle, alt program kodunu her uygulamaya kopyalamaya gerek yoktur - en yaygın işlevler bir kitaplık olarak depolanır.
Ayrıca RAM'e yüklenen kitaplık aynı anda birkaç uygulama tarafından kullanılabilir ve bu da sistem kaynaklarından tasarruf sağlar. Bu, özellikle bilgi işlemin ilk günlerinde doğruydu.
Windows OC'deki Dinamik Bağlantı Kitaplığı dosyaları.dll (Dinamik Bağlantı Kitaplığı) uzantısına sahiptir ve system32 dizininde depolanır. UNIX benzeri sistemlerdeki benzer bileşenlere paylaşılan nesneler denir ve Mac OS -.dlyb'de.so uzantısına sahiptir.
Maurice Wilkes ve diğerleri, bir kitaplığa aşağıdaki tanımı verdi - bireysel, sık karşılaşılan (standart) hesaplama işlemleri için kısa, önceden hazırlanmış bir program.
Program yürütmeye yönelik modüler bir yaklaşımın tüm avantajlarını elde etmek mümkün değildi. Bunun nedeni, programın aynı kitaplığın (DLL) aynı anda farklı sürümlerini talep ettiği DLL cehennemi olarak bilinen olgudur. Bu, işletim sisteminin arızalanmasına ve güvenilirliğinin azalmasına yol açar.
Windows ailesinin modern işletim sistemlerinde, çakışmaları önlemek için, güvenilirliği artıran, ancak modülerlik ilkesiyle çelişen farklı kitaplık sürümlerinin kullanımına izin verilir.
Statik kitaplıklar
Statik kütüphaneler ayrıca alt program ve fonksiyon kodlarını da saklar, ancak dinamik olanlardan farklı olarak, programları derlerken kullanılırlar. Yani, gerekli kodun tamamı programa dahil edilmiştir. Uygulama, dinamik kitaplıklardan bağımsız olarak bağımsız hale gelir, ancak boyutu büyür.
Kural olarak, Windows'ta bu tür kitaplıkların dosyaları, UNIX benzeri sistemlerde.lib uzantısına sahiptir -.a.
C, C ++, Pascal gibi derlenmiş dillerin çoğuyla çalışmak statik kitaplıklar olmadan imkansızdır.