Linux 会自动使用正确的设备和目录结构填充 devtmpfs。这为 提供了几乎完整的树/dev
,但pts
设备明显缺失。
对于pts
设备,Linux 提供了另一个名为 devpts 的虚拟文件系统。然而,这也是设备节点的集合,当人工安装程序简单地将 devtmpfs 挂载到 chroot dev 目录时,有时会引起意外。
我发现该设计可能源于历史原因,但即便如此,内核也可以简单地/dev/pts
自动填充 devtmpfs,并且以前使用带有 devpts 的 udev 管理的 tmpfs 的任何发行版都可以迁移到仅 devtmpfs。否则我想不出做出这个决定的充分理由。
答案1
该设计确实具有历史意义:devpts
文件系统与Unix98 PTY 支持,已经存在很长时间了,而devtmpfs
文件系统没那么旧。
devtmpfs
本来可以包括对 的支持/dev/pts
,但有一些理由将它们分开。这两个功能是独立的,因此可以使用devpts
或不使用来配置内核devtmpfs
,反之亦然。还可以将系统配置为/dev/pts
在任何类型的之上使用/dev
- 静态(根文件系统的一部分)、单独的udev
托管tmpfs
(如您所提到的)或devtmpfs
.无论如何,保留所有这些可能性都需要单独的/dev/pts
实现,因此/dev/pts
向devtmpfs
.