gpt4 book ai didi

init ELF 可执行文件的 C 文件?

转载 作者:行者123 更新时间:2023-11-30 17:11:26 24 4
gpt4 key购买 nike

我有几个问题,我试图用谷歌来找出答案,但徒劳无功。因此,将其发布在这里。预先感谢您的宝贵时间。

  1. Linux(我使用 Ubuntu)中哪里有可以生成 init 可执行文件的 C 文件? init是如何从内核模块调用的;引导加载程序在访问内核 /boot/vmlinuz 文件后如何调用 init 模块?

  2. 有没有办法跟踪哪个函数调用 init 函数?到目前为止我尝试过的:尝试通过 readelf 和 nm 但无法追溯到使用它们的被调用者。

  3. systemd 替换 init 后的引导过程。我了解到,首先调用与 udev 和 d-bus 相关的监听套接字;然后每个进程都会启动并连接到这些套接字。但我需要清楚地了解系统的工作原理。

如有需要请帮我指出相关链接。我已经提到的几个链接是:

但是他们解释的方式非常抽象。

最佳答案

Where are the C files available in linux(I use Ubuntu) that generate init executable?

这取决于哪个软件包提供 init可执行的。在默认的 Ubuntu Utopic 安装中,/sbin/init/sbin/upstart 的符号链接(symbolic link),因此您需要找到 upstart 的来源。使用您最喜欢的搜索引擎进行简单搜索可能会指向 the Upstart page ,其中包括源下载和 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 的符号链接(symbolic link),所以你会想要得到 systemd sources .

请注意,upstart 和 systemd 的运行方式都与传统的 /sbin/init 有很大不同。系统。上述链接中的文档描述了每个系统的运行方式。

How is the init called from the kernel module; how does the bootloader call init module after reaching out to the kernel /boot/vmlinuz file?

引导加载程序不会调用init 。引导加载程序加载并执行内核。

Is there a way to trace which function calls init function? What I tried so far: Tried to go through readelf and nm but couldn't trace back to the callee using them.

我不清楚你想在这里做什么。内核调用/sbin/init 。也许this question是相关的。

Boot procedure after systemd replacing init. I came to an understanding that the listening sockets are invoked first related to udev and d-bus; and then every process kick starts and get connections to these sockets. But I needed clarity in understanding how the system works.

正如我之前所说,systemd 并没有取代 init,它取代了 upstart,而 upstart 取代了 init>。希望 systemd 网站上提供的文档能够帮助您了解其工作原理。如果没有,如果您就不清楚或不符合您认为应有行为的特定事物提出问题,您可能会得到更好的答案。

关于init ELF 可执行文件的 C 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32269191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com