如果Linux内核本身就是一个ELF文件,那么我在哪里可以找到它的ELF文件?
答案1
在许多系统上,您可以在中找到压缩内核/boot
,通常命名为vmlinuz-$(uname -r)
。其中包含的 ELF 可执行文件可以使用提取剧本extract-vmlinux
,可在内核源代码中找到:
extract-vmlinux /boot/vmlinuz-$(uname -r) > vmlinux
结果是一个 ELF 文件:
$ file vmlinux
vmlinux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=b28d236fad2fb7d0eb9bbe6eac766fb04406da3f, stripped
(在 x86-64 上)。
如果你正在构建内核,
make vmlinux
将生成 ELF 可执行文件。
答案2
在桌面/服务器上,您通常会在/boot
.
查找名为vmlinuz-*
(取决于您的发行版)的文件。
内核是如何加载的:https://www.kernel.org/doc/html/latest/admin-guide/initrd.html