内核窗口---proc文件系统

proc文件系统是Linux内核提供的一种虚拟文件系统,用于展示内核数据结构,方便调试和查看系统信息。它包含进程信息、硬件状态、内存使用情况等实时数据。本文介绍了proc文件系统的产生背景、设计思路、文件特性,以及进程目录和系统目录中常见的文件和文件夹,如cmdline、meminfo、cpuinfo等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内核窗口—proc文件系统

引言:在写进程调度笔记时,我特别好奇,想了解一下ubuntu 14.04到底采取的是什么调度策略,于是接触到proc文件系统,它内部包含很多内核数据信息。这里并不会分析每一个文件、每一条数据的含义。仅仅是介绍Proc文件系统产生背景,常见文件含义。以后遇到相关问题时,再深入学习。


一、Proc文件系统简单介绍

1.1、产生背景

  Linux内核是一个非常庞大、非常复杂的程序,对于这样一个程序来说,调试是一件非常复杂的事情。随着Linux内核版本更新迭代,给里面添加/修改一个功能是非常麻烦的,因为其可能会影响其他已有的。为了降低内核调试和学习的难度,内核开发者们在内核中天价了一些属性专门用于调试,proc文件系统就是一个尝试。

1.2、设计思路

  Proc文件的设计思路是:在内核中构建一个虚拟文件系统/proc, 将内核运行时其关键的数据结构以文件的方式呈现在/proc目录的特定文件中,以可视化的方式呈现给内核开发者。proc文件系统给开发者一种调试内核的方法:我们通过实时的观察/proc/xxx文件,来观看内核特定数据结构的值,当我们添加一个增删新功能时,可以知道这个新功能的影响是对还是不对。

这里写图片描述
图1、proc文件夹下部分内容

  这里仅截取了部分内容,并且用红色及绿色的框分成两部分,其中红色框内部文件以数字命名,其实际为进程的PID,文件夹内容记录进程的相关信息,会在后面介绍。绿色框内部包含了熟悉的buddyinfo、meminfo、cpuinfo等,这些反映了计算机硬件及内核的实时信息。

1.3、proc文件特性

  proc目录下文件的大小都是0,因为这些文件本身并不存在于磁盘中,它也不是一个真实的文件,只是一个接口。当我们去读取这个文件时,内核并不是磁盘找这个文件,而是映射为内核内部一个数据结构被读取,并且格式化成字符串返回给我们。所以尽管我们看到的还是一个文件内容字符串,和普通文件一样,但实际上这个内容是实时从内核的数据结构来得,而不是硬盘中来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值