深圳网站设计公司哪个,设计企业展厅的公司,怎么做找券网站,微信公众号制作编辑器以下内容源于朱有鹏嵌入式课程的学习与整理#xff0c;如有侵权请告知删除。 一、proc文件系统介绍 1、操作系统级别的调试一般很困难 简单的程序可以单步调试#xff1b;复杂一点的程序可以printf、cout等打印信息调试#xff08;即输出信息到控制台#xff09;#xff0…以下内容源于朱有鹏嵌入式课程的学习与整理如有侵权请告知删除。 一、proc文件系统介绍 1、操作系统级别的调试一般很困难 简单的程序可以单步调试复杂一点的程序可以printf、cout等打印信息调试即输出信息到控制台也可以利用框架体系日志记录信息调试即输出信息到某个txt内核很复杂比如是多线程的调试起来很困难。此时proc虚拟文件系统应运而生。 2、proc虚拟文件系统的工作原理 linux内核是一个非常复杂的的程序调试此程序很困难。另外kernel这样庞大的项目添加或更改其中一个功能是非常麻烦的因为该功能可能会影响其他功能。早期内核版本中尽管调试很麻烦但是高手们凭借个人超凡脱俗的能力还是可以驾驭但是到了2.4左右的版本时难度就非常大了。为了降低内核调试和学习的难度内核开发者们在内核中添加了一些属性专门用于调试内核proc虚拟文件系统就是一个尝试。 工作原理在内核中构建一个虚拟文件系统/proc内核运行时将内核中一些关键的数据结构以文件的方式呈现在/proc目录中的一些特定文件中这样一来就可以将不可见的内核中的数据结构以可视化的方式呈现给内核的开发者。 proc文件系统提供了一种调试内核的方法。开发者通过实时观察/proc/xxx文件可以获取内核中特定数据结构的值或者对比添加新功能的前后判断新功能产生的影响对与否。 3、常用proc中的文件介绍 proc目录中的文件文件大小都是0因为它们只是一个接口并非真实存在于硬盘的文件。当读取这些文件时内核并不是去硬盘寻找这个文件而是将内核内部的某些数据结构映射出来格式化成字符串后返回。尽管我们看到的内容和普通文件一样的但是我们明白这个内容是实时地从内核中数据结构来的而不是从硬盘中来的。另外这些文件都是只读的不能更改。 常用proc中的文件如下 1/proc/cmdline这是命令行参数。 2/proc/cpuinfo 3/proc/devices调试驱动的时候会用到。 4/proc/interrupts 二、proc文件系统的使用 1、cat以手工查看如“cat /proc/cmdline”。 2、程序中可以文件IO访问。 3、在shell程序中用cat命令结合正则表达式来获取并处理内核信息 三、sys文件系统 1、sys文件系统的介绍 sys文件系统和proc文件系统一样都是虚拟文件系统都在根目录下有个目录一个是/proc目录另一个是/sys目录因此都不是硬盘中的文件都是内核中的数据结构的可视化接口。 2、sys文件系统与proc文件系统的对比 1/proc中的文件只能读/sys中的文件可以读写读 /sys中的文件就是获取内核中数据结构的值而写入/sys中的文件就是设置内核中的数据结构的元素的值。 2/proc文件系统比/sys文件系统出现得早但/sys文件系统比/proc有规划 历史上是先有/proc文件系统的人们希望通过这种技术来调试内核。实际做出来后确实很有用所以很多内核开发者都去内核添加代码向/proc目录中写文件。内核管理者起初对proc目录的使用没有统一规划导致后面proc里面的东西很杂乱而内核管理者对/sys文件系统进行了规划使用sys目录时有了规矩。