Bağlayıcılar Nedir ve Nasıl Çalışırlar?
Bağlayıcılar, yürütülebilir bir dosya oluşturmak için nesne dosyalarını ve kitaplıkları birbirine bağlayan bir yazılım türüdür. İşletim sistemlerinin, uygulamaların ve diğer yazılımların geliştirilmesinde kullanılırlar. Bağlayıcılar, derleyiciler ve kitaplıklar tarafından oluşturulan nesne dosyalarını girdi olarak alır ve çıktı olarak yürütülebilir bir dosya oluşturur.
Bağlayıcılar, aşağıdakiler de dahil olmak üzere çeşitli işlevleri yerine getirir:
1. Sembolik referansların çözümlenmesi: Bir program üst düzey bir dilde yazıldığında, geçerli kaynak kodunda tanımlanmayan işlevlere veya değişkenlere sembolik referanslar içerebilir. Bağlayıcı, diğer nesne dosyaları veya kitaplıklardaki işlevlerin veya değişkenlerin tanımlarını bularak bu referansları çözer.
2. Kodun ve verilerin yeniden konumlandırılması: Nesne dosyaları derleyici tarafından oluşturulduğunda, nesne dosyasının konumuna göre kod ve veriler içerebilir. Bağlayıcı bu kodu ve verileri yürütülebilir dosyadaki doğru konuma yeniden yerleştirir.
3. Gereksiz kod ve verilerin ayıklanması: Bağlayıcı, son yürütülebilir dosyada gerekmeyen kod ve verileri silerek boyutunu küçültebilir ve performansını artırabilir.
4. Yürütülebilir bir dosya oluşturma: Bağlayıcı, nesne dosyalarını ve kitaplıklarını girdi olarak alır ve hedef makinede çalıştırılabilecek yürütülebilir bir dosya oluşturur.
Birçok bağlayıcı türü mevcuttur, bunlar arasında:
1. Dinamik bağlayıcılar: Bu bağlayıcılar, bağımlı olduğu kitaplıklara ve diğer nesne dosyalarına referans içeren yürütülebilir bir dosya oluşturur. Program çalıştırıldığında, dinamik bağlayıcı bu bağımlılıkları yükler ve çalışma zamanındaki sembolik referansları çözer.
2. Statik bağlayıcılar: Bu bağlayıcılar, içine gömülü tüm bağımlılıkları içeren yürütülebilir bir dosya oluşturur. Bu, programın herhangi bir ek bağımlılık olmadan çalıştırılabileceği anlamına gelir, ancak aynı zamanda yürütülebilir dosyanın boyutunun daha büyük olacağı anlamına da gelir.
3. Paylaşılan bağlayıcılar: Bu bağlayıcılar, birden fazla program tarafından kullanılabilen kod ve veri koleksiyonları olan paylaşılan kitaplıkları içeren yürütülebilir bir dosya oluşturur. Bir program paylaşılan bir kitaplığa bağlandığında, yalnızca ihtiyaç duyulan belirli işlevler ve değişkenler son yürütülebilir dosyaya dahil edilir. ve kitaplıklar ve hedef makinede çalıştırılabilecek yürütülebilir bir dosya oluşturun. Sembolik referansları çözümlemek, kod ve verileri yeniden konumlandırmak, gereksiz kod ve verileri çıkarmak ve yürütülebilir bir dosya oluşturmak dahil olmak üzere çeşitli işlevleri yerine getirirler. Dinamik, statik ve paylaşılan bağlayıcılar dahil olmak üzere çeşitli bağlayıcı türleri mevcuttur.