linux内核知识及编译

以前自己写的。。。

最近在学linux,慢慢地学起,还是有点成就!
 虽然不是说学到很多,但也开始编译内核了,掌握了方法,其它也没什么高深的! linux是开源的,不像windows那样,听说微软对中国开放了90%的源代码,应该不可能的吧!即使是那10%也是重中之重了!windows不是微内核的,虽然总体上是有层次的,但层与层之间那错综复杂的关系就不太好理解,也不直观!所以你是找不到windows中像linux那样有一个内核的!
而linux结构从里到外是内核,运行库和系统程序,shell,应用程序。我们说的linux其它只是一个内核,不过我们现在指的linux都是包括应用程序在内的一个完整的操作系统吧,这个操作系统最可以几百M,最大是几G。而一个完整的内核(2.6.17)也只有40多M。当然啦,它包括很多设备支持,协议支持,很多东西我们是用不到的……所以我们只需要2M内核是不足为奇的,不过最近看了一篇文章很牛,可以编译内核只需要200K左右!!内核有很多模块,我们可以编译进内核,也可以作为模块在需要的时候由系统调入。编译的时候能作为模块安装尽量使用模块,以减轻内核的负担吧~~
编译
不难,网上有很多文章可以参考!无非就是以下几个命令
1.make mrproper #在进行内核配置前清理源代码树
2. make clean#也是清除的目的#以上两步第一次配置编译内核可以省略
3.make config或make xconfig 或make menuconfig或 make oldconfig
#make xconfig或make menuconfig是菜单形式的,比较好用
#不过我先用make oldconfig生成.config文件,然后用make menuconfig把刚生成的.config文件载入,进行修改,这样比较适合本机的配置。
4.make dep #生成模块依赖关系。在2.4.X需要此命令,在2.6.X不需要
5.make bzImage #编译内核,虽然在2.6.X好像可以只用make的,但make bzImage最保险
6.make modules #编译模块,最花时间的了
7,make modules_install #安装模块
8,make install #安装内核文件
OK,最好还是查看一下/etc/grub.conf看是否有新的启动项,以及/boot下的内核文件vmlinux-* , initrd*是不是有新的版本号了,不过旧的也还在。最后是reboot!
要注意的------------
如果是从当前的次版本号不变,只升末版本号,如2.4.1升到2.4.8或2.6.1升到2.6.17,那按上面方法基本没问题!对于2.4版本的要编译内核需要安装,modutils-2.4.*,而2.6版本的内核要安装module-init-tools,一般都安装了的,光盘里或网上下载!
如果是从2.4.X升级到2.6.X那么上面两个工具都要安装,但我没有安装成功过,因为我从2.4升到2.6的时候没有安装module-init-tools,每次make modules_install这一步就不成功。
所以次版本号升到更高的建议重装吧,只有末版本升级才编译内核!
想要linux支持NTFS或减少一些冗余的模块等,直接编译当前版本吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值