魔法大锅炉
——
附录:为何封闭驱动程序源码的硬件厂商会浪费投资商的金钱
 
Eric Raymond (1999年六月)
[AKA]rover HansB iasc等翻译



17.附录:为何封闭驱动程序源码的硬件厂商会浪费投资商的金钱


  外围设备开发商,象网卡、硬盘驱动器或显卡的制造商,他们的传统作法就是将驱动程序的源代码封闭起来。但是这种现象现在已经有所改变,比如Adaptec公司和Cyclades公司已经习惯于将他们的各种板卡的驱动程序源代码和相应文档公开化。不过要想让开放源代码成为一种普遍的作法还是有不少困难的。在本附录中我们就是打算澄清在商业领域中仍然维持封闭源代码体系的一些错误观念。


  假定你是一个硬件制造商,你也许会担心将驱动程序代码的开放会泄露你硬件如何工作的许多重要秘密,从而让你的竞争对手可以通过分析你的源代码来给你造成一种不公平的竞争环境。这种想法在三、五年才会将产品更新换代的时代里也许还站得住脚;但是今天即使将源代码开放,你的竞争对手也将不得不花费占整个产品更新周期的一大部分来琢磨你已经公开了的代码,因为现在产品更新的周期大大的缩短了,你的竞争对手将没有足够的时间来好好思考和革新他们自己的产品。所以说他们去研究你开放的源代码的时刻实际上已经钻进了你的圈套。


  不管怎样,在今天代码中的秘密不会被隐藏很久了。硬件驱动程序并不象操作系统或应用程序那么复杂,他们一般都很小,很容易被反编译和模仿,这种活连一个十几岁的电脑初学者也可以搞定,而且实际上常常也被这些人搞定。可以毫不夸张的说,世界上现有数以千计的为Linux或FreeBSD工作的有激情的优秀程序员,他们愿意为任何一种新的板卡编写驱动程序。由于许多种类的硬件设备有着相对简单和标准化的接口规范,比如常见的磁盘控制器或网卡,热情澎湃的黑客们即使在没有文档也不需要反编译已有的驱动程序的条件下就可以迅速的写出正确的驱动程序来,而且常常比原生产厂家还要来得快。


  即使遇到象显卡这样的复杂设备,也难不倒用反编译工具武装起来的牛人。这种工作即不需要花费很大的精力,也很难说是否违法,而且在全球程序员的共同努力下,已经可以对Linux做任何在法律上合法反向工程了。从Metalab网站查一查Linux核心和设备驱动程序库所能支持的硬件类型列表,你就会立刻明白前面所言非虚,Metalab的网址是:<http://metalab.unc.edu/pub/Linux/hardware/!INDEX.html>。访问该网站时你还可以留意一下新的驱动程序正在以何等迅速的速度不断涌现。


  保守你驱动程序中的秘密从短期效应上来说还是有诱惑力的,但是从长期战略的角度来看则不可取,特别是当你的竞争对手都已经将源码开放的时候。如果你非要固执的封闭你的源代码,那就只能将那些代码烧到电路板上的ROM中,而只对外公开访问接口了。所以赶紧开放你的源代码吧,迅速扩大市场,你要相信自己有能力通过自身的不断思考和创新来吸引更多的本来属于你的竞争对手的潜在用户群。


  坚持走封闭的路线是一条死胡同,你的秘密将不可避免的被逐步暴露,你将无法得到自由程序员的帮助,也没有什么愚蠢的竞争对手会去花时间模仿你的设计。更重要的是你如果及早采纳开放的思想本来可以获得更广阔的发展空间,但是你却遗憾的错过了。由于你的设备太保守、缺少资料和固步自封,并且不能认识到你自己的错误,因此互连网上大部分的网络管理员和超过17%的商业数据中心所形成的巨大市场将把你的硬件设备从他们的采购清单中删除,而把目光转向其他开放的硬件厂商中去。