Szukam procesu rozpoczętego w systemie Linux, który ma proces o numerze 0. Wiem, że init
ma PID 1, który jest pierwszym procesem w systemie Linux, czy jest jakiś proces z PID 0?
Szukam procesu rozpoczętego w systemie Linux, który ma proces o numerze 0. Wiem, że init
ma PID 1, który jest pierwszym procesem w systemie Linux, czy jest jakiś proces z PID 0?
Odpowiedzi:
Ze strony wikipedii zatytułowanej: Identyfikator procesu :
Istnieją dwa zadania ze specjalnie wyróżnianymi identyfikatorami procesów: swapper lub harmonogram ma identyfikator procesu 0 i jest odpowiedzialny za stronicowanie , i faktycznie jest częścią jądra, a nie normalnym procesem w trybie użytkownika . Identyfikator procesu 1 jest zwykle procesem inicjującym odpowiedzialnym przede wszystkim za uruchamianie i zamykanie systemu. Początkowo identyfikator procesu 1 nie był specjalnie zarezerwowany dla init za pomocą jakichkolwiek środków technicznych: po prostu miał ten identyfikator jako naturalną konsekwencję bycia pierwszym procesem wywoływanym przez jądro. Nowsze systemy uniksowe zazwyczaj mają dodatkowe komponenty jądra widoczne jako „procesy”, w którym to przypadku PID 1 jest aktywnie zarezerwowany dla procesu init, aby zachować spójność ze starszymi systemami.
Dowody na to możesz zobaczyć, jeśli spojrzysz na nadrzędne PID (PPID) init
i kthreadd
:
$ ps -eaf
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jun24 ? 00:00:02 /sbin/init
root 2 0 0 Jun24 ? 00:00:00 [kthreadd]
kthreadd
jest demonem wątku jądra. Wszystkie wątki są rozwidlone z tego wątku. Możesz zobaczyć dowody na to, jeśli spojrzysz na inne procesy korzystające ps
i sprawdzające, kto jest ich PPID:
$ ps -eaf
root 3 2 0 Jun24 ? 00:00:57 [ksoftirqd/0]
root 4 2 0 Jun24 ? 00:01:19 [migration/0]
root 5 2 0 Jun24 ? 00:00:00 [watchdog/0]
root 15 2 0 Jun24 ? 00:01:28 [events/0]
root 19 2 0 Jun24 ? 00:00:00 [cpuset]
root 20 2 0 Jun24 ? 00:00:00 [khelper]
Zauważ, że oni wszyscy 2
.
kswapd[0-9]*
, który w moim systemie ma obecnie PID 52? Wydaje się również odpowiedzialny za stronicowanie.
Z wiki Wiki procesu identyfikacji :
Istnieją dwa zadania ze specjalnie wyróżnianymi identyfikatorami procesów: swapper lub harmonogram ma identyfikator procesu 0 i jest odpowiedzialny za stronicowanie, i faktycznie jest częścią jądra, a nie normalnym procesem w trybie użytkownika.
Proces z pid 0
harmonogramem,
Identyfikator procesu Opis:
0 Program planujący
1 Proces inicjujący
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd