找回密码
 注册
查看: 1330|回复: 9

自己编译的内核为什么这么大

[复制链接]
发表于 2005-1-12 20:17:30 | 显示全部楼层 |阅读模式
今天下午自己在slackware10上编译了2.6.10的内核,用make menuconfig配置的,去掉了里面大量的东西,编译的内核竟有1.8M那么大,但模块却很小,整个/lib/modules/2.6.10目录只有5.3M,而slackware原来的2.4.26内核的模块文件夹有11M大,配置内核的过程花了好长时间,但编译时只化了几分钟,主要是编译内核,总共也就十几个模块
发表于 2005-1-12 22:33:24 | 显示全部楼层
你是不是把很多东西都直接编译进内核了?
另外,你去掉 内核调试 里的选项再试试
回复

使用道具 举报

 楼主| 发表于 2005-1-13 00:01:18 | 显示全部楼层
也没有选多少东西,都是一些必须的,内核调试是一项都没有选啊
估计是我没有压缩内核,是不是有make bzImage 这一步啊?
我没有做这一步,系统起动后占用的内存明显比原来的少,因为编译的模块少,所以加载的模块只有那么几个,原来的系统都是加载很多的模块
竟然发现硬盘的DMA没有打开,用hdparm也不能打开,原来是我在内核里少选了一项,又重新编译了一次,又去掉了一些东西,内核大小变为1.6M,模块增加到5.5M,总体大小没有什么变化
回复

使用道具 举报

发表于 2005-1-17 10:20:38 | 显示全部楼层
很正常,你把vfat编进内核了吧?把ext3编进内核了吧?对字体编码的支持编进内核了吧?等等。。。slackware肯定是把这些东西做成module的,它是发行版,做了很多修改和优化
回复

使用道具 举报

 楼主| 发表于 2005-1-18 13:08:29 | 显示全部楼层
vfat,ext3等文件系统除过reiserfs外都是编成模块了,字体编码只选了三个,一个是cp437,一个是cp936,还有一个是cp950(zh_TW),先是将cp437和cp936编入内核,cp950编成模块,觉得太大了,后来三个都编成模块了
slackware的内核没有我编译的启动快,但是比我的兼容性好(我自己编译的内核把许多的设备驱动程序都去掉了,只保留了很少一部分),特别是在网络的部分,好多都不知道作用,只选了很少一部分,可以正常上网,但不知道安全性如何,会不会有些网络功能不能使用,导致某些程序出问题
回复

使用道具 举报

发表于 2005-1-18 13:38:12 | 显示全部楼层
我编的也都是1M多,我是把常用的尽量编进内核,少用模块
回复

使用道具 举报

 楼主| 发表于 2005-1-26 16:13:57 | 显示全部楼层
如果常用到的话,即使编成模块,也会被载入内存,一样的占用内存空间,直接编入内核比较方便吗!
回复

使用道具 举报

发表于 2005-1-26 16:32:08 | 显示全部楼层
[quote:14b3e34415="bluesky100"]
估计是我没有压缩内核,是不是有make bzImage 这一步啊?[/quote]

不需要,说明文档里有相关内容
回复

使用道具 举报

发表于 2005-1-28 09:48:19 | 显示全部楼层
应该是加了一些不必要的东西吧
我没加bootsplash只有1.4M吧,加了之后有2M多
回复

使用道具 举报

发表于 2005-1-28 11:53:58 | 显示全部楼层
2.6的核心自己解决依赖关系,很多功能是默认有的,编译出来比2.4大不少。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-13 06:14 , Processed in 0.048685 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表