Linkeri ja laaduri erinevus

Autor: Laura McKinney
Loomise Kuupäev: 3 Aprill 2021
Värskenduse Kuupäev: 8 Mai 2024
Anonim
Linkeri ja laaduri erinevus - Tehnoloogia
Linkeri ja laaduri erinevus - Tehnoloogia

Sisu


Linker ja laadur on utiliidiprogrammid, millel on programmi täitmisel suur roll. Programmi lähtekood läbib enne täitmist kompilaatori, koostaja, linkeri ja laaduri vastavas järjekorras. Ühelt poolt, kus linker võtab kasutusele monteerija genereeritud objektikoodid ja ühendab need käivitatava mooduli genereerimiseks. Teiselt poolt, laadur laadib selle käivitatava mooduli täitmiseks põhimällu. Arutame võrdlusdiagrammi abil Linkeri ja laaduri erinevusi.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusLinkerLaadur
PõhilineSee genereerib lähteprogrammi käivitatava mooduli.See laadib käivitatava mooduli põhimällu.
SisendSisendina võetakse koostaja poolt genereeritud objektkood.See võtab linkeri genereeritud käivitatava mooduli.
FunktsioonSee ühendab kõik lähtekoodi objektmoodulid käivitatava mooduli genereerimiseks.See eraldab aadressid täitmiseks põhimälus asuvale käivitatavale moodulile.
Tüüp / lähenemisviisLingiredaktor, dünaamiline linker.Absoluutne laadimine, ümberlaaditav laadimine ja dünaamiline käitusaja laadimine.


Linkeri määratlus

Assembler genereerib lähteprogrammi objektikoodi ja annab selle üle linkerile. Linker võtab selle objekti koodi ja genereerib käivitatav kood programmi jaoks ja andke see laadurile üle.

Kõrgetasemeline keel, programmidel on mõned sisseehitatud raamatukogud ja päisefailid. Lähteprogramm võib sisaldada mõnda raamatukogu funktsiooni, mille määratlust hoitakse sisseehitatud raamatukogudes. Linker seob need funktsioonid sisseehitatud raamatukogudega. Kui sisseehitatud teeke ei leita, teavitab ta sellest kompilaatorit ja genereerib vea.

Mõnikord jaotatakse suured programmid alamprogrammideks, mida nimetatakse moodulid. Nüüd, kui need moodulid on kompileeritud ja kokku pandud, genereeritakse lähteprogrammi objektmoodulid. Linkeri vastutusel on kõigi objektimoodulite ühendamine / linkimine lähteprogrammi ühe käivitatava faili genereerimiseks. Meil on kahte tüüpi linkereid.


Linkage toimetaja: See on linker, mis genereerib ümberpaigutatava käivitatava mooduli.

Dünaamiline linker: See lükkab edasi / lükkab mõne välise mooduli ühendamise edasi, kuni laadimismoodul / käivitatav moodul on genereeritud. Siin toimub linkimine laadimisaja või käitamisaja jooksul.

Laaduri määratlus

Kuna praegu käivitatav programm peab asuma arvuti põhimälus. See on vastutus laadur, programm opsüsteemis, linkeri genereeritud programmi käivitatava faili / mooduli laadimiseks põhimällu täitmiseks. See eraldab mäluruumi põhimälus asuvale käivitatavale moodulile.

Laadimismeetodeid on kolme tüüpi:

  • Absoluutne laadimine
  • Ümberlaaditav laadimine
  • Dünaamiline tööaja laadimine

Absoluutne laadimine: See lähenemisviis laadib programmi käivitatava faili a sama põhimälu asukoht iga kord. Kuid sellel on mõned miinused nagu programmeerija, peab olema teadlik moodulite põhimällu laadimise määramisstrateegiast. Kui programmi on vaja muuta, kaasates selle programmi mõnda lisamist ja kustutamist, tuleb muuta kõiki programmi aadresse.

Ümberlaaditav laadimine: Selle lähenemisviisi korral teeb kompilaator või koostaja ei tekita tegelikku põhimälu aadressi. See loob suhtelised aadressid.

Dünaamiline käitusaja laadimine: Selle lähenemisviisi korral luuakse programmi absoluutne aadress siis, kui käivitatava mooduli käsk on tegelikult täidetud. See on väga paindlik, sinna saab laadida laaditavat moodulit / käivitatavat moodulit mis tahes põhimälu piirkond. Käivitusprogrammi saab vahepeal katkestada ning vahetada kettale ja tagasi põhimällu erineval põhimälu aadressil.

  1. Linkeri ja laaduri peamine erinevus on see, et linker genereerib käivitatav programmi fail, samas laadib laadur linkerilt saadud käivitatava faili faili põhimälu täitmiseks.
  2. Linker võtab sisse objekti moodul monteerija loodud programmi. Laadur võtab aga sisse käivitatav moodul genereeritud linkeri poolt.
  3. Linker ühendab genereerimiseks programmi kõik objektimoodulid käivitatavad moodulid see seob ka raamatukogu funktsioon objektimoodulis kuni sisseehitatud raamatukogud kõrgtasemel programmeerimiskeelt. Teisest küljest laadur eraldab ruumi käivitatavale moodul põhimälus.
  4. Linkeri võib klassifitseerida järgmiselt lingiredaktor, ja dünaamiline linker laadurit võib klassifitseerida järgmiselt: absoluutlaadur, ümberpaigutatav laadur ja dünaamiline tööaja laadur.

Järeldus:

Linker võtab monteerijalt programmi objektimoodulid ja seob need programmi käivitatava mooduli genereerimiseks. Seejärel laadib laadur käivitatava mooduli täitmiseks põhimällu.