我是中级Linux用户,具有编程基础知识(c,perl,js ...)和一些系统故障排除(strace,SystemTap,lsof ...),我厌倦了谷歌搜索到Linux的消息logs(/ var / log / messages)。我想提高我的Linux内核知识。由于Linux(以及它的实用程序,如ssh等)是开源的,因此可以在某处获得源代码。所以我的问题是:如何在源代码级别上解决/调试Linux问题?这对中级Linux用户来说甚至可能吗?从哪里开始以及如何以这种方式提高我的编程技能和Linux内核知识?
答案 0 :(得分:1)
老实说,Goole永远是您满足特定要求的最佳选择。
但是,如果您需要理论知识,请阅读书籍(或者您可以在Google上找到的电子书等效书籍)。祝你好运。
答案 1 :(得分:1)
答案 2 :(得分:0)
使用Linux源代码稳定树的 git clone 。
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
告诉您系统中是否存在模块。模块名称和源文件通常匹配。因此,您可以了解代码是否存在于您的系统中。