Tavsiye, 2024

Editörün Seçimi

Linker ve Yükleyici Arasındaki Fark

Linker ve Loader, bir programın yürütülmesinde büyük rol oynayan yardımcı programlardır. Bir programın Kaynak kodu yürütmeden önce derleyici, montajcı, bağlayıcı, yükleyici ilgili sırayla geçer. Bir yandan, bağlayıcının montajcı tarafından oluşturulan nesne kodlarını aldığı ve çalıştırılabilir modülü oluşturmak için bunları birleştirdiği. Diğer taraftan, yükleyici bu çalıştırılabilir modülü yürütmek için ana belleğe yükler. Karşılaştırma tablosu yardımıyla Linker ve loader arasındaki farkı tartışalım.

Karşılaştırma Tablosu

Karşılaştırma için temelbağlayıcıyükleyici
TemelBir kaynak programın çalıştırılabilir modülünü oluşturur.Yürütülebilir modülü ana belleğe yükler.
GirişBir assembler tarafından oluşturulan nesne kodunu girdi olarak alır.Bir linker tarafından oluşturulan çalıştırılabilir modülü alır.
fonksiyonYürütülebilir bir modül oluşturmak için kaynak kodun tüm nesne modüllerini birleştirir.Adresleri yürütmek için ana bellekteki yürütülebilir bir modüle tahsis eder.
Tür / YaklaşımBağlantı Editör, Dinamik linker.Mutlak yükleme, Taşınır yükleme ve Dinamik Çalışma zamanı yükleme.

Linker'un tanımı

Birleştirici, bir kaynak programın nesne kodunu oluşturur ve bağlayıcıya verir. Bağlayıcı bu nesne kodunu alır ve programın çalıştırılabilir kodunu oluşturur ve Yükleyici'ye verir.

Üst düzey dil, programların bazı yerleşik kütüphaneleri ve başlık dosyaları vardır . Kaynak program, tanımı yerleşik kütüphanelerde saklanan bazı kütüphane fonksiyonlarını içerebilir. Bağlayıcı bu işlevi yerleşik kütüphanelere bağlar. Yerleşik kitaplıkların bulunamaması durumunda derleyiciye bilgi verir ve derleyici daha sonra hatayı oluşturur.

Bazen büyük programlar, modül adı verilen alt programlara ayrılır. Şimdi bu modüller derlendiğinde ve birleştirildiğinde, kaynak programın nesne modülleri üretilir. Bağlayıcı, kaynak programın tek bir çalıştırılabilir dosyasını üretmek için tüm nesne modüllerini birleştirme / bağlama sorumluluğuna sahiptir. İki tip bağlayıcı var.

Bağlantı Editörü : Taşınır, çalıştırılabilir bir modül oluşturan bir bağlayıcıdır.

Dinamik Bağlayıcı : Yük modülü / çalıştırılabilir modül üretilinceye kadar bazı harici modüllerin bağlantılarını korur / erteler. Burada bağlama yükleme süresi veya çalışma süresi boyunca yapılır.

Yükleyicinin tanımı

Halen yürütülecek olan program bilgisayarın ana hafızasında bulunmalıdır. Bağlayıcı tarafından oluşturulan bir programın yürütülebilir dosyasını / modülünü yürütmek için ana belleğe yüklemek, işletim sisteminde bir program olan yükleyicinin sorumluluğundadır. Bellek alanını ana bellekteki çalıştırılabilir modüle tahsis eder.

Üç çeşit yükleme yaklaşımı vardır:

  • Mutlak yükleme
  • Değiştirilebilir yükleme
  • Dinamik çalışma zamanı yükleme

Mutlak yükleme : Bu yaklaşım, bir programın çalıştırılabilir dosyasını her seferinde aynı ana hafıza konumuna yükler. Ancak, bir programcının bazı modülleri ana belleğe yüklemek için atama stratejisinin farkında olması gibi bazı dezavantajları vardır. Programa, programa bir miktar ekleme ve silme dahil olmak üzere değiştirilme durumunda, programın tüm adresleri değiştirilmelidir.

Yerinden çıkarılabilir yükleme: Bu yaklaşımda, derleyici veya montajcı gerçek ana bellek adresini üretmez . Göreceli adresleri üretir.

Dinamik Çalışma Zamanı yüklemesi : Bu yaklaşımda, bir programın mutlak adresi, çalıştırılabilir bir modülün talimatı gerçekten yürütüldüğünde oluşturulur. Çok esnektir, yüklenebilir modül / çalıştırılabilir modül ana belleğin herhangi bir bölgesine yüklenebilir. Yürütme programı, aralarında kesintiye uğrayabilir ve bu sefer farklı bir ana hafıza adresinde diske ve ana hafızaya geri alınabilir.

Linker ve Loader Arasındaki Temel Farklar

  1. Bağlayıcı ve yükleyici arasındaki temel fark, bağlayıcının bir programın çalıştırılabilir dosyasını oluşturmasıdır, oysa yükleyici, bağlayıcıdan elde edilen çalıştırılabilir dosyayı yürütmek için ana belleğe yükler.
  2. Bağlayıcı, montajcı tarafından oluşturulan bir programın nesne modülünü alır . Bununla birlikte, yükleyici, bağlayıcı tarafından oluşturulan çalıştırılabilir modülü girer.
  3. Bağlayıcı, çalıştırılabilir modüller üretmek için programın tüm nesne modüllerini birleştirir, ayrıca nesne modülündeki kitaplık işlevini, yüksek düzeyli programlama dilinin yerleşik kitaplıklarına bağlar. Öte yandan, yükleyici, ana bellekteki yürütülebilir bir modüle yer ayırır.
  4. Bağlayıcı, bağlantı düzenleyici ve dinamik bağlayıcı olarak sınıflandırılabilir, oysa yükleyici mutlak yükleyici, yer değiştirebilir yükleyici ve dinamik çalışma zamanı yükleyici olarak sınıflandırılabilir.

Sonuç:

Bağlayıcı, bir programın nesne modüllerini montajcıdan alır ve bir programın çalıştırılabilir bir modülünü oluşturmak için bunları birbirine bağlar. Yürütülebilir modül daha sonra yükleyici tarafından yürütülmesi için ana belleğe yüklenir.

Top