Pagkakaiba sa pagitan ng Linker at Loader

May -Akda: Laura McKinney
Petsa Ng Paglikha: 3 Abril 2021
I -Update Ang Petsa: 7 Mayo 2024
Anonim
WHEEL LOADER or PAYLOADER
Video.: WHEEL LOADER or PAYLOADER

Nilalaman


Ang Linker at Loader ay ang mga programa ng utility na gumaganap ng isang pangunahing papel sa pagpapatupad ng isang programa. Ang Source code ng isang programa ay dumadaan sa compiler, assembler, linker, loader sa kani-kanilang pagkakasunud-sunod, bago ipatupad. Sa isang banda, kung saan ang linker nakikipag-ugnay sa mga object code na nabuo ng nagtitipon at pagsamahin ang mga ito upang makabuo ng maipapatupad na module. Sa kabilang banda, ang loader naglo-load ng maipapatupad na module na ito sa pangunahing memorya para sa pagpapatupad. Talakayin natin ang pagkakaiba sa pagitan ng Linker at loader sa tulong ng isang tsart sa paghahambing.

  1. Tsart ng paghahambing
  2. Kahulugan
  3. Pangunahing Pagkakaiba
  4. Konklusyon

Tsart ng paghahambing

Batayan para sa PaghahambingLinkerLoader
PangunahingBumubuo ito ng maipapatupad na module ng isang mapagkukunan na programa.Naglo-load ito ng maipapatupad na module sa pangunahing memorya.
InputKinakailangan bilang input, ang object code na nabuo ng isang assembler.Tumatagal ito ng maipapatupad na module na nabuo ng isang link.
Pag-andarPinagsasama nito ang lahat ng mga module ng object ng isang source code upang makabuo ng isang maipapatupad na module.Inilalaan nito ang mga address sa isang maipapatupad na module sa pangunahing memorya para sa pagpapatupad.
Uri / DiskarteLinkage Editor, Dynamic na linker.Ganap na paglo-load, mai-relocatable na pag-load at pag-load ng Dynamic na Run-time.


Kahulugan ng Linker

Ang Assembler ay bumubuo ng object code ng isang mapagkukunan na programa at ibigay ito sa linker. Kinukuha ng linker ang object code na ito at bumubuo ng maipapatupad na code para sa programa, at ibigay ito sa Loader.

Ang mataas na antas ng wika, may mga programa ang ilan built-in na mga aklatan at mga file ng header. Ang mapagkukunan ng programa ay maaaring maglaman ng ilang mga function sa aklatan na ang kahulugan ay naka-imbak sa mga built-in na mga aklatan. Ang linker ay nag-uugnay sa mga function na ito sa built-in na mga aklatan. Kung sakaling ang mga built-in na aklatan ay hindi natagpuan ay ipinapabatid nito sa tagatala, at ang tagatala ay pagkatapos ay bumubuo ng pagkakamali.

Minsan ang mga malalaking programa ay nahahati sa mga subprograms na tinatawag modules. Ngayon kapag ang mga modyul na ito ay pinagsama-sama at tipunin, ang mga module ng object ng source program ay nabuo. Ang linker ay may pananagutan ng pagsasama / pag-link ng lahat ng mga module ng object upang makabuo ng isang solong maipapatupad na file ng programang mapagkukunan. Mayroon kaming dalawang uri ng mga link.


Editor ng Linkage: Ito ay isang linker na bumubuo ng maaaring mai-relocatable, executable module.

Dinamikong Linker: Ito defers / postpones ang pag-uugnay ng ilang mga panlabas na module hanggang sa mabuo ang load module / executable module. Dito, ang pag-link ay ginagawa sa oras ng pag-load o oras ng takbo.

Kahulugan ng Loader

Tulad ng programa na dapat isagawa sa kasalukuyan ay dapat na tumira sa pangunahing memorya ng computer. Ito ang responsibilidad ng loader, isang programa sa isang operating system, upang mai-load ang maipapatupad na file / module ng isang programa, na nabuo ng linker, sa pangunahing memorya para sa pagpapatupad. Inilalaan nito ang puwang ng memorya sa maipapatupad na module sa pangunahing memorya.

Mayroong tatlong uri ng mga diskarte sa paglo-load:

  • Ganap na paglo-load
  • Relocatable loading
  • Ang pag-load ng dinamikong run-time

Ganap na paglo-load: Ang pamamaraang ito ay naglo-load ng maipapatupad na file ng isang programa sa isang parehong lokasyon ng pangunahing memorya sa bawat oras. Ngunit mayroon itong ilan kawalan tulad ng isang programmer ay dapat magkaroon ng kamalayan ng diskarte sa pagtatalaga para sa pag-load ng mga module sa pangunahing memorya. Sa kaso, ang programa ay dapat mabago na kinasasangkutan ng ilang pagpasok at pagtanggal sa programa, pagkatapos ang lahat ng mga address ng programa ay kailangang mabago.

Relocatable loading: Sa pamamaraang ito, ginagawa ng tagatala o nagtitipon hindi gumawa ng aktwal na pangunahing address ng memorya. Gumagawa ito ng mga kamag-anak na address.

Ang pag-load ng Dynamic na Run-Time: Sa pamamaraang ito, ang ganap na address para sa isang programa ay nabuo kapag ang isang tagubilin ng isang maipapatupad na module ay talagang naisakatuparan. Ito ay napaka-kakayahang umangkop, maaaring mai-load ang module na maaaring ma-load / executable module anumang rehiyon ng pangunahing memorya. Ang programa ng pagpapatupad ay maaaring magambala sa pagitan at maaaring mapalitan sa disk at bumalik sa pangunahing memorya sa oras na ito sa ibang address ng pangunahing memorya.

  1. Ang pangunahing pagkakaiba sa pagitan ng linker at loader ay ang linker ay bumubuo ng pinatutupad file ng isang programa samantalang, ang loader ay naglo-load ng maipapatupad na file na nakuha mula sa linker papunta pangunahing memorya para sa pagpapatupad.
  2. Ang linker ay nakikibahagi sa object module ng isang programa na nabuo ng nagtitipon. Gayunpaman, ang loader ay gumagamit ng maipapatupad na module nabuo ng linker.
  3. Pinagsasama ng linker ang lahat ng module ng object ng isang programa upang makabuo maaaring maipapatupad na mga module nag-uugnay din ito sa pagpapaandar ng aklatan sa object module na built-in na mga aklatan ng mataas na antas ng wika ng programming. Sa kabilang banda, loader naglalaan ng puwang sa isang maipapatupad module sa pangunahing memorya.
  4. Ang linker ay maaaring maiuri bilang linkage editor, at dynamic na linker samantalang ang loader ay maaaring maiuri bilang ganap na loader, mai-relocatable loader at dynamic na run-time loader.

Konklusyon:

Kinukuha ng linker ang mga module ng object ng isang programa mula sa nagtitipon at magkasama silang magkakasama upang makabuo ng isang maipapatupad na module ng isang programa. Ang module na maipapatupad ay pagkatapos ay mai-load ng loader sa pangunahing memorya para sa pagpapatupad.