我有几个问题想通过Google找出,但徒劳无功。因此,将其发布在此处。在此先感谢您的时间。
linux(我使用Ubuntu)中可生成init
可执行文件的C文件在哪里?如何init
从内核模块调用;引导程序init
到达内核/boot/vmlinuz
文件后如何调用模块?
有没有办法追踪哪个函数调用init
函数?到目前为止,我尝试了以下操作:尝试遍历readelf和nm,但无法使用它们追溯到被调用方。
systemd
更换后的引导程序init
。我了解到,首先调用与udev和d-bus有关的侦听套接字;然后启动每个进程,并获得与这些套接字的连接。但是我需要清楚地了解系统的工作原理。
如有必要,请帮助我指出相关链接。我已经提到的链接很少:
但是他们的解释方式非常抽象。
linux(我使用Ubuntu)中生成init可执行文件的C文件在哪里可用?
这取决于哪个包提供init
可执行文件。在默认的Ubuntu Utopic安装中,/sbin/init
是的符号链接/sbin/upstart
,因此您需要查找的源upstart
。使用您喜欢的搜索引擎进行的简单搜索可能会将您带到Upstart页面,该页面包含指向源代码下载和VCS存储库的链接。
您也可以使用该apt-get source
命令下载特定软件包的源。您还需要dpkg-dev
安装软件包(apt-get install dpkg-dev
),然后可以运行:
apt-get source upstart
之后,您将拥有:
root@ubuntu:~# ls upstart-1.13.2/
ABOUT-NLS config.guess contrib extra ltmain.sh po TODO
aclocal.m4 config.h.in COPYING HACKING m4 README util
AUTHORS config.rpath dbus init Makefile.am README.tests
ChangeLog config.sub debian INSTALL Makefile.in scripts
compile configure depcomp install-sh missing test
conf configure.ac doc lib NEWS test-driver
在Ubuntu Vivid上,/sbin/init
是一个符号链接/lib/systemd/systemd
,因此您将需要获取systemd源。
请注意,新贵公司和systemd的运作方式与旧版/sbin/init
系统截然不同。上面链接中的文档描述了每个系统的运行方式。
如何从内核模块调用init;在到达内核/ boot / vmlinuz文件后,引导程序如何调用init模块?
引导加载程序不会调用init
。引导加载程序将加载并执行内核。
有没有办法跟踪哪个函数调用init函数?到目前为止,我尝试了以下操作:尝试遍历readelf和nm,但无法使用它们追溯到被调用方。
我不清楚您要在这里做什么。内核调用/sbin/init
。也许这个问题是相关的。
systemd替换init后的引导过程。我了解到,首先调用与udev和d-bus有关的侦听套接字;然后启动每个进程,并获得与这些套接字的连接。但是我需要清楚地了解系统的工作原理。
就像我之前说的,systemd并没有取代init,而是取代了upstart,而upstart取代了init。希望systemd网站上提供的文档能够帮助您了解事物的工作方式。如果不是这样,如果您对一些不清楚或行为不正常的特定问题提出疑问,您可能会得到更好的答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句