Mam niejasny pomysł na to, jak przestrzeń użytkownika i init-system (czy to klasyczny init sysV / upstart / systemd) działają podczas zamykania systemu. (Zasadniczo istnieje kolejność zamówień „Stop!”, „Proszę przestań teraz naprawdę”, „Proces muszę cię zabić, aby zatrzymać” i czekanie… rzeczy się dzieją).
W każdym razie jestem bardzo nieświadomy, jak działa zamknięcie systemu w jądrze (gdzie na pewno jest też wiele rzeczy do zrobienia)?
Próbowałem zajrzeć do dokumentacji jądra https://www.kernel.org/doc/htmldocs/, a nawet skorzystałem z narzędzia wyszukiwania PAL NSA, aby dać mi przewagę w odkrywaniu, jak to działa.
Przeszukałem również SE U + L i nic nie znalazłem (przeoczyłem?)
W każdym razie pytanie, choć potencjalnie nieco trudne, zasługuje na odpowiedź w tej sieci pytań i odpowiedzi, ponieważ zakładam, że więcej osób jest zainteresowanych otrzymaniem szkicu tego, co dzieje się w jądrze Linuksa podczas zamykania.
Potencjalnie nastąpiła również zmiana łącza do bardziej szczegółowych wyjaśnień.
Odpowiedź może zawierać pytanie, które wywołania systemowe i jakie sygnały jądra są używane?
https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c wydaje się być plikiem używanym w x86 związanym z ponownym uruchomieniem komputera (już blisko zamykania, co?)
może fragment kodu znaleziony tutaj http://lxr.free-electrons.com/source/kernel/reboot.c#L176 może zostać użyty do wyjaśnienia
176 void kernel_power_off (void) 177 { 178 kernel_shutdown_prepare (SYSTEM_POWER_OFF); 179 if (pm_power_off_prepare) 180 pm_power_off_prepare (); 181 migrate_to_reboot_cpu (); 182 syscore_shutdown (); 183 pr_emerg („Wyłączanie \ n”); 184 kmsg_dump (KMSG_DUMP_POWEROFF); 185 machine_power_off (); 186} 187 EXPORT_SYMBOL_GPL (kernel_power_off);
shutdown(8)
np. Przestarzałej, -n
którą, jak sądzę, w starej dokumentacji uniksowej użyto do przeczytania „ sami zamknij system - rdzeń jest NA OGNIU! ”, Skutecznie zabłąkany przełącznik zabijania systemu, który pozostawiłby / mógłby zostawić kawałki rozrzucone na podłodze (a przynajmniej systemy plików w stanie uszkodzonym) - można sobie wyobrazić, że byłby on używany w systemie typu ramy głównej, w którym ktoś właśnie złapał rękę w wentylator. 🕱