我正在阅读有关设置自定义initramfs的教程,其中指出:
唯一缺少的是/ init,它是initramfs根目录中的可执行文件,一旦加载,内核便会执行该可执行文件。由于sys-apps / busybox包含功能齐全的外壳程序,因此这意味着您可以将/ init二进制文件编写为简单的外壳程序脚本(而不是使其成为必须用汇编程序或C语言编写的复杂应用程序)。
并给出了init作为以以下内容开头的shell脚本的示例 #!/bin/busybox sh
到目前为止,我的印象是init是启动的主要过程,而所有其他用户空间过程最终都是init的子级。但是,在给定的示例中,第一个过程实际上是bin/busybox/ sh
从中产生后来的init的。
这是正确的做法吗?例如,如果当时我有可用的解释器,那么我可以将初始化编写为Python脚本等吗?
/
不会消失在稀薄的空气中 -它被安装在上面(尽管通常在保存内存之前,所有内容都已删除)。它仍然在那里。switch_root
进行系统调用switchroot
-这是内核开发人员在内核2.6中更改引导过程时提供的内容。某些需要initramfs的东西。神奇的是内核。