我是中级 Linux 用户,具有基本的编程知识(c、perl、js ...)和一些系统故障排除(strace、SystemTap、lsof ...),我厌倦了谷歌搜索 Linux 日志中的消息(/变量/日志/消息)。我想提高我的 Linux 内核知识。由于 Linux(以及 ssh 等实用程序)是开源的,因此在某处可以找到源代码。所以我的问题是:如何在源代码级别对 Linux 问题进行故障排除/调试?这对中级 Linux 用户来说是否可行?从哪里开始以及如何以这种方式提高我的编程技能和 Linux 内核知识?
问问题
165 次
3 回答
1
于 2013-05-22T16:42:17.177 回答
1
老实说,Goole 将永远是您满足特定要求的最佳选择。
但是,如果您想要理论知识,请阅读书籍(或您可以在 Google 上找到的电子书等价物)。祝你好运。
于 2013-05-22T16:19:16.887 回答
0
使用Linux 源的稳定树的git 克隆。
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
您的版本将被标记;git tag
在目录中运行。签出该版本,例如git checkout v3.4.45
. 然后你可以运行git grep *log message*
. 你可能没有命中,所以你可以修剪字符串直到你这样做。例如,数字、驱动程序和模块名称通常采用格式字符串。
内核消息通常在源中包含printk
、dev_err
、BUG
等。通常,您将能够判断lsmod
系统中是否存在模块。模块名称和源文件通常匹配。因此,您可以获得有关代码是否存在于系统中的线索。
于 2013-05-22T18:16:40.580 回答