Co jsou Linkery a jak fungují?
Linkery jsou typem softwaru, který propojuje soubory objektů a knihovny za účelem vytvoření spustitelného souboru. Používají se při vývoji operačních systémů, aplikací a dalšího softwaru. Linkery berou objektové soubory generované kompilátory a knihovnami jako vstup a generují spustitelný soubor jako výstup.
Linkers provádějí několik funkcí, včetně:
1. Řešení symbolických odkazů: Když je program napsán v jazyce vyšší úrovně, může obsahovat symbolické odkazy na funkce nebo proměnné, které nejsou definovány v aktuálním zdrojovém kódu. Linker řeší tyto odkazy nalezením definic funkcí nebo proměnných v jiných objektových souborech nebo knihovnách.
2. Přemístění kódu a dat: Když kompilátor generuje objektové soubory, mohou obsahovat kód a data, která jsou relativní k umístění objektového souboru. Linker přemístí tento kód a data do správného umístění ve spustitelném souboru.
3. Odstraňování nepotřebného kódu a dat: Linker může odstranit kód a data, která nejsou potřebná v konečném spustitelném souboru, snížit jeho velikost a zlepšit jeho výkon.
4. Vytvoření spustitelného souboru: Linker převezme jako vstup objektové soubory a knihovny a vygeneruje spustitelný soubor, který lze spustit na cílovém počítači.……Je k dispozici několik typů linkerů včetně:… Dynamické linkery: Tyto linkery vytvářejí spustitelný soubor, který obsahuje odkaz na knihovny a další objektové soubory, na kterých závisí. Když je program spuštěn, dynamický linker načte tyto závislosti a vyřeší všechny symbolické odkazy za běhu.
2. Statické linkery: Tyto linkery vytvářejí spustitelný soubor, který obsahuje všechny v něm vložené závislosti. To znamená, že program lze spustit bez jakýchkoli dalších závislostí, ale také to znamená, že velikost spustitelného souboru bude větší.
3. Sdílené linkery: Tyto linkery vytvářejí spustitelný soubor, který obsahuje sdílené knihovny, což jsou kolekce kódu a dat, které může používat více programů. Když je program propojen se sdílenou knihovnou, do konečného spustitelného souboru jsou zahrnuty pouze specifické funkce a proměnné, které jsou potřeba. a knihoven a vytvořit spustitelný soubor, který lze spustit na cílovém počítači. Provádějí několik funkcí, včetně řešení symbolických odkazů, přemístění kódu a dat, odstranění nepotřebného kódu a dat a vytvoření spustitelného souboru. K dispozici je několik typů linkerů, včetně dynamických, statických a sdílených linkerů.