![Linux内核直接在根文件系统中查找哪些配置文件?](https://linux22.com/image/215982/Linux%E5%86%85%E6%A0%B8%E7%9B%B4%E6%8E%A5%E5%9C%A8%E6%A0%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%93%AA%E4%BA%9B%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%9F.png)
/etc 中有很多配置文件。其中一些是由已安装的应用程序(如 samba)使用的,但是是否有内核直接查找的配置?例如密码、组、主机名等?如果是的话,其中哪些直接用于内核?
答案1
None:内核不直接读取任何配置文件。各种工具读取配置文件并在内核中进行设置(例如 sysctl
)但内核本身没有。
答案2
关于 Linux 内核及其作用的几句话。
内核本身实际上什么也不做。我不是在开玩笑。当您加载它时,它会尝试初始化您的硬件,然后尝试/sbin/init
从根文件系统(安装在 的文件系统/
)执行,就是这样。但有一个警告。
内核本身是大量的算法,它们提供 API(将用户空间调用转换为硬件知道如何处理的东西)供应用程序使用,即使这些应用程序不直接使用这些 API,它们也通过中间人,例如 glibc(C 语言 API)或 Mesa(OpenGL、Vulkan API)。
前面谈到了警告。
可以指示内核通过 iptables、nftables 等来处理网络数据包,但内核不会生成这些数据包,它要么从外部接收它们,要么由于运行请求发送它们的应用程序而发送它们。一个小例外是 ping,它看起来有点像内核正在工作,但为了 ping 工作,用户空间必须指示内核如何配置网络。当内核启动时,根本没有网络协议。
答案3
@Stephen Kitt 已经提供了一个很好的答案,但是如果您想知道该文件属于哪个实用程序/包,您可以尝试这样的方法。
基于 Debian 的 deb 软件包:
find /etc/ -type f -exec dpkg -S {} \;
基于 RedHat 的 RPM 软件包:
find /etc/ -type f exec rpm -qf {} \;
命令将查找 /etc/ 目录中的所有文件,并对每个文件所属的包运行查询。您将看到内核(或 linux-image)包没有结果。