Linux Yazılım Notları

Kütüphane Uyumluluğu

Dinamik kütüphanelerin gelişimleri sürecinde, dışarıdan erişilebilir arayüzlerinde (public interface) ve içsel alanlarında (private) değişiklikler olmaktadır. Yapılan değişikliğin seviyesine kütüphanelerin iki grup versiyonu çıkmaktadır:

  • major: Geçmişe doğru uyumluluğun korunmadığı, kapsamlı değişikliklerin yapıldığı versiyonlardır. Daha önce sağlanan metotların kaldırılması veya parametlerinin değiştirilmesi bu tip bir değişikliğe neden olmaktadır.
  • minor: Geçmişe doğru uyumluluğunun korunduğu versiyonlardır. Kütüphanenin, sağladığı eski özelliklere ilave, yeni metotlar eklemesi veya var olanların iyileştirmesi durumunda bu tip yeni versiyonlar çıkmaktadır.

Not: İngilizce'de kütüphanelerin dışardan erişime kapalı alanları için internal ve private kelimelerinin kullanıldığını görmekteyiz. Biz incelememizde bu kelimelere karşılık olarak çoğunlukla içsel kelimesini kullanacağız.

Bir kütüphanenin yeni bir minor versiyonu çıkması durumunda, kütüphanenin bir önceki versiyonuna bağımlı bir uygulama, yeniden derlenmeksizin, bu yeni versiyonu kullanabilmektedir. Ayrıca bu sayede, çalışabilir bir uygulama yeni bir sisteme taşındığında, yeni sistem önceki sistemdeki kütüphanelerin tam olarak aynılarını bulundurmak zorunda değildir. Kuşkusuz bu durumda uygulama, kütüphanenin sağladığı yeni özelliklerden faydalanamayacak fakat çalışmaya devam edecektir

Bir kütüphanenin major versiyonu çıkması durumunda ise bu kütüphaneyi kullanmakta olan uygulamalar üzerinde kaynak kod düzeyinde değişiklik yapılmalı ve uygulamalar yeniden derlenmelidir.

Kütüphanelerin erişebilir alanları dışında bir de gizli içsel (private) alanları bulunmaktadır. Bir kütüphanenin içsel alanındaki değişikliklerden onu kullanan uygulamaların etkilenmemesi beklenmektedir.

Konumuzun bundan sonraki bölümünde, uygulamaların kütüphanelerin içsel alanlarına bağımlılığı üzerinde duracağız.