Next: Literatura
Up: Funkcje ładujące pliki wykonywalne
Previous: Funkcja load_script()
Funkcja odpowiedzialna za załadownie do pamięci programu w formacie
ELF jest dużo bardzie skomplikowanan niż ta dla skryptu. load_elf_binary() zadeklarowana jest w pliku fs/binfmt_elf.c. Na załadowanie kodu do pamięci składają sie
następujące czynności.
- Sprawdzane są ``magiczne'' numery, w zmiennej bprm.buf. Są one specyficzne dla danego formatu.
- Czytany jest nagłówek pliku wykonywalnego. Stą pobierany jest opis segmentów, bibliotek itd.
- Szukana jest scieżka do interpretera bibliotek współdzielonych.
- Przygotowywane jest załadownie jest do pamięci interpreter formatu
ELF. Ładowanie odbywa sie na podobnej zasadzie co ładowanie
zwykłego programu.
- Wykonywana jest funkcja flush_old_exec(). Usuwa ona z pamięci pozostałość starego procesu.
- Wywoływana jest metoda ładująca interpreter programu. Jeśli jest on w formacie ELF to nazywa się ona load_elf_interp().
- Określane są uprawnienia procesu. Następuje przygotowanie struktur danych dla procesu.
- Wywoływana jest funkcja start_thread, która ostatecznie
przygotowuje proces do wykonania
Michal Rutkowski
2001-12-19