Linux设备命名、数据流动及文件操作全解析
1. udev设备命名规则
在现代的Fedora和CentOS版本中,udev将其默认命名规则存储在 /usr/lib/udev/rules.d 目录下的文件中,而本地规则和配置文件则存于 /etc/udev/rules.d 目录。每个文件都包含针对特定设备类型的一组规则。不过,CentOS 6及更早版本将全局规则存于 /lib/udev/rules.d/ 。不同的发行版中,udev规则文件的位置可能有所不同。
早期的udev版本中,创建了许多本地规则集,其中就包括网络接口卡(NIC)命名规则集。当内核检测到每个NIC并由udev首次重命名时,会将一条规则添加到网络设备类型的规则集中。最初这样做是为了在名称从“ethX”变为更统一的名称之前确保一致性。
然而,使用udev进行持久的即插即用命名也带来了一些问题。随着时间推移,规则不断变化,网络接口卡至少有三种显著不同的命名约定。这种命名差异造成了极大的混乱,在规则变更期间,许多配置文件和脚本不得不多次重写。例如,原本名为eth0的NIC,可能会依次变为em1、p1p2,最终变为eno1。
如今,udev有了多个一致的默认规则来确定设备名称,特别是对于NIC,为保持一致性,不再需要将每个设备的特定规则存储在本地配置文件中。
2. 设备数据流动
为了直观了解设备特殊文件的工作原理,我们来看一个典型命令的数据流动。以在GUI终端模拟器(如Konsole或xterm)中执行 # cat /etc/resolv.conf
超级会员免费看
订阅专栏 解锁全文
2637

被折叠的 条评论
为什么被折叠?



