У мене є якось приблизне уявлення про те, як користувальний простір та init-система (будь то класичний init sysV / upstart / systemd) працюють при відключенні системи. (По суті, є послідовне замовлення "Стоп!", "Будь ласка, припини зараз реально", "Процес, я повинен вбити тебе, щоб зупинити", і чекаємо ... все триває).
Я все одно не знаю, як працює відключення системи в ядрі (де, звичайно, також є багато чого робити)?
Я спробував заглянути в документацію ядра https://www.kernel.org/doc/htmldocs/ і навіть застосував інструмент пошуку NSA для того, щоб допомогти мені дізнатися, як це працює.
Також я шукав на SE U + L і нічого не знайшов (я його не помічав?)
У будь-якому випадку питання, хоч і може бути трохи складним, заслуговує на відповідь у цій Q&A мережі, оскільки я припускаю, що більше людей зацікавлені отримати ескіз до того, що відбувається в ядрі Linux при відключенні.
Потенційно також можливі зміни, що стосуються деяких більш детальних пояснень.
Відповідь, можливо, може включати, які системні дзвінки та які сигнали ядра використовуються?
https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c здається, що використовується файл x86, пов’язаний із перезавантаженням (вже близький до завершення роботи, так?)
може бути, фрагмент, знайдений тут http://lxr.free-electrons.com/source/kernel/reboot.c#L176, може бути використаний для пояснення
176 недійсний kernel_power_off (недійсний) 177 { 178 kernel_shutdown_prepare (SYSTEM_POWER_OFF); 179, якщо (pm_power_off_prepare) 180 pm_power_off_prepare (); 181 migrate_to_reboot_cpu (); 182 syscore_shutdown (); 183 pr_emerg ("Вимкнення живлення \ n"); 184 kmsg_dump (KMSG_DUMP_POWEROFF); 185 machine_power_off (); 186} 187 EXPORT_SYMBOL_GPL (kernel_power_off);
shutdown(8)
тобто застарілий, -n
який, я думаю, у старій документації на Unix, який використовується для читання " відключення системи самі - основний блок на ВОГНІ! ", Фактично безладний перемикач системи вбивства, який міг / міг би залишити біти, розкидані по підлозі (або принаймні файлові системи в корумпованому стані) - можна уявити, що це буде використано для системи основного кадру, де хтось щойно потрапив їх рукою у вентилятор охолодження. 🕱