Nøgleforskel – Linker vs Loader
Et computerprogram bruges til at give instruktioner til computeren. Det er skrevet ved hjælp af et bestemt programmeringssprog. Programmeringssprog som C, Java er programmeringssprog på højt niveau, og de er forståelige af mennesker, men ikke af computeren. Derfor konverteres et program på højt niveau til maskinsprog ved hjælp af en sprogoversætter. Et program skrevet med et højt niveau sprog er en kildekode. Efter konverteringen kaldes den oversatte kode for objektkoden. Linkeren og loaderen er to softwareprogrammer, der bruges til programudførelse. Denne artikel diskuterer forskellen mellem Linker og Loader. Linker er softwaren, der forbinder objektkoden med yderligere filer såsom header-filer og opretter en eksekverbar fil med.exe-udvidelsen. Indlæseren er systemsoftwaren, der indlæser den eksekverbare fil genereret af linkeren til hovedhukommelsen. Det er den vigtigste forskel mellem Linker og Loader.
Hvad er Linker?
Et computerprogram er et sæt instruktioner, der gives til en computer for at udføre en bestemt opgave. Et computerprogram kan skrives ved hjælp af et programmeringssprog. De fleste programmeringssprog er programmering på højt niveau. De er let forståelige og læsbare af programmøren. Disse sprog følger en syntaks svarende til det engelske sprog. Nogle eksempler på sprog på højt niveau er Java, C og Python. Et program skrevet ved hjælp af et programmeringssprog på højt niveau er kendt som kildekoden, kildefilen eller kildeprogrammet. Udvidelsen af kildekoden afhænger af det sprog, den er udviklet med. Hvis kildekoden er skrevet i C++, er filtypenavnet.cpp. Hvis kildekoden er skrevet i Python, er udvidelsen.py.
Selv kildekoden er forståelig af programmøren; det er ikke forståeligt af computeren. Derfor bør kildekoden konverteres til maskinforståeligt format ved hjælp af en sprogoversætter. Det kan være en compiler eller en tolk. Den oversatte kode er kendt som objektkoden. Objektkoden er på maskinsprog. Den består af nuller og én gang. Computeren kan direkte forstå objektkoden. Det har filtypenavnet.obj. Hvis der er en kildekode som Test.c, går den gennem compileren og konverteret kode bliver til Test.obj.
Linker er softwaren, der forbinder objektkoden med yderligere filer såsom header-filer og opretter en eksekverbar fil med.exe-udvidelsen. Programmet kan have brugt indbyggede funktioner. Funktionaliteterne for disse indbyggede funktioner er i header-filerne. Ifølge det ovenfor forklarede eksempel, objektkoden, som er Test.obj tilføjes med nødvendige header-filer ved hjælp af Linker. Det opretter en ny fil kaldet Test.exe. Det er en eksekverbar fil. Derfor kan den eksekveres af computeren.
Hvad er Loader?
Et program, der skal køre, skal placeres i hukommelsen. Linkeren forbinder objektkoden og header-filerne og udlæser den eksekverbare fil. Indlæseren er systemsoftwaren, der indlæser den eksekverbare fil genereret af linkeren til hovedhukommelsen. Den tildeler hukommelsespladsen til det eksekverbare modul i hovedhukommelsen. Derfor er en loader en del af operativsystemet, der er ansvarlig for at indlæse programmer og biblioteker.
Figur 01: Rækkefølge, hvori kildekoden indlæses i hukommelsen
Indlæsning af et program involverer flere trin. Det involverer at læse indholdet af den eksekverbare fil, der indeholder programinstruktionen, ind i hukommelsen og også at udføre de nødvendige forberedelsesopgaver for at køre den eksekverbare fil. Når indlæsningen er afsluttet, starter operativsystemet programmet ved at overføre kontrollen til den indlæste programkode. Særlige computersystemer såsom Embedded-systemer har generelt ikke loadere. Koden udføres direkte af ROM'en.
Hvad er forholdet mellem Linker og Loader?
Udgangen fra Linkeren går til Loader
Hvad er forskellen mellem Linker og Loader?
Linker vs Loader |
|
Linker er softwaren, der forbinder objektkoden med yderligere filer såsom header-filer og opretter en eksekverbar fil med.exe-udvidelsen. | Indlæseren er systemsoftwaren, der indlæser den eksekverbare fil genereret af linkeren til hovedhukommelsen. |
Input | |
Linkeren tager outputtet fra sprogoversætteren, som er objektkoden. | Indlæseren tager output fra linkeren, som er den eksekverbare fil. |
Functionality | |
Linkeren linker objektkoden og header-filerne og udsender den eksekverbare fil. | Indlæseren indlæser den eksekverbare fil hentet fra linkeren til hovedhukommelsen. |
Oversigt – Linker vs Loader
Linker og Loader er to softwarekomponenter relateret til programudførelse. Denne artikel diskuterede forskellen mellem Linker og Loader. Linker er softwaren, der forbinder objektkoden med yderligere filer såsom header-filer og opretter en eksekverbar fil med.exe-udvidelsen. Indlæseren er systemsoftwaren, der indlæser den eksekverbare fil genereret af linkeren til hovedhukommelsen. Det er forskellen mellem Linker og Loader.