Linux 一些/proc和/dev问题
(1) /proc是否总是出现在所有linux系统上,或者它是某个地方的一个选项(例如内核编译、引导等) (2) 什么决定了/proc中存在哪些子目录?它们是否总是相同的,或者它们是可配置的和/或可由用户空间程序创建的(可能以root用户身份运行) (3) 我注意到/dev/shm存在于我的系统中,而不必挂载它,也不存在于/etc/fstab中。这是自动的还是由什么东西造成的?相反,我必须装载/dev/mqueue。这不是也应该自动安装吗 (4) 以编程方式确定是否安装了设备或目录的正常/最佳方法是什么?应该只查找开放性错误还是有API调用 谢谢Linux 一些/proc和/dev问题,linux,unix,linux-kernel,Linux,Unix,Linux Kernel,(1) /proc是否总是出现在所有linux系统上,或者它是某个地方的一个选项(例如内核编译、引导等) (2) 什么决定了/proc中存在哪些子目录?它们是否总是相同的,或者它们是可配置的和/或可由用户空间程序创建的(可能以root用户身份运行) (3) 我注意到/dev/shm存在于我的系统中,而不必挂载它,也不存在于/etc/fstab中。这是自动的还是由什么东西造成的?相反,我必须装载/dev/mqueue。这不是也应该自动安装吗 (4) 以编程方式确定是否安装了设备或目录的正常/最佳方
/proc
通常由init脚本装载,如下所示:
mount none /proc -t proc
proc
是内核导出的虚拟文件系统。它的内容完全由内核和加载的模块决定,这些模块可以注册以添加额外的条目
*除了/proc
中的一些子目录通常与其他虚拟文件系统一起过度装载,例如:mount none/proc/bus/usb-t usbfs-o devmode=0664,devgid=plugdev
mount none/proc/sys/fs/binfmt\u misc-t binfmt\u misc
mount none/proc/fs/nfsd-t nfsd
/sbin/init
查看/etc/inittab
以确定要运行的内容,通常是/sbin/rc
或类似内容,然后通过/etc/rcS.d/*
等,并且您的发行版也很可能在initramfs中进行初步设置mount
命令的输出,或/proc/mounts
文件,或/proc/self/mounts
//proc/self/mountinfo
文件在较新内核上的输出,以确定当前装载的内容
您可以将目录的stat
的st_dev
与其父目录进行比较;如果不同,则目录是装入点
除非您编写的代码是在非标准系统上运行的,或在系统设置之前启动时运行的,否则您可能会假定已安装/dev
、/proc
、/sys
等至于第4点,格式完全相同:
/etc/mtab->/proc/mounts
$ grep proc /proc/filesystems
nodev proc