Starpība starp Linker un Loader

Autors: Laura McKinney
Radīšanas Datums: 3 Aprīlis 2021
Atjaunināšanas Datums: 7 Maijs 2024
Anonim
How to make a threshold on the balcony of the tile
Video: How to make a threshold on the balcony of the tile

Saturs


Linker un Loader ir utilītas programmas, kurām ir liela loma programmas izpildē. Programmas avota kods pirms izpildes caur kompilatoru, montētāju, saistītāju un iekrāvēju nokļūst attiecīgajā secībā. No vienas puses, kur linkeris ņem montētāja ģenerētos objektu kodus un apvieno tos, lai ģenerētu izpildāmu moduli. No otras puses iekrāvējs ielādē šo izpildāmo moduli galvenajā atmiņā izpildei. Izmantojot salīdzināšanas diagrammu, apspriedīsim atšķirību starp Linker un iekrāvēju.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsLinkerisIekrāvējs
PamataTas ģenerē avota programmas izpildāmu moduli.Tas ielādē izpildāmo moduli galvenajā atmiņā.
IevadeKā ievade tiek ņemts montētāja ģenerētais objekta kods.Tas prasa izpildāmu moduli, ko ģenerējis piesaistītājs.
FunkcijaTas apvieno visus avota koda objekta moduļus, lai ģenerētu izpildāmu moduli.Tas piešķir adreses izpildāmam modulim galvenajā atmiņā izpildei.
Tips / pieejaSaites redaktors, dinamiskais linkeris.Pilnīga iekraušana, atkārtoti pārvietojama un dinamiska izpildes laika ielāde.


Linkera definīcija

Montētājs ģenerē avota programmas objekta kodu un nodod to saistītājam. Saistītājs ņem šo objekta kodu un ģenerē izpildāms kods programmai un nodot to iekrāvējam.

Augsta līmeņa valoda, programmām ir dažas iebūvētās bibliotēkas un galvenes faili. Avota programmā var būt dažas bibliotēkas funkcijas, kuru definīcija tiek saglabāta iebūvētajās bibliotēkās. Saistītājs savieno šo funkciju ar iebūvētajām bibliotēkām. Ja iebūvētās bibliotēkas netiek atrastas, tā informē kompilatoru, un kompilators ģenerē kļūdu.

Dažreiz lielās programmas tiek sadalītas apakšprogrammās, kuras tiek sauktas moduļi. Kad šie moduļi ir apkopoti un salikti, tiek ģenerēti avota programmas objektu moduļi. Saistītāja pienākums ir apvienot / sasaistīt visus objekta moduļus, lai ģenerētu avota programmas vienu izpildāmu failu. Mums ir divu veidu piesaistītāji.

Saites redaktors: Tas ir saistītājs, kas ģenerē pārvietojamo, izpildāmo moduli.


Dinamiskais piesaistītājs: Tas atliek / atliek dažu ārējo moduļu sasaisti, līdz tiek ģenerēts slodzes modulis / izpildāmais modulis. Šeit sasaiste tiek veikta ielādes laikā vai izpildes laikā.

Iekrāvēja definīcija

Tā kā programmai, kas šobrīd ir jāizpilda, jāatrodas datora galvenajā atmiņā. Par to atbild iekrāvējs, programma operētājsistēmā, lai ielādētu saistītāja ģenerēto programmas izpildāmo failu / moduli galvenajā atmiņā izpildei. Tas piešķir atmiņas vietu izpildāmajam modulim galvenajā atmiņā.

Ir trīs veidu iekraušanas pieejas:

  • Absolūta iekraušana
  • Pārvietojama iekraušana
  • Dinamiska izpildes laika ielāde

Absolūta iekraušana: Šī pieeja ielādē programmas izpildāmo failu a tā pati galvenā atmiņas vieta katru reizi. Bet tam ir daži trūkumi tāpat kā programmētājam, ir jāapzinās piešķiršanas stratēģija moduļu ielādēšanai galvenajā atmiņā. Gadījumā, ja programma ir jāmaina, iekļaujot tajā kaut ko ievietošanu un dzēšanu, tad jāmaina visas programmas adreses.

Pārkraujama iekraušana: Šajā pieejā darbojas kompilators vai montētājs nerada faktisko galvenās atmiņas adresi. Tas rada relatīvās adreses.

Dinamiska izpildes laika ielāde: Šajā pieejā absolūtā programmas adrese tiek ģenerēta, kad faktiski tiek izpildīta izpildāmā moduļa instrukcija. Tas ir ļoti elastīgs, ielādējamo moduli / izpildāmo moduli var ielādēt jebkurš galvenās atmiņas reģions. Izpildprogrammu var pārtraukt starp tām, un šoreiz to var mainīt uz disku un atpakaļ uz galveno atmiņu citā galvenās atmiņas adresē.

  1. Galvenā atšķirība starp linkeru un iekrāvēju ir tā, ka linkeris ģenerē izpildāms programmas fails, savukārt iekrāvējs ielādē izpildāmo failu, kas iegūts no saistītāja, failā galvenā atmiņa izpildei.
  2. Saistītājs ieņem objekta modulis no montētāja ģenerētas programmas. Tomēr iekrāvējs ievada izpildāmais modulis ko rada linkeris.
  3. Saistītājs apvieno visus programmas objektu moduļus, lai tos ģenerētu izpildāmie moduļi tas arī saista bibliotēkas funkcija objekta modulī iebūvētās bibliotēkas no augsta līmeņa programmēšanas valodas. No otras puses, iekrāvējs piešķir vietu izpildāmai vietnei modulis galvenajā atmiņā.
  4. Linkeru var klasificēt kā saišu redaktors, un dinamiskais linkeris tā kā iekrāvēju var klasificēt kā absolūts iekrāvējs, pārvietojams iekrāvējs un dinamisks izpildes laika iekrāvējs.

Secinājums:

Saistītājs paņem no montētāja programmas objektu moduļus un sasaista tos, lai ģenerētu programmas izpildāmu moduli. Pēc tam iekrāvējs ielādē izpildāmo moduli galvenajā atmiņā izpildei.