- W Linuksie zawsze mówimy, że pierwszy proces to
init
(pid == 1). Ale dlaczego jądro (start) nie konfiguruje systemu i nie tworzyinit
procesu. Czy jądro jest procesem? - Wiemy, że wszystkie wątki przestrzeni użytkownika są zrootowane w procesie init. A co z harmonogramem i innymi rzeczami jądra, takimi jak zarządzanie pamięcią?
Zasadniczo to, co mnie dezorientuje, to struktura jądra. Jeśli jest to proces, czy jest to pojedynczy proces, czy składa się z wielu procesów?
Jądro tak naprawdę wcale nie zachowuje się jak proces. Nie podlega harmonogramowi, albo działa w imieniu procesu (tzw. Kontekst procesu lub kontekst użytkownika), albo działa w wyniku przerwania lub wyjątku (tak zwany kontekst przerwania).
To powiedziawszy, jądro Linuksa odradza wątki jądra w celu wykonania niektórych zadań lub uniknięcia zbyt długiego uruchamiania czegoś w kontekście przerwania (to właśnie robi wątek ksoftirqd, unikając nadmiernych opóźnień, które mogłyby prowadzić np .: do utraty dźwięku, ...) .
Możesz zobaczyć wątki jądra na wyjściu
ps
polecenia. Można je łatwo zidentyfikować: ich nazwa znajduje się w nawiasach kwadratowych. Niektóre z nich uruchamiają jedną instancję na procesor, procesor jest identyfikowany numerem po ukośniku, więc [ksoftirqd / 0] jest instancją ksoftirqd na CPU 0.źródło
Istnieją mikro-jądra, w których różne części jądra są w rzeczywistości procesami, a główny wartownik głównie zarządza IPC.
Linux - na lepsze lub gorsze - nie jest systemem mikro-jądra.
źródło
Nie, to nie jest ... Jądro (i rozszerzenia jądra) są ładowane bezpośrednio do pamięci. Jeśli w jądrze znajduje się niebezpieczny kod, nic nie stoi pomiędzy nim a dużym problemem.
Poza tym jądro zasadniczo wykonuje / przełącza między procesami. Oczywiście coś, co faktycznie uruchamia procesy, nie będzie procesem samym w sobie.
(tl; dr 1. no 2. część jądra / jego rozszerzenie)
źródło
ninjalj napisał: „Jądro tak naprawdę nie zachowuje się jak proces. Nie można go zaplanować”
Cóż, istnieje proces bezczynności (w zasadzie pid 0, chociaż nigdzie go nie pokazano), który jest zaplanowany i prawie zawsze w stanie uruchomionym.
źródło
Źródło: https://courses.cs.washington.edu/courses/cse351/19su/lectures/18/CSE351-L18-processes_19su.pdf , strona 36
źródło