一、前言
linux内核学习
1、安装vmware虚拟机或者virtualbox,再安装发行版本linux
2、www.kernel.org,挑选一个内核版本
3、进行解压并编译
4、自己写一些模块(比如说可以去尝试解一些官网的bug),如下图所示:
下面我们就可以看到还有很多内核bug未解决的问题还在那里:
下面是提交的bug测试报告:
最后有可能的话,可以去试试尝试解这些bug!!!
5、内核源码(网络)阅读:tcp_input.c tcp_out.c tcp_ipv4.c tcp.c
进程管理:task_struct
6、书籍参考:
《Linux内核完全注释》
- 中文版本,共1016页,PDF格式。http://www.oldlinux.org/download/CLK-5.0-WithCover.pdf
- 英文版本,共1117页,PDF格式。http://www.oldlinux.org/download/ECLK-5.0-WithCover.pdf
一、linux内核版本下载:
1、我们可以去官网下载linux内核版本:www.kernel.org:
注:这里我下载的是最新的内核来进行编译,环境是在ubuntu18.04;注意如果低版本的ubuntu去编译搞版本的linux内核,可能会出现一些环境配置问题,比如make的版本过低等等
kprobe是一个动态收集调试和性能信息的工具,他的基本工作机制是:用户指定一个探测点,并把一个用户定义的处理函数关联到探测点,当内核执行到该探测点时,相应的关联函数被执行,然后继续执行正常的代码路径。
参考: