A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Linker (angl. výslovnost ; česky sestavovací program) je v informatice počítačový program, který jeden nebo více objektových souborů vygenerovaných překladačem spojí do jediného spustitelného souboru (tzv. linkování). Výsledný soubor může být přímo spustitelný jádrem operačního systému nebo knihovnou, která je později využívána jiným programem. Statická knihovna je připojována k jinému programu, dynamická knihovna je s programem spojována při jeho zavádění do paměti (zavaděč vyvolá dynamický linker).
Funkce linkeru
Objektové soubory jsou moduly programu obsahující strojový kód a informace pro linker. Mohou obsahovat tři různé definice symbolů:
- definované symboly – mohou být volány z externích modulů
- nedefinované symboly – volají funkce v externích modulech, uvnitř kterých jsou definovány
- lokální symboly – interně definované symboly používané například při relokaci
Ve zkratce, účelem linkeru je řešení referencí nedefinovaných symbolů vyhledáváním symbolů v ostatních objektových souborech, které je definují. Nedefinovaný symbol je nahrazen adresou symbolu, který jej definuje.
Linker často pracuje s objekty, které jsou uspořádány ve větších celcích, tzv. knihovnách. Některé linkery neobsahují na výstupu celou knihovnu, ale obsahují pouze její symboly, na které je odkazováno z objektových souborů případně jiných knihoven. Existuje celá řada knihoven majících různý účel. Jedna nebo více systémových knihoven bývají obvykle připojovány v linkovacím procesu standardně.
Linker se také stará o umisťování objektů v adresním prostoru programu. Používá k tomu relokační kód, který dokáže přesunout spodní mez adresního prostoru (referenční adresa) na jiný základ. Jelikož překladač obvykle neví, kam bude objekt v paměti umístěn, je objektu obvykle přidělena nejnižší možná spodní adresa a to nula. Relokační strojový kód může obsahovat příkaz pro přesměrování absolutních skoků, načtení a uložení.
Výstup spustitelný linkerem může před tím, než je program zaveden do paměti (těsně před spuštěním) vyžadovat ještě jeden průchod relokačním cyklem. U hardwaru umožňujícím využití virtuální paměti je tento cyklus vypuštěn, neboť každému programu je přidělen vlastní adresní prostor tak, že nemůže dojít ke konfliktu, ačkoliv všechny programy budou načteny se stejnou referenční adresou.
Sdílené knihovny
Moderní prostředí operačních systémů umožňuje tzv. dynamické sestavování, řešící některé nespecifikované symboly až po spuštění programu, z čehož vyplývá, že spustitelný soubor stále obsahuje nespecifikované symboly a seznam objektů a knihoven obsahujících jejich definice. Tyto objekty a knihovny se načtou až při spuštění programu, kdy se provede konečné sestavení.
Tento přístup má dvě výhody:
- často používané knihovny (např. standardní knihovna jazyka C) nemusí být obsaženy v každém adresním prostoru každého programu zvlášť, ale pouze jednou ve sdílené části paměti
- pokud je chybně fungující knihovna nahrazena, všechny programy, které k ní dynamicky přistupují mohou po svém restartu z této změny těžit, avšak programy, které se na funkci obsaženou v knihovně odkazují staticky musí být nejprve přelinkovány
Relaxace
Protože překladač nemá žádné informace o rozložení objektů v konečném výstupu, nemůže využít zkrácené nebo účinnější instrukce, které vyžadují adresy jiných objektů. Například skoková instrukce může být vyjádřena absolutní adresou nebo offsetem vztahujícím se k momentální pozici, přičemž hodnota offsetu může mít v závislosti na vzdálenosti od cíle různou délku. Generováním nejkonzervativnějších instrukcí (obvykle jsou to ty největší relativní či absolutní varianty, to závisí na platformě) a přidáním oddychových nápověd, je možné během konečného sestavování tyto nahradit kratšími a efektivnějšími instrukcemi. Tento krok je možné provést až poté, co byl celý kód přečten a byly stanoveny dočasné adresy. Proces relaxace pak provede přeadresování, což umožní celkové odlehčení programu. Nahrazené posloupnosti instrukcí jsou kratší, což tomuto procesu umožňuje vždy počítat s optimálním řešením pevného uspořádání objektů. Pokud tomu tak není, dojde ke konfliktu, a linker musí zvážit její výhody či další možnosti.
Související články
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antény
Chemické zdroje elektriny
Chladenie v elektrotechnike
Elektrická sústava automobilu
Elektrická trakcia
Elektrické prístroje
Elektrické súčiastky
Elektrické spotrebiče
Elektrické stroje
Čítanie (elektrotechnika)
Činný výkon
Štatistická dynamika
Živý vodič
Admitancia
Antiparalelné zapojenie
Asynchrónny motor
Blúdivý prúd
Bočník (elektrotechnika)
Diak (polovodičový prvok)
Displej s kvapalnými kryštálmi
Elektrická inštalácia
Elektrická rezonancia
Elektrická sila
Elektrická vodivosť
Elektrické zariadenie
Elektrický obvod
Elektrický zvonec
Elektroenergetika
Elektromer
Elektrometer
Elektromobil
Elektromotor
Elektromotorické napätie
Elektrotechnický náučný slovník
Elektrotechnika
Elektrotechnológia
Fázor
Faradayova klietka
Frekvencia (fyzika)
Graetzov mostík
Impedancia
Indukčnosť
Induktancia
Istič
Izolácia (elektrotechnika)
Izolant
Jadro vodiča
Jednobran
Jednosmerný prúd
Joulovo teplo
Katóda
Koaxiálny kábel
Kompenzácia účinníka
Konduktometria
Konektor (elektrotechnika)
Korónový výboj
Lanko (elektrotechnika)
Leptanie
Logické hradlo
Magnetická susceptibilita
Magnetizácia (veličina)
Merný elektrický odpor
Mobilné zariadenie
Napájací zdroj
Napäťový chránič
Napäťový násobič
Nortonova veta
Odpínač
Odpojovač
OLED
Olovený akumulátor
Paralelné zapojenie
Peltierov článok
Plošná hustota elektrického prúdu
Poistka (elektrotechnika)
Posuvný prúd
Prúdový chránič
Prenosové médium
Prieletový klystrón
Primárny elektrochemický článok
Reaktancia
Rekuperácia (dopravný prostriedok)
Relé
Reproduktorová výhybka
Rezistancia
Rozhranie (interface)
Sériové zapojenie
Seebeckov jav
Sekundárny elektrochemický článok
Settopbox
Skrat
Sonar
Spínač
Spínaný zdroj
Straty v mikropásikových vedeniach
Striedavý prúd
Stupeň ochrany krytom
Svetelná výbojka
Symetrizačný člen
Technická normalizácia
Tepelné relé
Tepelne vodivostný detektor
Termočlánok
Théveninova veta
Transformátor
Transformátor s fázovou reguláciou
Trojfázová sústava
Tuhá fáza (elektronika)
Tyratrón
Usmerňovač (elektrotechnika)
Uzemnenie
Uzol (vodiče)
Vírivý prúd
Výbojka
Varistor
Ventilátor
Vodič (elektrotechnika)
Voltov stĺp
Vstavaný systém
Zásuvka (elektrotechnika)
Zdroj (elektrotechnika)
Zisk antény
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk