说实话,在看书的时候,感觉内核一直是个想象中的东西,可想而不可触及,所以很难够有着很好的效果。其实没事的时候,我们也可以看看内核的代码,也可以编译一下内核,说不定也可以改改代码什么的,反正,能实践就多动手。这里简单介绍一下内核的编译,以及用lxr+apache+glimpse搭建本地代码服务器。
环境:ubuntu 11.04 linux-2.6.38
==================编译内核==================================
编译内核其实比较简单了,跟源码安装软件差不多,config,make install一直下去就ok了。
下面简单介绍一下:
第一步,下源码
1.首先查看自己系统使用的内核版本
kenvi@kenvi-laptop:~$ uname -r
2.6.38-10-generic
2.获取源码
寻找源码
kenvi@kenvi-laptop:~$ sudo apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
linux-source-2.6.38 - Linux kernel source for version 2.6.38 with Ubuntu patches
下载内核源码
kenvi@kenvi-laptop:~$ sudo apt-get install linux-source-2.6.38
这样在/usr/src目录下就又了源码的压缩包linux-source-2.6.38.tar.bz
解压即可
第二步,编译
进入解压后源码的目录,make oldconfig
kenvi@kenvi-laptop:/usr/src/linux-source-2.6.38$ :make oldconfig
这里消耗的时间比较长,大概半个多小时,不出错就好了,我这里出了一个小错误:
提示如下:
ld: /ubuntu/
omnibook/sections.lds: No such file: No such file or directory
make[2]: *** [ubuntu/omnibook/omnibook] Error 1
make[1]: *** [ubuntu/omnibook] Error 2
make: *** [ubuntu] Error
解决方法:
ln -s /usr/src/linux-2.6.35/ubuntu /ubuntu
然后make
kenvi@kenvi-laptop:/usr/src/linux-source-2.6.38$ sudo make
最后make bzImange
kenvi@kenvi-laptop:/usr/src/linux-source-2.6.38$ sudo make bzImage
成功的话,会提示Kernel: arch/x86/boot/bzImage is ready (#2)
这样基本上就完成了
==========================源码服务器搭建=======================
1、环境配置
需要的软件:apache2,libapache2-mod-perl2,lxr,glimpse
前面几个直接apt-get 安装即可
glimpse需要在官网下载安装
2.配置目录
在/etc/apache2/httpd.conf 末尾加上以下内容:
Alias /lxr /usr/share/lxr
lxr>
Options All
AllowOverride All
这样可以达到 =>/usr/share/lxr
3.设置脚本
在/usr/share/lxr/http下创建文件 .htaccess, 并写入一下内容:
SetHandler cgi-script
4.创建/usr/share/lxr/source/XX目录 (XX为版本号)
mkdir /usr/share/lxr/source/2.6.38
然后在/usr/share/lxr/source/2.6.38 下创建linux符号连接
ln -s /usr/src/linux-source-2.6.38 /usr/share/lxr/source/2.6.38/linux
5. 创建/usr/share/lxr/source/versions,这里记录所有要看的版本,内容是
2.6.38
要保证2.6.38 =>/usr/share/lxr/source/2.6.38
创建/usr/share/lxr/source/defversion,这里记录缺省要看的版本,内容是
2.6.38
之所以是这两个文件,见/usr/share/lxr/http/lxr.conf里的相关设置
6. 建立索引
cd /usr/share/lxr/source/2.6.38/
sudo genxref 2.6.38 //这样会在当前目录生成fileidx和xref
sudo glimpseindex -H /usr/share/lxr/source/2.6.38/ /usr/share/lxr/source/2.6.38/linux
(需要等待一段时间)
之所以是这个目录(/usr/share/lxr/source/2.6.38/),见/usr/share/lxr/http/lxr.conf里的相关设置(database项)
7.修改属性,让代码具有可读权限
sudo chmod +r -R /usr/share/lxr/source/2.6.38/*
8.重启服务器,验证
/etc/init.d/apache restart
http/blurb.html
阅读(1335) | 评论(0) | 转发(0) |