当前代码git地址:
r77683962/linux-6.9.0https://gitee.com/r77683962/linux-6.9.0
当前测试日志和测试脚本地址:
测试结果:
(temp.txt实际上是/var/log/kern.log拷贝来的,用于函数在日志打印调用次数计算的):
中括号里边打印对应c语言程序代码(最后的LOG_PROCESS):
基于日志打印的代码也可以比较容易看出来中括号里边从左向右分别是:
源代码所在文件、函数、行号、进程ID、进程名以及当前打印的日志类型,中括号外边就是自己想要打印代码的字符串,参数列表什么的。
测试方法和步骤:
1、操作系统开机,一般要进入到桌面(未进入桌面前内核还在初始化,调用进程结构体信息有一定风险);
2、把/var/log/kern.log文件清空echo "" > /var/log/kern.log
3、打开内核日志记录并且类型为LOG_PROCESS: touch LOG_PROCESS
4、下载外网一个文件:wget https://mirror.nju.edu.cn/ubuntu-releases/24.04/ubuntu-24.04.1-desktop-amd64.list
5、过5秒后停止日志记录:touch LOG_STOP
6、然后可以把kern.log复制到一个临时文件temp.txt
然后就可以执行第1张图的字符串过滤了
在第1张图里好像还有第0号进程,稀客。。。
在第1张图里也看到以太接口对收发包和字节的计数,其实数据就是ifconfig命令的,当前数量对不上,前面有博客是可以对得上的。
从第1张图由于字符串过滤的原因看不出来系统的多进程,如果不过滤,看到的是如下图这样子,可以比较好的说明多进程,操作系统不断的多进程切换,就这一张图有不少进程。。。操作系统辛苦了。。。。: