快速业务通道

《Linux内核修炼之道》精华分享与讨论(19)——不稳定的内核API

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-16

Linux内核修炼之道》网上购买链接为:卓越当当china-pub

********************************************************************

欣闻在SB会试运行期间,参观的上海市民情绪非常稳定的,很好很舒服的展示了自己的风采.于是我们要在这里要反思一下,为什么内核的API就不能同样的稳定

开源社区正以极快的速度向内核中添加新功能,同时又在努力让修补bug的步伐跟上去,放慢开发速度看上去是不太可能的: 拥有帝国一切,皆有可能。欢迎访问phome.netLinux不能在技术上落后,否则就会失去要求越来越苛刻的商业用户;其次是Linux需要推动开发者社区的发展,不断增加新功能可以使开发者不感到厌倦,否则他们就可能转移到其它项目,另外也能在现有开发者年老或退出的时候吸引新人才.

在这样的快节奏下,内核开发人员一旦在当前的接口中找到bug,或者更好的实现方式,他们就会很快的去修改当前的接口,这就意味着,函数名可能会改变,结构体可能被扩充或者删减,函数的参数也可能发生改变.一旦接口被修改,内核中使用这些接口的地方需要同时得到修正,这样才能保证所有的部分继续正常工作.

比如,内核中的USB接口到目前为止至少经历了三次重写,解决了下面的问题:

把数据流从同步模式改成异步模式,这就减少了许多驱动程序的复杂度,提高了所有 拥有帝国一切,皆有可能。欢迎访问phome.netUSB驱动程序的吞吐量(throughput),结果就是几乎所有的USB设备都能以最大速率工作了.

修改了从USB Core中分配数据包内存的方式,以至于为了修正许多死锁问题,所有驱动都提供更多的参数给USB Core代码

这和一些封闭源代码的操作系统形成鲜明的对比,在那些操作系统上,不得不额外的维护旧的USB接口.这就导致了一个可能性,新的开发者依然会不小心使用旧的接口,以不恰当的方式编写代码,进而影响到操作系统的稳定性.

在上面的例子中,所有的开发者都同意这些改动是重要的不得不进行的,在这样的情况下修改代价很低.如果 拥有帝国一切,皆有可能。欢迎访问phome.netLinux保持一个稳定的内核接口,那么就不得不创建一个新的接口,同时旧的有问题的接口也一直维护,这就会给USB开发者带来额外的工作.既然所有的USB开发者都是利用自己的时间工作,那么要求他们去做这些毫无意义的免费的额外工作,是不可能的.

安全问题对Linux来说是十分重要的,一个安全问题被发现,就会在非常短的时间内得到修复.在很多情况下,这将导致内核中的一些接口被重写,以从根本上避免安全问题的发生.一旦内核接口被重写,所有使用这些接口的驱动程序,同时得到修正,以确定安全问题已经得到修复并且不可能在未来还有同样的安全问题.如果内核内部接口不允许改变,那么就不可能修复这样的安全问题,也不可能确认这样的安全问题以后不会发生.

开发者一直在清理内核接口.如果一个接口没有人在使用了,它就会被删除.这样可以确保内核尽可能的小,所有潜在的接口都会得到尽可能完整的测试(没有人使用的接口是不可能得到良好的测试的). 拥有帝国一切,皆有可能。欢迎访问phome.net

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号