Vertailukaavio
Vertailun perusteet | Linker | loader |
---|---|---|
perustiedot | Se luo lähdekoodin suoritettavan moduulin. | Se lataa suoritettavan moduulin päämuistiin. |
panos | Se vie sisääntulona kokoonpanijan luoman objektikoodin. | Se vie linkkerin tuottaman suoritettavan moduulin. |
Toimia | Se yhdistää kaikki lähdekoodin objektimoduulit suoritettavan moduulin luomiseksi. | Se jakaa osoitteet suoritettavaan moduuliin päämuistissa suoritettavaksi. |
Tyyppi / Lähestymistapa | Linkkieditori, dynaaminen linkkeri. | Absoluuttinen lataus, siirrettävä lataus ja dynaaminen ajoaika. |
Linkerin määritelmä
Assembler luo lähdekoodiohjelman objektikoodin ja luovuttaa sen linkkerille. Linkkeri ottaa tämän objektikoodin ja luo ohjelmalle suoritettavan koodin ja luovuttaa sen Loaderille.
Korkean tason ohjelmissa on joitakin sisäänrakennettuja kirjastoja ja otsikkotiedostoja . Lähdeohjelma voi sisältää joitakin kirjastotoimintoja, joiden määrittely tallennetaan sisäänrakennettuihin kirjastoihin. Linkkeri yhdistää nämä toiminnot sisäänrakennettuihin kirjastoihin. Jos sisäänrakennettuja kirjastoja ei löydy, se ilmoittaa kääntäjälle, ja kääntäjä luo sen jälkeen virheen.
Joskus suuret ohjelmat jaetaan aliohjelmiin, joita kutsutaan moduuleiksi . Nyt kun nämä moduulit kootaan ja kootaan, lähdekoodiohjelman objektimoduulit luodaan. Linkkeri on vastuussa kaikkien objektimoduulien yhdistämisestä / linkittämisestä yhden lähdekoodiohjelman muodostamiseksi. Meillä on kahdenlaisia linkkereitä.
Linkage Editor : Se on linkkeri, joka luo siirrettävän, suoritettavan moduulin.
Dynaaminen linkkeri : Se estää tai lykkää joidenkin ulkoisten moduulien kytkentää, kunnes kuormitusmoduuli / suoritettava moduuli luodaan. Tässä linkitys tehdään latausajan tai ajoajan aikana.
Määritelmä Loader
Koska suoritettavan ohjelman on sijaittava tietokoneen päämuistissa. Kuormaimen, käyttöjärjestelmän ohjelman, tehtävänä on ladata linkkerin tuottaman ohjelman suoritettava tiedosto / moduuli päämuistiin suorittamista varten. Se jakaa muistitilan päämuistissa olevaan suoritettavaan moduuliin.
Latausmenetelmiä on kolme:
- Absoluuttinen lataus
- Siirrettävä lastaus
- Dynaaminen ajonopeus
Absoluuttinen lataus : Tämä lähestymistapa lataa ohjelman suoritettavan tiedoston samaan päämuistipaikkaan joka kerta. Mutta sillä on joitakin haittoja, kuten ohjelmoijan on oltava tietoinen määritysstrategiasta moduulien lataamiseksi päämuistiin. Siinä tapauksessa, että ohjelmaa on muutettava johonkin ohjelmaan sisällyttämällä ja poistamalla, kaikki ohjelman osoitteet on muutettava.
Siirrettävä kuorma: Tässä kääntäjässä tai kokoajalla ei ole todellista päämuistiosoitetta . Se tuottaa suhteelliset osoitteet.
Dynaaminen ajonaikainen lataus : Tässä lähestymistavassa ohjelman absoluuttinen osoite generoidaan, kun suoritettavan moduulin käsky on todella suoritettu. Se on hyvin joustava, ladattava moduuli / suoritettava moduuli voidaan ladata mihin tahansa päämuistin alueeseen . Suoritusohjelma voidaan keskeyttää välillä ja se voidaan vaihtaa levylle ja takaisin päämuistiin tällä kertaa eri päämuistiosoitteessa.
Linkkerin ja kuormaimen keskeiset erot
- Avainero linkkerin ja kuormaimen välillä on se, että linkkeri muodostaa ohjelman suoritettavan tiedoston, kun taas kuormain lataa linkkeriltä saadun suoritettavan tiedoston päämuistiin suorittamista varten .
- Linkkeri ottaa käyttöön kokoonpanijan tuottaman ohjelman objektimoduulin . Kuitenkin kuormain ottaa vastaan linkkerin tuottaman suoritettavan moduulin .
- Linkkeri yhdistää ohjelman objektimoduulin suoritettavien moduulien generoimiseen, ja se linkittää myös objektimoduulin kirjastotoiminnon korkean tason ohjelmointikielen sisäänrakennettuihin kirjastoihin . Toisaalta kuormain jakaa tilan päämuistissa olevaan suoritettavaan moduuliin.
- Linkkeri voidaan luokitella kytkentäeditoriksi ja dynaamiseksi linkkijaksi, kun taas kuormaaja voidaan luokitella absoluuttiseksi kuormaajaksi, siirrettäväksi kuormaajaksi ja dynaamiseksi ajastinlaitteeksi .
johtopäätös:
Linkkeri ottaa ohjelman objektimoduulit kokoonpanijalta ja yhdistää ne yhteen ohjelman suoritettavan moduulin luomiseksi. Täyttömoduuli ladataan sitten kuormaimen päämuistiin suorittamista varten.