21.5 使用“/proc”
在Linux系统中,“/proc”文件系统十分有用,“/proc”文件系统被内核用于向用户导出信息。“/proc”文件系统是一个虚拟文件系统,通过“/proc”文件系统可以在Linux内核空间和用户空间之间进行通信。在/proc文件系统中,可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,与普通文件不同的是,这些虚拟文件的内容都是动态创建的。
“/proc”下的绝大多数文件是只读的,以显示内核信息为主。但是“/proc”下的文件也并不是完全只读的,若节点可写,还可用于一定的控制或配置目的,例如写/proc/sys/kernel/printk改变printk()的打印级别。
Linux系统的许多命令本身都是通过分析“/proc”下的文件来完成的,如ps、top、uptime和free等。例
如,free命令通过分析/proc/meminfo文件得到可用内存信息,下面显示了对应的meminfo文件和free命令的
结果。
1.meminfo文件
ubuntu2018@ubuntu2018:/proc$ cat meminfo
MemTotal: 16328656 kB
MemFree: 220156 kB
MemAvailable: 15558400 kB
Buffers: 3749032 kB
Cached: 8901380 kB
SwapCached: 568 kB
Active: 8137332 kB
Inactive: 4691280 kB
Active(anon): 64596 kB
Inactive(anon): 137404 kB
Active(file): 8072736 kB
Inactive(file): 4553876 kB
Unevictable: 3652 kB
Mlocked: 3652 kB
SwapTotal: 999420 kB
SwapFree: 994156 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 181808 kB
Mapped: 83704 kB
Shmem: 21372 kB
Slab: