Entah bagaimana saya memiliki gambaran kasar tentang bagaimana userspace dan init-system (baik itu init klasik sysV / pemula / systemd) bekerja pada sistem shutdown. (Pada dasarnya ada urutan suksesi "Stop!", "Tolong hentikan sekarang benar-benar", "Proses saya perlu membunuh Anda untuk Berhenti" dan menunggu ... hal-hal yang terjadi).
Bagaimanapun saya sangat tidak menyadari bagaimana sistem shutdown bekerja di kernel (di mana pasti ada juga banyak hal yang harus dilakukan)?
Saya mencoba melihat ke dalam dokumentasi kernel https://www.kernel.org/doc/htmldocs/ dan bahkan menggunakan alat pencarian sahabat NSA untuk memberi saya langkah awal untuk mengetahui cara kerjanya.
Saya juga mencari di SE U + L dan tidak menemukan apa-apa (apakah saya mengabaikannya?)
Bagaimanapun pertanyaannya, meskipun berpotensi sedikit menantang, akan pantas dijawab dalam jaringan tanya jawab ini karena saya berasumsi lebih banyak orang tertarik untuk mendapatkan sketsa untuk apa yang terjadi pada kernel linux saat shutdown.
Berpotensi ada juga perubahan untuk menghubungkan ke beberapa penjelasan yang lebih rinci.
Sebuah jawaban mungkin mencakup panggilan sistem dan sinyal kernal apa yang digunakan?
https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c tampaknya merupakan file x86 yang digunakan terkait dengan reboot (sudah dekat dengan shutdown, eh?)
mungkin cuplikan yang ditemukan di sini http://lxr.free-electrons.com/source/kernel/reboot.c#L176 dapat digunakan untuk memberikan penjelasan
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 ("Matikan \ n"); 184 kmsg_dump (KMSG_DUMP_POWEROFF); 185 machine_power_off (); 186} 187 EXPORT_SYMBOL_GPL (kernel_power_off);
shutdown(8)
yaitu yang sudah usang -n
yang saya pikir dalam dokumentasi unix lama yang digunakan untuk membaca " mematikan sistem sendiri - unit inti adalah PADA KEBAKARAN! " Secara efektif sistem mematikan-switch yang berantakan akan / bisa meninggalkan bit tersebar di lantai (atau setidaknya sistem file dalam keadaan korup) - orang membayangkan ini akan digunakan untuk sistem tipe kerangka utama di mana seseorang baru saja menangkap tangan mereka di kipas pendingin. 🕱