stlcours:那也可以,就麻烦版主试试吧。不过OPENSSL即使垃圾代码多一些,也仍然是世界上最广泛使用的SSL加密源代码,没有之一,不是吗?
(2015-06-05 15:22) 
摘一小段文章:
界面的文章中说基层程序员批评他们的代码“令人作呕”,实际上,说这句话的人是Theo de Raadt,是OpenBSD项目的创始人,他可不是“基层程序员”,而是操作系统领域最好的计算机科学家之一。OpenBSD开发者们并没止步于批评,而是立刻决定从当前OpenSSL版本创建一个叫做LibreSSL的独立项目,从清理OpenSSL的代码重新开始。他们在第一周就删除了9万多行代码,OpenSSL整个项目只有38万行,相当于删减了近1/4的代码。可见Theo的批评并不是顺口胡说。几年来,OpenSSL出过各种漏洞,在“心脏出血“之后,仍然有隐藏了10年以上的漏洞被发现,很多熟悉这个项目的人看法都是“除了重写别无办法”。
OpenBSD有一份文档说明了他们在清理过程中遇到的问题,去掉其中的技术细节,我把主要观点列在这里,这些也基本是业内主流看法:
OpenSSL的代码混乱不堪,难以阅读。开源软件一般通过让更多人看到代码来发现bug,如果代码难以阅读,这个办法就失效了。
他们使用了大量自己的代码封装和编程风格,这些代码有的有bug,有的不符合现代主流做法。这让常见的检测工具没法应用于他们的项目,更难以发现Bug。
他们的开发者更关心增加功能,而不是维护和修补。
其他开发者提供的修改和贡献,一般不会被合并到最终代码里。
很多用户指出的Bug,包括一些相当严重的,公开放在追踪系统里面长达几年,没被修补。
其中存留了大量无用的旧代码,比如给windows 2000之前的16位系统写的兼容代码,仍然包含在最新版本的OpenSSL中。
基于以上原因,OpenBSD认为这个项目已经没法维护了,必须要重新开始。这就是他们创建一个分支,从清理代码这种基础工作开始的原因。可见,这个项目根本不是钱的问题,而是管理方式和社区文化有问题。比起来其他项目,他们在有一个全职开发者和一个全职基金会主席的情况下还能响应如此缓慢,实在更令人沮丧。顺便说一句,做清理代码这件事的OpenBSD开发者,也不是全职工作,他还在这份文档前面特别注明了“可以被雇佣”。一年之后的今天,LibreSSL已经基本算可用了,除了清理和改变了原有代码风格,他们也增加了一些更先进的特性,看起来很有前途。