Linker

Popis funkce sestavovacího programu (zde je cílová platforma
MS Windows)

Linker (angl. výslovnost [ˈliŋkə(r)]; č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ů:

  1. definované symboly – mohou být volány z externích modulů
  2. nedefinované symboly – volají funkce v externích modulech, uvnitř kterých jsou definovány
  3. 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:

  1. č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
  2. 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

Read other articles:

AIM-7 SparrowLa messa in posizione di un AIM-7MDescrizioneTipomissile aria-aria Sistema di guidaradar semi-attiva CostruttoreRaytheon Company In servizio1958 Costo125.000 $ Peso e dimensioniPeso231 kg Lunghezza3,64 m Larghezza0,81 m Diametro0,20 m PrestazioniVettoriF-14 TomcatF-15 EagleF-16 Fighting FalconF/A-18 HornetF-104 Starfighter Gittata26 km (AIM-7C) 44 km (AIM-7D) 50 km (AIM-7E) 70 km (AIM-7F/M/P) Velocità massimaMach 2,5 (AIM-7A/B) Mach 4 (AIM-7C/E/F/M) Motoremotore a razz...

 

Тео́рия «основно́го ми́фа» — теория в области индоевропейской мифологии, суть которой заключается в выделении основного её мифологического сюжета — сюжета борьбы Громовержца со Змеем. Содержание 1 История создания теории 2 Суть теории 2.1 Славянская мифология 3 Кр�...

 

Execution of a convict who is actually innocent False execution redirects here. For the situation where a person falsely believes they will be executed, see Mock execution. Wrongful execution is a miscarriage of justice occurring when an innocent person is put to death by capital punishment. Cases of wrongful execution are cited as an argument by opponents of capital punishment, while proponents say that the argument of innocence concerns the credibility of the justice system as a whole and ...

Oleg Gennadyevich SentsovOleg Sentsov pada 2019Lahir13 Juli 1976 (umur 47)Simferopol, Oblast Krimea, RSS Ukraina, Uni SovietAlmamaterUniversitas Ekonomi Nasional KyivPekerjaanPembuat filmTahun aktif2008–kiniAnak2 Oleg Gennadyevich Sentsov (Ukrainian: Олег Геннадійович Сенцовcode: uk is deprecated , Oleh Hennadiiovych Sentsov; lahir 13 Juli 1976) adalah seorang pembuat film, penulis dan aktivis Ukraina[1] dari Krimea. Sebagai pembuat film, ia membuat ...

 

PiyunganKapanewonPeta lokasi Kapanewon PiyunganNegara IndonesiaProvinsiDaerah Istimewa YogyakartaKabupatenBantulPemerintahan • PanewuMuhammad Baried, S.Sos. M.MPopulasi • Total82,862 jiwaKode Kemendagri34.02.14 Kode BPS3402120 Luas32,54 km²Desa/kelurahan3Situs webhttps://kec-piyungan.bantulkab.go.id Piyungan (Jawa: ꦥꦶꦪꦸꦁꦔꦤ꧀, translit. Piyungan) adalah sebuah kapanewon, atau Kecamatan/Distrik di Kabupaten Bantul, Provinsi Daerah Istimewa Y...

 

Faktor yang memengaruhi efek inotropik, inotropik positif (+), inotropik negatif (-) Inotropik adalah zat yang dapat memengaruhi daya kontraksi otot.[1] Faktor yang meningkatkan kontraktilitas disebut sebagai aksi inotropik positif.[2] Faktor yang menurunkan kontraktilitas memiliki aksi inotropik negatif.[2] Agen inotropik positif biasanya menstimulasi masuknya Ca2+ ke dalam sel otot jantung, kemudian akan meningkatkan tekanan dan durasi dari kontraksi ventrikular.[...

العلاقات الكرواتية الكوستاريكية كرواتيا كوستاريكا   كرواتيا   كوستاريكا تعديل مصدري - تعديل   العلاقات الكرواتية الكوستاريكية هي العلاقات الثنائية التي تجمع بين كرواتيا وكوستاريكا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية لل�...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (نوفمبر 2019) كأس إيطاليا 1991–92 تفاصيل الموسم كأس إيطاليا  النسخة 45  البلد إيطاليا  التاريخ بداية:21 أغسطس 1991  ...

 

Turkish public university located in Marmara, İstanbul, Turkey This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (July 2019) (Learn how and when to remove this message) Marmara UniversityMarmara ÜniversitesiTypePublicEstablished1883: Hamidiye Ticaret Mekteb-i Âlis 1959: Istanbul Economy and Commerce Academy 1982...

Dany Chamoun داني شمعونDany Chamoun mengenakan sebuah kaos dengan lambang Harimau Militan. Informasi pribadiLahir(1934-08-26)26 Agustus 1934Deir el Qamar, LebanonMeninggal21 Oktober 1990(1990-10-21) (umur 56)BeirutPartai politikPartai Liberal NasionalSunting kotak info • L • B Dany Chamoun (Arab: داني شمعون) (26 Agustus 1934 – 21 Oktober 1990) adalah seorang politikus Lebanon berpengaruh. Sebagai penganut Gereja Maronit, putra bungsu dari mantan...

 

此條目可参照外語維基百科相應條目来扩充。若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 Osagyefo克瓦米·恩克鲁玛第三届非洲联盟主席任期1965年10月21日—1966年2月24日前任贾迈勒·阿卜杜-纳赛尔继任约瑟夫·亚瑟·�...

 

Untuk naskah dengan nama serupa, lihat Codex Claromontanus. Folio 38 recto memuat teks Matius 20:27-30 Codex Claromontanus V, diberi kode h dalam sistem penomoran tradisional atau kode 12 dalam sistem penomoran Beuron, adalah sebuah naskah Perjanjian Baru dalam bahasa Latin dari abad ke-4 atau ke-5. Teks ditulis pada lembaran-lembaran vellum. Deskripsi Naskah tulisan tangan ini memuat teks keempat Injil kanonik dengan sejumlah kekosongan pada Injil Matius 1:1-3:15; 14:44-18:12. Ditulis pada 6...

سفارة ألمانيا في المملكة المتحدة ألمانيا المملكة المتحدة الإحداثيات 51°29′54″N 0°09′15″W / 51.49825°N 0.15425°W / 51.49825; -0.15425   البلد المملكة المتحدة  المكان بلغرافيا العنوان Belgrave Square [الإنجليزية]‏ الموقع الالكتروني الموقع الرسمي تعديل مصدري - تعديل   سفارة أل�...

 

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要編修,以確保文法、用詞、语气、格式、標點等使用恰当。 (2013年8月6日)請按照校對指引,幫助编辑這個條目。(幫助、討論) 此條目剧情、虛構用語或人物介紹过长过细,需清理无关故事主轴的细节、用語和角色介紹。 (2020年10月6日)劇情、用語和人物介紹都只是用於了解故事主軸,輔助�...

 

Women becoming Anglican clergy Part of a series onAnglicanism TheologyChristian theologyAnglican doctrineThirty-nine ArticlesBooks of HomiliesCaroline DivinesChicago–Lambeth QuadrilateralEpiscopal politySacramentsMary Ministry and worshipMinistryMusicEucharistKing James Version (Book of Common Prayer)Liturgical yearChurchmanship (High, Low, Central, Broad)MonasticismSaintsJesus Prayer ChristianityJesus ChristPaulChristian ChurchFirst seven ecumenical councils Background and historyCeltic Ch...

Jacques PrasNazionalità Francia Ciclismo SpecialitàStrada Termine carriera1954 CarrieraSquadre di club 1947-1948 Peugeot1949 Terrot1950 Alcyon-Dunlop Terrot1951-1952Individuale1953-1954 Rochet   Modifica dati su Wikidata · Manuale Jacques Pras (Bréville, 12 giugno 1924 – Cognac, 19 luglio 1992[1]) è stato un ciclista su strada francese. Professionista tra il 1947 ed il 1954, vinse una tappa al Tour de France. Indice 1 Carriera 2 Palmarès...

 

This article uses bare URLs, which are uninformative and vulnerable to link rot. Please consider converting them to full citations to ensure the article remains verifiable and maintains a consistent citation style. Several templates and tools are available to assist in formatting, such as reFill (documentation) and Citation bot (documentation). (September 2022) (Learn how and when to remove this message) Not to be confused with Kamuning. Village in Guam, United StatesTamuning TamunengVillageS...

 

Election For related races, see 1902 United States gubernatorial elections. 1902 New Hampshire gubernatorial election ← 1900 November 4, 1902 1904 →   Nominee Nahum J. Bachelder Henry F. Hollis Party Republican Democratic Popular vote 42,115 33,844 Percentage 53.19% 42.75% County results Bachelder:      40–50%      50–60%      60–70% Hollis:      40–50% G...

Map of Greece Албания Северная Македония Болгария Турция ГРЕЦИЯ АФИНЫ Салоники Кавала ---Тасос Александруполис --Самофракия Корфу Игуменица Лариса Волос Янина Халкис Патрас Коринф . Нафплион . Спарта . Ареополис . Пирей Лаврион Ираклион М а к е д о н и я Фракия Эпир Фессалия Эвбе�...

 

دوري كرة القدم النرويجي الدرجة الأولى 1990 تفاصيل الموسم الدوري النرويجي الدرجة الأولى  النسخة 42  البلد النرويج  المنظم اتحاد النرويج لكرة القدم  البطل نادي سوغندال لكرة القدم  عدد المشاركين 24   دوري كرة القدم النرويجي الدرجة الأولى 1989  دوري كرة القدم النر�...