bluesky100 发表于 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大,配置内核的过程花了好长时间,但编译时只化了几分钟,主要是编译内核,总共也就十几个模块

cnhnln 发表于 2005-1-12 22:33:24

你是不是把很多东西都直接编译进内核了?
另外,你去掉 内核调试 里的选项再试试

bluesky100 发表于 2005-1-13 00:01:18

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

pinper 发表于 2005-1-17 10:20:38

很正常,你把vfat编进内核了吧?把ext3编进内核了吧?对字体编码的支持编进内核了吧?等等。。。slackware肯定是把这些东西做成module的,它是发行版,做了很多修改和优化

bluesky100 发表于 2005-1-18 13:08:29

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

cnhnln 发表于 2005-1-18 13:38:12

我编的也都是1M多,我是把常用的尽量编进内核,少用模块

bluesky100 发表于 2005-1-26 16:13:57

如果常用到的话,即使编成模块,也会被载入内存,一样的占用内存空间,直接编入内核比较方便吗!

吴文官 发表于 2005-1-26 16:32:08


估计是我没有压缩内核,是不是有make bzImage 这一步啊?

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

updatedb 发表于 2005-1-28 09:48:19

应该是加了一些不必要的东西吧
我没加bootsplash只有1.4M吧,加了之后有2M多

Axin 发表于 2005-1-28 11:53:58

2.6的核心自己解决依赖关系,很多功能是默认有的,编译出来比2.4大不少。
页: [1]
查看完整版本: 自己编译的内核为什么这么大