Kluczowa różnica - Linker vs Loader
Program komputerowy służy do wydawania instrukcji komputerowi. Jest napisany przy użyciu określonego języka programowania. Języki programowania, takie jak C, Java, są językami programowania wysokiego poziomu i są zrozumiałe dla ludzi, ale nie dla komputera. Dlatego program wysokiego poziomu jest konwertowany na język maszynowy za pomocą tłumacza języka. Program napisany w języku wysokiego poziomu jest kodem źródłowym. Po konwersji przetłumaczony kod jest nazywany kodem wynikowym. Konsolidator i moduł ładujący to dwa programy używane do wykonywania programu. W tym artykule omówiono różnicę między konsolidatorem a programem ładującym. Linker to oprogramowanie, które łączy kod obiektowy z dodatkowymi plikami, takimi jak pliki nagłówkowe, i tworzy plik wykonywalny z rozszerzeniem.exe. Program ładujący to oprogramowanie systemowe, które ładuje plik wykonywalny wygenerowany przez konsolidator do pamięci głównej. To jest kluczowa różnica między Linkerem a Loaderem.
ZAWARTOŚĆ
1. Omówienie i kluczowa różnica
2. Co to jest konsolidator
3. Co to jest moduł ładujący
4. Związek między konsolidatorem a programem ładującym
5. Porównanie obok siebie - konsolidator i moduł ładujący w formie tabelarycznej
6. Podsumowanie
Co to jest Linker?
Program komputerowy to zestaw instrukcji wydawanych komputerowi w celu wykonania określonego zadania. Program komputerowy można napisać za pomocą języka programowania. Większość języków programowania to programowanie wysokiego poziomu. Są łatwo zrozumiałe i czytelne dla programisty. Te języki mają składnię podobną do języka angielskiego. Niektóre przykłady języków wysokiego poziomu to Java, C i Python. Program napisany przy użyciu języka programowania wysokiego poziomu jest znany jako kod źródłowy, plik źródłowy lub program źródłowy. Rozszerzenie kodu źródłowego zależy od języka, w którym został opracowany. Jeśli kod źródłowy jest napisany w C ++, rozszerzenie pliku to.cpp. Jeśli kod źródłowy jest napisany w Pythonie, rozszerzenie to.py.
Nawet kod źródłowy jest zrozumiały dla programisty; nie jest to zrozumiałe dla komputera. Dlatego kod źródłowy powinien zostać przekonwertowany na format zrozumiały dla komputera za pomocą tłumacza języka. Może to być kompilator lub interpreter. Przetłumaczony kod jest nazywany kodem wynikowym. Kod wynikowy jest w języku maszynowym. Składa się z zer i raz. Komputer może bezpośrednio zrozumieć kod wynikowy. Ma rozszerzenie.obj. Jeśli istnieje kod źródłowy jako Test.c, przechodzi przez kompilator i przekonwertowany kod staje się Test.obj.
Linker to oprogramowanie, które łączy kod obiektowy z dodatkowymi plikami, takimi jak pliki nagłówkowe, i tworzy plik wykonywalny z rozszerzeniem.exe. Program mógł używać wbudowanych funkcji. Funkcjonalności tych wbudowanych funkcji znajdują się w plikach nagłówkowych. Zgodnie z powyższym przykładem, kod obiektowy, którym jest Test.obj, jest dodawany z niezbędnymi plikami nagłówkowymi za pomocą konsolidatora. Tworzy nowy plik o nazwie Test.exe. Jest to plik wykonywalny. Dlatego jest wykonywany przez komputer.
Co to jest program ładujący?
Program, który ma zostać wykonany, musi być umieszczony w pamięci. Konsolidator łączy kod obiektu i pliki nagłówkowe i wyprowadza plik wykonywalny. Program ładujący to oprogramowanie systemowe, które ładuje plik wykonywalny wygenerowany przez konsolidator do pamięci głównej. Alokuje przestrzeń pamięci do modułu wykonywalnego w pamięci głównej. Dlatego moduł ładujący jest częścią systemu operacyjnego odpowiedzialną za ładowanie programów i bibliotek.
Rysunek 01: Kolejność ładowania kodu źródłowego do pamięci
Ładowanie programu obejmuje kilka kroków. Polega na wczytaniu do pamięci zawartości pliku wykonywalnego zawierającego instrukcję programu, a także wykonaniu niezbędnych zadań przygotowawczych do uruchomienia pliku wykonywalnego. Po zakończeniu ładowania system operacyjny uruchamia program, przekazując sterowanie do załadowanego kodu programu. Specjalne systemy komputerowe, takie jak systemy wbudowane, zazwyczaj nie mają programów ładujących. Kod jest wykonywany bezpośrednio przez ROM.
Jaki jest związek między konsolidatorem a programem ładującym?
Dane wyjściowe konsolidatora trafiają do modułu ładującego
Jaka jest różnica między konsolidatorem a programem ładującym?
Porównaj środek artykułu przed tabelą
Linker vs Loader |
|
Linker to oprogramowanie, które łączy kod obiektowy z dodatkowymi plikami, takimi jak pliki nagłówkowe, i tworzy plik wykonywalny z rozszerzeniem.exe. | Program ładujący to oprogramowanie systemowe, które ładuje plik wykonywalny wygenerowany przez konsolidator do pamięci głównej. |
Wejście | |
Konsolidator pobiera dane wyjściowe translatora języka, którym jest kod wynikowy. | Program ładujący pobiera dane wyjściowe z konsolidatora, który jest plikiem wykonywalnym. |
Funkcjonalność | |
Konsolidator łączy kod obiektowy i pliki nagłówkowe i wyprowadza plik wykonywalny. | Program ładujący ładuje plik wykonywalny uzyskany z konsolidatora do pamięci głównej. |
Podsumowanie - Linker vs Loader
Linker i Loader to dwa komponenty oprogramowania związane z wykonywaniem programu. W tym artykule omówiono różnicę między konsolidatorem a programem ładującym. Linker to oprogramowanie, które łączy kod obiektowy z dodatkowymi plikami, takimi jak pliki nagłówkowe, i tworzy plik wykonywalny z rozszerzeniem.exe. Program ładujący to oprogramowanie systemowe, które ładuje plik wykonywalny wygenerowany przez konsolidator do pamięci głównej. To jest różnica między Linkerem a Loaderem.