【发布时间】:2015-11-23 00:08:02
【问题描述】:
我有几个问题,我试图用谷歌搜索,但无济于事。因此,将其发布在这里。提前感谢您的宝贵时间。
在 linux(我使用 Ubuntu)中哪里有可以生成
init可执行文件的 C 文件?内核模块如何调用init;在到达内核/boot/vmlinuz文件后,引导加载程序如何调用init模块?有没有办法追踪哪个函数调用了
init函数? 到目前为止我尝试了什么:尝试通过 readelf 和 nm 但无法追溯到使用它们的被调用方。systemd替换init后的引导过程。我了解到,首先调用与 udev 和 d-bus 相关的侦听套接字;然后每个进程启动并连接到这些套接字。但我需要清楚地了解系统的工作原理。
如有必要,请帮我指出相关链接。我已经提到的几个链接是:
- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s2-boot-init-shutdown-init.html
- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/ch-boot-init-shutdown.html
但他们解释的方式很抽象。
【问题讨论】:
-
这个问题太宽泛了。考虑将其拆分为多个问题以获得更好的答案。
-
下面几乎涵盖了每个查询,我将按照建议为最后一个查询启动其他线程。将其标记为已关闭,最后更新的答案为已完成。