/dev、/proc 和 /sys 中有什么?

mef*_*efe 16 filesystems mount

mount列出了一些文件系统之后。我需要知道/dev,/proc/sys. 一些例子会很棒!

War*_*ung 27

/dev树包含设备节点,它允许用户空间访问操作系统运行内核中的设备驱动程序。¹ 所有 POSIX 类型的操作系统都有一个/dev树。

/proc树起源于 System V Unix,它使用一种/proc/$PID/stuff方案仅提供有关每个正在运行的进程的信息。Linux 大大扩展了这一点,添加了有关正在运行的内核状态的各种信息。除了这些只读信息文件之外,Linux/proc还具有可写的虚拟文件,可以更改正在运行的内核的状态。BSD 类型的操作系统通常根本没有/proc,因此您在此处找到的大部分内容都是不可移植的。

Linux 中这种混乱的预期解决方案/proc/sys. 理想情况下,所有进入/proc树中的非过程信息/sys现在应该已经转移到了,但是历史惯性已经将很多东西保留在/proc. 通常有两种方法可以改变正在运行的内核:旧/proc方法,保留向后兼容性,以及/sys你现在应该使用的新方法。²


脚注:

  1. 也有几个/dev项目不对应于硬件设备,如/dev/null/dev/random/dev/tty。这些是虚拟设备,允许用户空间程序以类似设备的方式与运行驱动程序之外的内核的其他部分进行对话。

  2. 作为一项规则,/sys往往比 更严格地组织/proc,因为/sys反映了管理系统资源的内部内核数据结构,而/proc多年来有机地增长,并且旧的有问题的设计决策现在不能改变,因为有程序使用那些旧接口. /sys从更清晰的设计开始,不必像/proc.