我一直想知道内核如何在启动期间将控制权传递给第三方代码,或者特别是特定于发行版的代码。
我在 GRUB 的配置文件中四处寻找,怀疑将一个特殊的参数传递给内核,让它知道在成功启动后要做什么,但找不到任何东西。这使我怀疑内核查找的根分区上可能存在某些文件。
如果有人能对此事有所了解,我将不胜感激。发行版如何实现这一点?
它是硬编码的,但您可以通过内核参数覆盖默认值init=...。
来自init/main.c:
if (execute_command) {
run_init_process(execute_command);
printk(KERN_WARNING "Failed to execute %s. Attempting "
"defaults...\n", execute_command);
}
run_init_process("/sbin/init");
run_init_process("/etc/init");
run_init_process("/bin/init");
run_init_process("/bin/sh");
panic("No init found. Try passing init= option to kernel. "
"See Linux Documentation/init.txt for guidance.");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
346 次 |
| 最近记录: |