找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 363|回复: 0

我理解的proc伪文件系统

[复制链接]

2万

主题

162

回帖

18万

积分

管理员

积分
184954
发表于 2024-7-4 12:37:26 | 显示全部楼层 |阅读模式 IP:山东省青岛市 联通

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×

资源来自互联网分享,侵权请告知删除。
如链接失效,请联系管理


我理解的proc伪文件系统

一.概念

提供可以动态操作Linux内核信息的接口,实现内核空间与用户空间进行数据交换的途径。


二.观察文件内容


[Bash shell] 纯文本查看 复制代码
//crtl+alt+t 快速打开Linux终端
//输入一下内容
cd /proc //进入proc文件夹
ls       //观察proc文件夹下的内容
cd 2414  //任意打开一个带数字的文件夹观察
cd self  //打开self文件夹观察


观察发现,两者的文件夹下的内容是相同的。

这些文件夹作用是什么呢?

以proc/self/maps文件夹为例子进行介绍,使用cat进行查看


[Bash shell] 纯文本查看 复制代码
cat /proc/self/maps


1.png


第一列代表本部分映像文件所对应的虚拟地址范围 。

第二列代表本部分映像文件所能进行的操作,r-读取,w-写,x-执行,p-私有。

第三列代表偏移量。本部分映像文件在进程空间的偏移量。

第四列代表映像设备的主设备号和次设备号。

第五列代表映像文件的结点号。

第六列代表映像文件的绝对路径。


三.proc伪文件系统介绍

(1)只存在于内存当中

(2)动态改变的

(3)数字命名的文件夹是进程的PID,存储着各个进程的信息。

(4)还有一些文件夹是包括通用系统信息,网络信息,系统控制信息


四.PCB--进程控制块


包含每一个进程生存过程中的全部重要信息,管理进程资源使用

Linux中的进程控制块--task_struct,包含的信息如下,可以在sched.h的头文件中找到。

1.png

进程的状态在linux操作系统中分为6种,宏定义如下

[Bash shell] 纯文本查看 复制代码
#define TASK_RUNNING		0
#define TASK_INTERRUPTIBLE	1
#define TASK_UNINTERRUPTIBLE	2
#define __TASK_STOPPED		4
#define __TASK_TRACED		8
/* in tsk->exit_state */
#define EXIT_DEAD		16
#define EXIT_ZOMBIE		32


另外,每个进程还有两个独立的状态标志

[Bash shell] 纯文本查看 复制代码
task->exit //关于进程退出状态的
task->state//关于进程运行状态的


可以使用如下的函数获取进程的状态,返回值为task_struct中的state,共五种状态

[Bash shell] 纯文本查看 复制代码
get_task_state()

课本上进程的状态有五种,分别是就绪、运行、阻塞、睡眠、退出。

TASK_RUNNING对应--就绪、运行(ready)(running)

TASK_INTERRUPTTIBLE、TASK_UNINTERRUPTTIBLE对应着阻塞(waiting)

_TASK_INTERRUPTTIBE对应着睡眠(sleep)

_TASK_STOPPED对应着退出(exit)


from: 我理解的proc伪文件系统_proc self map-CSDN博客




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|哩布大模型|Civitai大模型|IP定位|图反推|站长素材|deepseek|即梦视频|阿狗工具|花瓣网|pinterest|php手册|宝塔文档|CyberChef|猫捉鱼铃|手机版|小黑屋|下载狗|IPS|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2025-5-10 05:47

Powered by 分享屋 X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表