OpenBSD
OpenBSD是一个从NetBSD衍生出来的类Unix操作系统。专案领导人希欧·德若特(TheoDeRaadt)在1995年发起了OpenBSD专案,希望创造一个注重安全的操作系统,此外OpenBSD也以高品质的文件、坚持开放程式码以及严格的软体授权著名。OpenBSD的吉祥物是刺豚。
OpenBSD包含了一些在其他操作系统缺少或是选择性的安全功能,此外OpenBSD极度重视程式码的品质,任何对核心的修改都需要经过严格的审查。OpenBSD可以在17种不同的硬体环境下运作,包含DECAlpha、Intel i386、Hewlett-Packard PA-RISC、AMD64、Motorola68000、PowerPC、Sun SPARC等。
开发历史
1994年12月,NetBSD的共同发起人Theo deRaadt被要求辞去NetBSD的开发工作,而他存取NetBSD程式码的权利也被取消。Theo deRaadt辞职的实际的原因不明,虽然他声称是因为和NetBSD的开发团队发生冲突而辞去开发工作。许多人认为Theo deRaadt的离开是因为个性上难以相处,但也有许多人认为他是个直率的人,而离开的原因是因为有些人不认同他极度注重操作系统安全的理念。
1995年10月,Theo de Raadt从NetBSD1.0衍生出了OpenBSD计划,在1996年7月释出了最初的发行版OpenBSD 1.2,同年10月释出了OpenBSD2.0。之后每隔6个月OpenBSD便会释出一个新版本,每个释出版本会维护1年。
2007年7月25日,OpenBSD决定成立一个OpenBSD基金会。这个非营利性质的基金会将提供OpenBSD使用者或是组织对OpenBSD法律上的支援服务,组织的地点设在加拿大。
开放源代码
当创立OpenBSD的时候,Theo de Raadt就决定任何人都可以在任何时间取得原始码,在ChuckCranor的协助下他建立了一个公开且匿名的CVS伺服器,是第一个以开放式CVS作为开发方式的软体。因为在当时CVS的应用上大多只让少数的开发者有存取权,外部的开发者没有办法知道目前的工作进度,贡献的修正档也常常是已经完成过的修正。这种开发方式让OpenBSD成为开放原始码的代表软体。
直到2002年6月前,OpenBSD的网站上都是如此声明:
“ 在预设安装下,过去六年没有任何远端漏洞被发现 ”
2002年6月,Mark Dowd发现预设安装下 OpenSSH 中的一个远端漏洞,因此网站上的声明改成:
“ 在预设安装下,超过八年的时间只有一个远端漏洞被发现" ”
2007年3月13日,OpenBSD又被找到一个远端漏洞 ,因此网站上的声明又改成:
“ 在预设安装下,超过十年的时间只有两个远端漏洞被发现 ”
但这个声明也被批评,因为在OpenBSD预设安装下,运行的系统服务很少,而通常安装的服务越多,发生漏洞的机会也越多。OpenBSD的这个声明有点不符合实际状况,不过OpenBSD仍然是相当安全的操作系统。
开发者
IT界从来不缺个性张扬的开发高手。希欧·德若特(Theo DeRaadt),这位名字古怪的主儿不仅负气出走NetBSD而重新打造出OpenBSD,更因为“嘴臭”而闻名:因为痛斥美国对伊战争,引来美国国防部高级研究计划总署(DARPA)撤销了对OpenBSD项目的支持补助金;同时还因为抨击Linux,在开源社区掀起旷日持久的口水大战。
10年前,希欧·德若特(Theo DeRaadt)陷入了人生的最低谷(至少在别人看来是这样)。他当时没有一份正式的工作,并且刚刚从一个开源软件开发团队NetBSD被踢了出来。而编写开源软件代码是他唯一想做的事情。
德若特9岁时随父母一起从南非搬到了加拿大,後来在卡尔加里大学获得了计算机科学学位。在上大学之前他就想编写开源软件了。那个时代的程序员们会编写一些东西然後把他们贴到BBS上面。然後这些东西就会传播出去,这是很时髦的事情。德若特最初编写了一些小的图形程序和小游戏,後来在Unix风光的日子里他成为comp.sources.unix新闻组的一员。尽管随後互联网开始变得流行起来,但德若特和朋友们仍旧做着同样的事情。
“这里面的大多数人,比如我,编写开源软件因为这是一种协同工作、迸发好点子的文化。”德若特回忆道,“我们不愿把编写程序当成一份工作。”毕业後暂时作了几天程序开发员後,1993年他和3个朋友一起开发出一套叫做NetBSD的系统。但自从他和另外一名开发人员发生了矛盾後,事情就一发不可收拾了。
“那家伙是个彻头彻尾的衰人!我当时让他少聊天踏踏实实做些工作。”至今德若特仍不依不饶。後来这名程序员通过Email向德若特道歉。但他甚至没有删除这封邮件,反而用恶毒的、过分的语言回复对方,同时将这封邮件抄送给成百上千的开发高手取乐。于是在合作一年後因为自己的莽撞和不厚道,德若特被踢出了这个团队。
但德若特毫不在乎,他立即着手开发一套NetBSD的竞争产品,并且在几个月後他就发布了这套名为OpenBSD的操作系统的第一个版本。而那封不厚道的邮件甚至被视为是OpenBSD的立项文件。如今用Google搜索“theo deraadt”时,这封邮件的内容链接仍会位于结果列表中的前几位。
OpenBSD曾赢得过“安装四年也找不到一个漏洞”的美名,这套操作系统源于古老的BerkeleyUnix,这个星球上另外两大十分出色的操作系统——Sun微系统公司的Solaris和苹果电脑公司的OSX——也同源于此。10年之後,德若特高兴地看到相比NetBSD他的软件更受人们关注。由于采用了先进的密码系统和数据通讯过滤,英特尔、甲骨文、Adobe的公司系统中都运行着OpenBSD。而且它不收一分钱。
为什么在安全问题成为整个行业最头疼的问题时,德若特却能够让OpenBSD在这个敏感话题上声名显赫呢?很简单,那就是认真。
他们采取最基础的办法:一行行检索源代码,找出问题。整个团队中有10到15个人,大概用了4年的时间彻底检查了OpenBSD那300兆的源码。一旦发现错误,开发人员不是立即修改,然後继续寻找其它的错误。OpenBSD成员则是停下来分析这个错误的根源是什么,尽可能一举将整个系统里的所有同类错误修正。
与此同时,改善程序的系统构造,让每个功能都有序运行。另外,德若特认为如今许多软件过于复杂化,过于庞大的程序就很难兼顾安全。当程序开发人员编写出一个功能复杂的软件的时候,其安全性却很低。于是OpenBSD有80个程序员竭力精简自己的作品。要知道,300兆源码只是相当微软Windows、Office源码体积的1/4,而这两款软件称得上是世界上最赚钱的软件产品。
但德若特并没有就此寻找投资、转而商业化的打算。接受《环球企业家》专访时,他用“深恶痛绝”表示了自己对资本的感受:“金钱不会提高程序代码的质量,只有技巧和时间才能够做到。”
他每年靠3万加元度日,这笔钱来自销售45美元/张的OpenBSD光盘、印着吉祥物和宣传口号的T恤衫的收入,以及软件用户的捐赠。销售收入和捐赠收入的金额大致相当,除了支付一些生活费用,如宽带、冷气、电灯等,剩下的钱将会用在他们每年一次的黑客马拉松(hackathon)活动上。在那里60个开发人员齐聚一堂,用整整一周的时间面对面地讨论、疯狂编写代码。尽管德若特不反对开源社区中的其他人寻求风险投资的帮助,但他认为这对软件质量的提高不会有太大帮助。因为风险投资商们为了获得更多的回报,将会把大笔的投资用在市场营销方面。而且如果金钱能够做到这一切,那些商业软件早就做的足够好了,德若特自己将会无事可做。
无所顾忌
看一看37岁的德若特的生活,就知道他是什么样的人了。在其网站上,他对自己的描述是:一个铁杆黑客、老式UNIX电脑收藏者、狂热的山地自行车手、洞*探索者、登山迷、初级的酿酒师。而他养的两只猫分别叫“伽利略”和“开普勒”。
在这种充满冒险气质的生活背後,德若特一直是一名言辞犀利到令人难以接受的人,他在加拿大卡尔加里一间地下室里工作,并发表各种异见。
2001年,德若特从美国高级研究项目局获得了一笔2年230万美元的研究基金,得以继续研发OpenBSD。美国高级研究项目局非常重视这套系统刀枪不入的安全性能。但这名黑客又一次张开了他的大嘴。他在一份加拿大报纸上批评伊拉克战争是一场贪婪的石油争夺游戏。没多久美国高级研究项目局就撤销了提供的资助。
尽管德若特作为一名开源软件运动的倡导者和领军人物,但在今年6月接受采访时他对Linux却没有什么好话,只是强调他自己的软件采用了高级严谨的代码。“我认为我们的代码质量更高,因为我们在这上面花了大 心思。凑近Linux仔细看看吧,它正在朝着另一个微软发展。这是一套质量低劣的软件,他们的人已经不行了。”
而谈到开源世界的天皇巨星李纳斯·托沃兹(LinusTorvalds)时德若特也毫不客气:“我不知道他的工作重点在什么地方,但肯定不是质量。”当托华兹了解了德若特对自己的评价後,只表示了这是一个很难缠的家伙便什么都不说了。
对《环球企业家》,德若特说:“我被曲解了,我批评Linux是因为它的确在质量上有问题。它可能会变得更流行、更庞大,但不是质量的提高。事实上,一件事情变得越庞大,保持高质量的难度就越大。我说过Linux质量很差的话,并且这是真的。”这也是德若特为什么坚持控制OpenBSD的体积和复杂程度,他坚信小即是美。
即使充满争议性,OpenBSD的研发从未停止。每六个月,就会有一款新的OpenBSD诞生,谈到之所以固定生产周期,德若特的解释是:“这个时间长度刚刚好,以至于我不会因忙碌而自杀。”
德若特得到了开源世界中许多志愿者的帮助。他们每年都会从全世界各个地方聚到卡尔加里一次,为OpenBSD开发新的功能。其中一些人就住在德若特的家里,平时这里只有他和女友。德若特甚至认为有时候这些家伙住的时间太长了。这项年度活动被他们称为黑客马拉松。今年5月份60名包括从澳大利亚、巴西、日本飞来的技术天才们参加了黑客马拉松。他们在凯悦酒店里连续一周几乎没有睡觉,疯狂地编写程序代码。任何人都可以提出自己的意见,但德若特拥有最终决定权。
一家叫做InternetSecure的公司高高兴兴地为今年的黑客马拉松支付了3万美元的账单,这是一家提供线上信用卡交易系统的加拿大公司。去年这家公司在3台英特尔服务器上运行了OpenBSD系统,有效防止了黑客的攻击。在这之前黑客们曾经把他们的服务器打开了花。“目前OpenBSD是这个星球上最安全的操作系统。”Lok Technology公司的创始人西蒙·洛克(Simon Lok)说道,“我们不会再用其它任何东西了。”
拥有计算机专业博士学位的洛克是德若特或者说是OpenBSD的死忠。他表示LokTechnology公司最初使用的是Linux系统,但4年前当他仔细检查了这套风头正劲的操作系统的源代码後,便决定转换到OpenBSD系统。“你猜我看到了什么?在Linux系统的心脏——系统内核程序里面我看到了开发人员的一行注解‘这行代码属于这里吗?’”洛克说,“这对我的信任是一种打击,那时我就知道是时候更换系统了。”
早期的德若特更多是一个程序员的角色,并且沉醉于被他称为一种“美学”的代码编写过程之中。他和整个团队的工作都是在几乎没有任何管理的情况下完成的。但现在随着越来越多的人加入到OpenBSD工作,德若特不得不花费很多时间去和他们沟通、协调。沟通的工作让整个团队的进度都慢了下来。因为当新人希望为OpenBSD贡献他们的技能和时间时,需要一些时间帮助他们启动并加速。只有这样他们才能够很好的融入OpenBSD的开源社区。
在团队内部,德若特以“慈善的*者”而出名:“只要是能够确保安全的,任何事情我都会去做,甚至是来自于我们源代码的进步。我们坚信软件的发展,而非*;因此,在安全的前提下,变化的脚步却很缓慢,我们一点错误都不想犯。”
这种思路正在得到更为广泛的认可,最近一次他与本刊记者通信时,正在意大利威尼斯和许多开发高手碰面,在那里几乎所有的时间他都在编写代码。
这些高手们,丝毫不能理解为什么人们会花费5万美元去购买思科(Cisco Systems)或者CheckPoint的黑客防火墙,他们能够不花一分钱得到OpenBSD并且获得更好的安全保护。OpenBSD甚至守护着库尔德斯坦(Kurdistan)一条输气管线!
现在还没有人能够从OpenBSD上面赚到钱,最好的情况也只是企业为他们自己节省了开销。“使用的人没有去宣传,所以它才这样默默无闻,”德若特表示。他不知道或者说不在乎有多少人在使用OpenBSD,尽管它已经被下载了数百万次。“我唯一在乎的是编写高质量的代码。如果*我做循规蹈矩的工作,我会疯掉。”德若特甚至并不在乎是否存在一个OpenBSD的市场空间。他坚持认为自己只不过是一个专注于开源代码项目的领导者,而不是关心它是被如何使用的。
其真正的痛苦在于同10几年前相比,他们仍然在一个硬件环境很封闭的世界里编写源代码。很多硬件厂商,从苹果、SUN、IBM、 Nvidia、英特尔到戴尔,都在谈论支持和购买开源软件,但另一方面他们又拒绝提供相关文档。因此开源软件工程师很难为这些大公司的硬件产品编写源代码。但据德若特透露,有些时候这些大公司会私下将一些文档流出给像RedHat这样的Linux软件公司的开发程序员,还要签署NDA协议(Non-DisclosureAgreements)。这样就把许多有能力为某些硬件编写驱动程序的程序师限制在外,只有那个拥有文档的人才可以。
对OpenBSD团队来说,当这些大型硬件厂商并不向他们提供说明文档的时候,编写支持这些硬件产品的代码是非常困难的。德若特认为他们受到了不公平待遇:当像Redhat这样比较强壮的Linux软件厂商继续允许他们的程序员私下从硬件厂商那里得到说明文档,这将会很大程度的限制了更大范围的开源代码社区中的程序员的工作。“我们越来越多的看到驱动程序中充满了魔术般的数字,这让我们无法对其调试或者改进。”德若特说道,“这的确是一个挑战。但即使那些较大规模的开源软件公司越来越多地采用私下交易方式,他们也无法阻止我们的成长。因为15年前我们本来就没有什么说明文档。”
是的,态度强硬的德若特和这些大型硬件公司的关系并不够好。他根本不相信他们中的任何一个:“这样的公司并不是开源世界的朋友。不要被他们的花言巧语欺骗了。他们作出开放的姿态,像我们一样,但这却是一个大谎言。对他们来说开源软件只是一个值得利用的东西,但他们却不会帮助它成长。”OpenBSD和任何一家大公司都没有关系,在他们的研发机房里面有IBM的机器,但却不是IBM送给他们的。而据说IBM却特别告诉它旗下的RAID公司Mylex不要把他们产品的说明文档交给OpenBSD团队。
事实上,OpenBSD仍是一套非常艰涩难用的操作系统,这并不便于让它更加流行。但德若特并不打算自己来解决这个问题。“我们会花费更多时间来保证它足够棒,而不是把时间用在让大众觉得它更美味可口上。”