2

我是中级 Linux 用户,具有基本的编程知识(c、perl、js ...)和一些系统故障排除(strace、SystemTap、lsof ...),我厌倦了谷歌搜索 Linux 日志中的消息(/变量/日志/消息)。我想提高我的 Linux 内核知识。由于 Linux(以及 ssh 等实用程序)是开源的,因此在某处可以找到源代码。所以我的问题是:如何在源代码级别对 Linux 问题进行故障排除/调试?这对中级 Linux 用户来说是否可行?从哪里开始以及如何以这种方式提高我的编程技能和 Linux 内核知识?

4

3 回答 3

1

Linux 内核交叉引用可能会有所帮助。您可以通过单击链接浏览源。

在这里试试(还有其他 URL,但我发现这个从我的位置最可靠):

http://lxr.free-electrons.com/

于 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*. 你可能没有命中,所以你可以修剪字符串直到你这样做。例如,数字、驱动程序和模块名称通常采用格式字符串。

内核消息通常在源中包含printkdev_errBUG等。通常,您将能够判断lsmod系统中是否存在模块。模块名称和源文件通常匹配。因此,您可以获得有关代码是否存在于系统中的线索。

于 2013-05-22T18:16:40.580 回答