Linux 内核将所有的设备都抽象成文件管理。这在 Linux 开发中非常有用,比如读取和写入端口只需要文件操作就可以了。

基本上,Linux 系统下的文件类型可以划分成 普通文件、目录(是的,目录也是文件)、字符设备文件、块设备文件、符号链接文件等。具体的文件类型信息,可以 参考这里

https://friable.rocks/_/2007_11_10/1194688459.gif

很多兄弟都会发现,在根目录(「/」)下都有个名为 proc 的目录。而实际的硬盘上,却并没有此目录内容。这是因为 Linux 内核在初始化系统以后,对系统各信息生成的映射。

比如,/proc/cpuinfo 文件记录了本机的 CPU 信息。放心的 cat 一下吧,它可以认为是个文本文件。这样,无论调用哪种程序语言(当然,Javascript 可不行),只要访问这个文件的内容就可得知 CPU 信息。

类似的,比如

  1. /proc/meminfo 本机的内存信息
  2. /proc/version 内核的版本信息,甚至包含了编译日期
  3. /proc/filesystems 内核支持的文件系统列表
  4. /proc/uptime 记录了系统已经运行了多少秒
  5. ...

通过 proc 目录,还可以得知内核是否支持某项功能。比如在 proc 目录下有没 apm (「/proc/apm」)文件,即可得知内核是否支持高级电源管理等等。

最后,有关 proc 更多的内容,可以 参看这里