gpt4 book ai didi

linux - 几个/proc 和/dev 的问题

转载 作者:太空狗 更新时间:2023-10-29 11:34:54 24 4
gpt4 key购买 nike

(1)/proc 是否始终存在于所有 linux 系统上,或者它是某处的一个选项(例如内核编译、引导等)?

(2) 什么决定了/proc 中存在哪些子目录?它们是否始终相同,或者它们是否可由用户空间程序(大概以 root 身份运行)配置和/或创建?

(3) 我注意到/dev/shm 存在于我的系统上而无需挂载它,它也不存在于/etc/fstab 中。这是自动的还是有什么东西创造了它?相反,我必须挂载/dev/mqueue。这不应该也自动安装吗?

(4) 以编程方式确定设备或目录是否已挂载的正常/最佳方法是什么?应该只查找 Unresolved 错误还是有 API 调用。

谢谢。

最佳答案

  1. /proc 通常由初始化脚本挂载,如下所示:

    mount none /proc -t proc

    如果不这样做,您将看不到 /proc 的预期内容(但您也会有一个不符合 POSIX 的系统)。

  2. $ grep proc /proc/filesystemsnodev   proc

    proc 是内核导出的虚拟文件系统。它的内容完全*由内核和加载的模块决定,这些模块可以注册以添加额外的条目。

    * 除了在/proc 中有一些子目录经常被其他虚拟文件系统覆盖,例如:
    mount none/proc/bus/usb -t usbfs -o devmode=0664,devgid=plugdev
    mount none/proc/sys/fs/binfmt_misc -t binfmt_misc
    挂载 none/proc/fs/nfsd -t nfsd

  3. 检查您的初始化脚本。 /sbin/init 查看 /etc/inittab 以确定要运行的内容,通常是 /sbin/rc 或类似的,然后运行通过 /etc/rcS.d/* 等,您的发行版也很有可能也会在 initramfs 中进行初步设置。

  4. 视情况而定。

    您可以阅读 mount 命令或 /proc/mounts 文件或 /proc/self/mounts 的输出//proc/self/mountinfo 较新内核上的文件,以确定当前安装的内容。

    您可以将目录的 statst_dev 与其父目录进行比较;如果不同,则该目录是一个挂载点。

    除非您编写的代码要在非标准系统上运行或在系统设置之前启动,否则您可以假设 /dev/proc/sys等挂载。

关于linux - 几个/proc 和/dev 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com