附录C:2.6开发笔记
2.6内核将有一些值得注意的改动使其更加成熟,例如我们已经发布了2.6.1版本,随着时间推移,我将增加更多的特性进去,请周期性地保持注意。
为大小进行的优化
首先你的内核应只包括需要的驱动和特性,编译非必须的或不常用的驱动为模块,编译优化能减少你内核代码的大小尺寸。
在2.6.1内核版本中,他们已经增加了一个新的配置选项来优化大小,这个选项将在编译脚本中使用-Os优化标志,将其传递给编译器,代替了很长的Makefile默认的-O2(是大些的字母o,不是零)该大小优化选项将有效地降低内核大小,如果使用新版本的gcc编译器可能会更小,同时gcc3.2.x或gcc3.3.x(gcc3.3实际上用于内核编译不是很成熟,我通常使用的是3.3.2)版本的选择。你可以在这里阅读到有关编译器优化的内容:
http://gcc.gnu.org/onlinedocs/gcc-3.3.2/gcc/Optimize-Options.html#Optimize%20Options
内核不是用来做编译器优化实验的,这个链接仅仅为爱好者提供参考。
以前,为了能在编译时使用-Os选项,你不得不编辑顶级目录下的Makefile文科,我就那样做了很长一段时间,看起来它对我的内核并没有什么损害而且确实降低了内核的大小,原因就是如果代码更小的话,就更容易在内存缓存中找到它。现在它成为一个配置选项了,使用起来更加简单了,我向你推荐使用它。在General Setup 下激活Remove Kernel Features选项。
![]() |
按回车,你将看到崭新的Optimize for Size配置选项。
![]() |
在这里你可以安全地将Load all symbols for debugging禁用掉。不要禁用掉Eventpoll or Futex支持,除非你知道你在干什么。
在2.6.1内核中有一个关于调度器的说法,因为不同的机器有不同的用途,不同的负载,磁盘块i/o调度器在启动的时候有一个选择,通过使用elevator=""(="as","deadline",或者"noop")参数实现,和在lilo.conf文件中使用append=类似。
Anticipatory I/O Scheduler是默认的调度器,它被人为是大多数常见的负载最好的调度器,它的算法是一个读操作完成后如果附加有另外一个读需要它将暂停下来。但这并不总是一个最好的行为,例如在一些主要是单个快速读取所有磁盘的数据库服务器上,推荐使用Deadline Scheduler调度器,它在一个指定的时间片内最小化查找操作并且只允许一个i/o请求,它也更小和更简单。
因为我只希望在我的工作站上使用Anticipatory调度器,我将其他两个都禁用掉了,如果我想转换到deadline调度器,我将再次启用它并重新创建一个新的内核,不可能不希望那样...保留其他的调度器可能不会增加内核大小,甚至不会有真实的代码会被载入。
使用-Os优化选项我最后的内核映像文件小于770k。
| 回书目 上一节 下一节 |
|
||||
| · 珊瑚虫QQ作者侵权案开庭 · 微软出价446亿美元收购.. · Windows Server 2008专.. · 隐私保护技术探讨 · 贝恩资本携手华为22亿.. · 802.11n:下一代的无线.. · 体验Visual Studio 200.. · 运营商封堵非法ADSL共享 |
· ADSL应用面面俱到 · 龙芯要做中国的“奔腾” · 华为七千人主动辞职规.. · 华为路由器配置 · 2007盘点专题:有多少.. · 双机热备技术 · 国际文档格式标准开战 · 微软Forefront企业安全.. |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2008/2005.. · 中间件应用技术专题 · 深入了解PGP加密技术 · MySQL数据库备份 |
· 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · Linux 基础 · SSL VPN详细知识 · Linux防火墙 · 路由器设置与口令恢复 · Linux 集群技术专题 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · MySQL数据库备份 · 身份认证技术 |
· 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 路由器设置与口令恢复 · Linux 集群技术专题 · VPN技术 · Linux 基础 |
|||