前天去图书馆借了本分析linux kernel的书,准备开始阅读kernel。其中介绍了一些代码的阅读工具,自己觉得LXR是不错的选择。
去LXR的网站上看了一下,里面有新内核和一些其他源代码的阅读链接,但是需要在线阅读,太不方便,还是决定自己安装一个。比较了两个不同版本的lxr软件包,最后还是决定安装比较老的版本,它不需要安装数据库(虽然我的电脑上安装了mysql,但是太麻烦,网上说还和mysql的关键字有冲突)。安装非常方便,但是在安装之前需要配置makefile文件,指定perl的位置和文件安装的位置。
安装完成之后,麻烦的是配置lxr.conf。其中的许多路径都要换成现在安装的路径(直接使用文本编辑器的替换功能就可以了),然后还要指定baseurl,这个地址需要包含到http文件夹为止,因为里面很多的跳转都是相对跳转,我开始就是因为把localhost打成loaclhost了,网页中的链接都无法使用。
当然,还要修改一下http服务器的配置,将lxr中的http文件夹加入到服务器的路径中。为了执行其中的perl文件,需要在http文件夹的下创建.htaccess,这个倒是在安装包的INSTALL文件里有说明的。
最苦恼的是添加源代码文件夹了。INSTALL文件没有仔细说明,需要在source文件夹下自己新建一个文件,名称为versions,然后在这个文件夹里添加版本号,再在source文件夹下创建一个以这个版本号为名称的目录,将源代码放到这里,源代码的文件夹名称改为linux(当然这个名称可以在lxr.conf中修改)。进入一版本号命名的文件夹,用bin文件夹中的genxref创建源代码的索引,执行../../bin/genxref linux/
还有,如果需要使用搜索功能(可以搜索文件内容),需要安装glimpse。安装非常简单,安装完成以后,需要在lxr.conf配置文件中指定它的路径。然后在刚才创建的以版本号命名的文件夹下执行:glimpseindex -H . linux
这样就可以使用freetext search这个功能了。