讲完了复杂了中断处理,铁人赛的倒数第二天,要来看看一些虚拟的文件系统了,首先是 procfs
与 sysfs
为什麽这两个目录会存在呢?为了是让调整测试kernel的时候能够比较方便,所以才创造出了这两个虚拟系统。
profs 并不是真正意义上的文件系统,虽然会放在记忆体中,却不会占用磁碟空间,proc文件系统包含了结构化的目录和虚拟文件,既可以向用户呈现kernel中的一些讯息,也可以当作一种从user space 向kernel发送讯息。 这些虚拟文件在试用查看命令查看时会返回大量的讯息,但是文件本身显示为 0byte ,此外这些特殊文件中,大多数见的时间及日期属性是当前系统时间和日期。事实上 ps, top这些SHELL命令就是从proc文件系统中读取信息的。
/proc/PID/cmdline
: 启动该行程的命令列.
/proc/PID/cwd
: 当前工作目录的符号连结.
/proc/PID/environ
: 影响行程的环境变数的名字和值.
/proc/PID/exe
: 最初的可执行档的符号连结, 如果它还存在的话。
/proc/PID/fd
: 一个目录,包含每个打开的档案描述子的符号连结.
/proc/PID/fdinfo
: 一个目录,包含每个打开的档案描述子的位置和标记
/proc/PID/maps
: 一个文字档案包含记忆体对映档案与块的资讯。
/proc/PID/mem
: 一个二进位图像(image)表示行程的虚拟记忆体, 只能通过ptrace化行程存取.
/proc/PID/root
: 该行程所能看到的根路径的符号连结。如果没有chroot监狱,那麽行程的根路径是/.
/proc/PID/status
: 包含了行程的基本资讯,包括执行状态、记忆体使用。
/proc/PID/task
: 一个目录包含了硬连结到该行程启动的任何任务
有了proc目录,为什麽还要sys目录呢?
在Linux kernel的开发阶段,很多kernel module会向proc目录中添加节点和目录,导致PROC目录中的内容杂乱无章,因此在procfs 之後诞生了sysfs这个新的虚拟文件系统。这个新的设备模型是为了统一所有电脑的操作与表示,包含设备与设备之间的连接。
sys文件系统的几个主要目录跟功能简述
block
: 描述系统里的 block device
class
: 根据设备功能分类的设备模型
devices
: 描述系统中所有的设备
fs
: 描述系统所有的文件系统
module
: 描述系统的模块
bus
: 将系统中所有的设备连接到某个总线
dev
: 按照 character device 和 block device的主次号码连接到真实设备的符号连接文件
firmware
: 与系统加载硬体相关的接口
kernel
: kernel 可调整的参数
power
: 电源管理相关的参数。
这是一种用来调整内核的内存文件系统,可以透过debugfs和用户空间机换数据。有时我们需要在运行中修改某些kernel 的数据,因此利用这个临时的文件系统把在意的数据映射到用户空间。 sysfs与 procfs也可以做到这些事情,前者是用来反映系统以及行程的状态讯息,後者是用於Linux设备驱动模型,因此把私人的测试讯息加入这两个虚拟文件系统不大合适,因此特别创立了这个虚拟系统。
>>: Day 29 - XState in React 2 (着重: global state and performance concerned)
在测试一个网页时,时常会有需要等待的时候,可能是等待网页载入、等待 UI 显示或等待搜寻结果等 pa...
「在写什麽呀?」唯心用手指戳了戳诗忆的额头。「眉头都皱起来了。」 「喔,学姐,我在练习高阶函式,把函...
WhatWeb是一个用来分析网站的工具,拥有超过1800种的插件来分析网站,包括服务器类型、版本、I...
事件简述 前篇学习历程救援事件(灾难复原实例)後续追踪之外也看到了其它瓜... 北市教育局指出,学习...
实作自己的全域 count, setCount codesandbox demo const { c...