不同Linux发行版上配置文件的内容是如何解析的?

不同Linux发行版上配置文件的内容是如何解析的?

不同的Linux发行版将相同的配置参数存储在不同的文件中。例如 IPv4 地址Debian 威兹存储在/etc/network/interfaces文件中软呢帽20它存储在/etc/sysconfig/network-scripts/ifcfg-eth0文件中。此外,这些配置文件的语法也不同。发行版如何解析这些文件?此外,配置文件的内容是否以用户空间实用程序类似的方式进行解析ipifconfig或者是否有一些实际配置内核的较低级别的系统调用?

答案1

内核不读取任何配置文件。通常,内核会避免访问文件系统;有一些例外和变化,但主要是内核在该位置启动一个程序/sbin/init当它启动时,仅代表用户进程访问文件系统。

网络配置文件(与其他类型的配置文件一样)由应用程序读取。对于网络配置文件,这些应用程序是脚本套件和随附的二进制文件,它们读取文件并通过以下方式应用配置:系统调用。 Linux上的网络配置,系统调用主要是ioctl呼吁插座(你不需要理解这一点)。

在 Linux(以及之前的 Unix)的历史中,一些配置已经成为标准,因为每个人都同意如何做到这一点。对于用户来说,这在很大程度上是这种情况(尽管并不普遍)(/etc/passwd,NS交换机)和文件系统(fstab)。另一方面,网络配置仍然相当多样化。来自 Red Hat 的发行版将其保留在以下位置/etc/sysconfig/network:从 Debian 派生的发行版将其保留在/etc/network/interfaces.

以 Debian 为例,/etc/network/interfaces解析为ifup程序,它是从/etc/init.d/networking负责设置网络的初始化脚本调用的,它本身是由 调用的init

相关内容