Programlamada Linker nedir?

llgfg.png


Linker, bir programın nesne modüllerini tek bir nesne dosyasına bağlamaya yardımcı olan bir yazılımdır. Bağlama işleminden sorumludur. Linker'lar ayrıca bağlantı düzenleyicileri olarak da adlandırılır. Linkleme, kod ve veri parçalarını tek bir dosyada toplama ve koruma işlemidir. Linker'lar ayrıca belirli bir modülü sistem kütüphanesine bağlar. Nesne modüllerini Assembly girdi olarak alır ve loader için çıktı olarak çalıştırılabilir bir dosya oluşturur. Bağlama işlemi hem kaynak kodun makine koduna çevrildiği derleme zamanında, hem de programın yükleyici tarafından belleğe yüklendiği yükleme zamanında gerçekleştirilir. Linker, bir programın derlenmesindeki son adımda gerçekleştirilir.

Düzen:

Kod:
Kaynak kod > Derleyici > Assembly > Nesne programı (OOP) > Linker > Yürütülebilir dosya (*.exe) > Loader

Özellikleri:
  • Sembol çözümleme: Linker, işlev ve değişken adları gibi sembolleri farklı nesne dosyaları ve kütüphaneler arasında çözümler.
  • Yer değiştirme: Linker, nesne dosyaları ve kütüphanelerdeki sembollerin adreslerini yürütülebilir programın son adres alanıyla eşleşecek şekilde ayarlayarak yer değiştirme gerçekleştirir.
  • Optimizasyon: Linker, yürütülebilir programın performansını ve boyutunu iyileştirmek için ölü kod eleme ve fonksiyon inlining gibi optimizasyon işlemleri gerçekleştirebilir.
  • Kütüphane yönetimi: Linker kütüphaneleri yönetebilir, yalnızca gerekli fonksiyonları bağlayabilir ve yürütülebilir programın boyutunu en aza indirmek için kullanılmayan kodu kaldırabilir.
  • Hata ayıklama bilgileri: Linkler, çalıştırılabilir programa hata ayıklama bilgilerini ekleyerek geliştirme sırasında hata ayıklamayı ve analiz etmeyi kolaylaştırabilir.
  • Çapraz platform desteği: Linker, farklı mimariler ve işletim sistemleri de dahil olmak üzere farklı platformlar için çalıştırılabilir programlar oluşturabilir.
  • Artımlı bağlama: Linker, yürütülebilir programın tamamını yeniden oluşturmaya gerek kalmadan tek tek nesne dosyalarında değişiklik yapılmasına olanak tanıyan artımlı bağlama gerçekleştirebilir.
  • Versiyonlama: Linker, paylaşılan kütüphanelerin sürümlendirilmesini destekleyerek bir kütüphanenin birden fazla sürümünün bir arada bulunmasına olanak tanır ve uyumluluk sorunlarını önler.
  • Bağlantı zamanı kod üretimi: Linker, derleme zamanı yerine bağlama işlemi sırasında kod oluşturulmasına olanak tanıyan bağlantı zamanı kod üretimi gerçekleştirebilir.
  • Linker komut dosyaları: Linker, nesne dosyalarının ve kütüphanelerin nasıl birbirine bağlanacağını belirten yapılandırma dosyaları olan Linker komut dosyalarını kullanabilir. Linker komut dosyaları, çalıştırılabilir programın bellek düzenini belirtmek için de kullanılabilir.
Linker-and-Loader.jpg


Linker'lar, geliştirmiş olduğunuz yazılımları farklı Class'lar ile, yani nesne tabanı ile geliştirdiğiniz zaman veya normal geliştirdiğiniz yazılımlarda her zaman çalışan bir araçtır.

Ana amacı ise geliştirilen yazılımın parçalarını birleştirmektir. Siz yazılım geliştirirken birçok dosya oluşturuyorsunuz ve hepsi bir bütün halinde çalışıyor bildiğiniz gibi. Bunu sağlayan ana parça Linker'dir. Linker OOP için hayati bir öneme sahip bileşendir. Visual Studio gibi IDE'ler içerisinde dahili olarak bulunmaktadır ve derleme sırasınada çalışmaktadır.

Özellikle geliştirmiş olduğunuz yazılımı yazarken kullandığınız programlama dilinin kendi çöp toplayıcısı (garbage collector) özelliği varsa (C# gibi) çok daha etkili çalışmaktadır Linker.

Okuduğunuz için teşekkürler.

Kaynak:
 

Technopat Haberler

Yeni konular

Geri
Yukarı