openBSD

openBSD

OpenBSD 是一個可以自由取得的,從 NetBSD 衍生出來的 BSD操作系統。專案領導人 Theo de Raadt在1995年發起了OpenBSD 專案,希望創造一個注重安全的操作系統。

簡介


OpenBSD 的吉祥物是河豚。
OpenBSD 包含了一些在其他操作系統缺少或是選擇性的安全功能,此外 OpenBSD 極度重視程序碼的品質,任何對核心的修改都需要經過嚴格的審查。OpenBSD 可以在16種不同的硬體環境下運作,包含DECAlpha、Inteli386、Hewlett-Packard PA-RISC、AMDAMD64、Motorola 68000、Apple's PowerPC、Sun SPARC 等。

開發歷史


1994年12月,NetBSD 的共同發起人 Theo de Raadt 被要求辭去 NetBSD 的開發工作,而他存取 NetBSD 程序碼的權利也被取消。雖然他聲稱是因為個人因素而辭去開發工作,但實際的原因不明。許多人認為 Theo de Raadt 的離開是因為個性上難以相處,但也有許多人認為他是個直率的人,而離開的原因是因為有些人不認同他極度注重操作系統安全的理念。
1995年10月,Theo de Raadt 從 NetBSD 1.0 衍生出了 OpenBSD 計劃,在1996年7月釋出了最初的發行版 OpenBSD 1.2,同年10月釋出了 OpenBSD 2.0。之後每隔6個月 OpenBSD 便會釋出一個新版本,每個釋出版本會維護1年。

開放原始碼


當創立 OpenBSD 的時候,Theo de Raadt 就決定任何人都可以在任何時間取得原始碼,在 Chuck Cranor 的協助下他建立了一個公開且匿名的 CVS伺服器,是第一個以開放式 CVS 作為開發方式的軟體。因為在當時 CVS 的應用上大多隻讓少數的開發者有存取權,外部的開發者沒有辦法知道目前的工作進度,貢獻的修正檔也常常是已經完成過的修正。這種開發方式讓 OpenBSD 成為開放原始碼的代表軟體。

系統安全


直到2002年6月前,OpenBSD 的網站上都是如此聲明:
"在預設安裝下,過去六年沒有任何遠端漏洞被發現"。
2002年6月,Mark Dowd 發現預設安裝下 OpenSSH 中的一個遠端漏洞,因此網站上的聲明改成:
"在預設安裝下,過去六年沒有任何遠端漏洞被發現"
2007年3月13日,OpenBSD 又被找到一個遠端漏洞,因此網站上的聲明又改成:
"在預設安裝下,超過十年的時間只有兩個遠端漏洞被發現"
但這個聲明也被批評,因為在 OpenBSD 預設安裝下,運行的系統服務很少,而通常安裝的服務越多,發生漏洞的機會也越多。OpenBSD 的這個聲明有點不符合實際狀況,不過 OpenBSD 仍然是相當安全的操作系統。

運行平台


OpenBSD 3.4可運行於以下平台:
● alpha - 僅FTP
● amd64 - 可直接從CD啟動 3.5新增
● cats - 僅FTP 3.5新增
● hp300 - 僅FTP
● hppa - 僅FTP
● i386 - 可直接從CD啟動
● mac68k - 僅FTP
● macppc - 可直接從CD啟動
● sparc - 可直接從CD啟動
● sparc64 - 可直接從CD啟動
● mvme88k - 僅FTP 3.5新增
● alpha - 僅FTP
● vax
只有一些平台支持從CD啟動。查看本FAQ第三章來了解如何獲得關於獲得OpenBSD CD的更多信息。
OpenBSD以前的版本同樣可運行於:
● amiga - 3.2 release后開始移除
● sun3 - 2.9 release后開始移除
● arc - 2.3 release后開始移除
● pmax - 2.7 release后開始移除
OpenBSD目前還不支持多處理器。查看Chapter 8,SMP來獲得更多信息。
OpenBSD是完全免費的。二進位文件(binaries)是免費的。源代碼是免費的。OpenBSD的任何部分都允許在合理的版許可權制下自由分發。這包括可以重新使用大部分OpenBSD源代碼樹,無論是私用還是商用。除了原始的BSD許可外,OpenBSD沒有任何其他的限制。一些按照嚴格許可而寫的軟體不能包含進OpenBSD的正規發行版中。這樣有利於保護OpenBSD的安全免費使用。例如,OpenBSD可以自由免費的用於個人使用、學術研究、政府機構、非贏利性組織或者商業組織。
OpenBSD的維護者主要通過自身來支持OpenBSD Project.這包括為此工程寫程序所花費的時間,用於維護眾多ports的設備、以及回答問題和研究用戶錯誤報告所花的時間。OpenBSD的開發者們並非都十分富有,並且甚至是貢獻一點點時間、設備、或者資源都會使事情大不一樣。

開發者


IT界從來不缺個性張揚的開發高手。希歐·德若特(Theo De Raadt),這位名字古怪的主兒不僅負氣出走NetBSD而重新打造出OpenBSD,更因為“嘴臭”而聞名:因為痛斥美國對伊戰爭,引來美國國防部高級研究計劃總署(DARPA)撤銷了對OpenBSD項目的支持補助金;同時還因為抨擊Linux,在開源社區掀起曠日持久的口水大戰。
10年前,希歐·德若特(Theo De Raadt)陷入了人生的最低谷(至少在別人看來是這樣)。他當時沒有一份正式的工作,並且剛剛從一個開源軟體開發團隊NetBSD被踢了出來。而編寫開源軟體代碼是他唯一想做的事情。
德若特9歲時隨父母一起從南非搬到了加拿大,後來在卡爾加里大學獲得了計算機科學學位。在上大學之前他就想編寫開源軟體了。那個時代的程序員們會編寫一些東西然後把他們貼到BBS上面。然後這些東西就會傳播出去,這是很時髦的事情。德若特最初編寫了一些小的圖形程序和小遊戲,後來在Unix風光的日子裡他成為comp.sources.unix新聞組的一員。儘管隨後網際網路開始變得流行起來,但德若特和朋友們仍舊做著同樣的事情。
“這裡面的大多數人,比如我,編寫開源軟體因為這是一種協同工作、迸發好點子的文化。”德若特回憶道,“我們不願把編寫程序當成一份工作。”畢業後暫時作了幾天程序開發員後,1993年他和3個朋友一起開發出一套叫做NetBSD的系統。但自從他和另外一名開發人員發生了矛盾後,事情就一發不可收拾了。
“那傢伙是個徹頭徹尾的衰人!我當時讓他少聊天踏踏實實做些工作。”至今德若特仍不依不饒。後來這名程序員通過Email向德若特道歉。但他甚至沒有刪除這封郵件,反而用惡毒的、過分的語言回復對方,同時將這封郵件抄送給成百上千的開發高手取樂。於是在合作一年後因為自己的莽撞和不厚 道,德若特被踢出了這個團隊。
但德若特毫不在乎,他立即著手開發一套NetBSD的競爭產品,並且在幾個月後他就發布了這套名為OpenBSD的操作系統的第一個版本。而那封不厚道的郵件甚至被視為是OpenBSD的立項文件。如今用Google搜索“theo de raadt”時,這封郵件的內容鏈接仍會位於結果列表中的前幾位。
OpenBSD曾贏得過“安裝四年也找不到一個漏洞”的美名,這套操作系統源於古老的 Berkeley Unix,這個星球上另外兩大十分出色的操作系統——Sun微系統公司的Solaris蘋果電腦公司的OS X——也同源於此。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仔細看看吧,它正在朝著另一個微軟發展。這是一套質量低劣的軟體,他們的人已經不行了。”
而談到開源世界的天皇巨星李納斯·托沃茲(Linus Torvalds)時德若特也毫不客氣:“我不知道他的工作重點在什麼地方,但肯定不是質量。”當托華茲了解了德若特對自己的評價後,只表示了這是一個很難纏的傢伙便什麼都不說了。
對《環球企業家》,德若特說:“我被曲解了,我批評Linux是因為它的確在質量上有問題。它可能會變得更流行、更龐大,但不是質量的提高。事實上,一件事情變得越龐大,保持高質量的難度就越大。我說過Linux質量很差的話,並且這是真的。”這也是德若特為什麼堅持控制OpenBSD 的體積和複雜程度,他堅信小即是美。
即使充滿爭議性,OpenBSD的研發從未停止。每六個月,就會有一款新的OpenBSD誕生,談到之所以固定生產周期,德若特的解釋是:“這個時間長度剛剛好,以至於我不會因忙碌而自殺。”
德若特得到了開源世界中許多志願者的幫助。他們每年都會從全世界各個地方聚到卡爾加里一次,為 OpenBSD開發新的功能。其中一些人就住在德若特的家裡,平時這裡只有他和女友。德若特甚至認為有時候這些傢伙住的時間太長了。這項年度活動被他們稱為黑客馬拉松。今年5月份60名包括從澳大利亞、巴西、日本飛來的技術天才們參加了黑客馬拉松。他們在凱悅酒店里連續一周幾乎沒有睡覺,瘋狂地編寫程序代碼。任何人都可以提出自己的意見,但德若特擁有最終決定權。
一家叫做InternetSecure的公司高高興興地為今年的黑客馬拉松支付了3萬美元的賬單,這是一家提供線上信用卡交易系統的加拿大公司。去年這家公司在3台英特爾伺服器上運行了OpenBSD系統,有效防止了黑客的攻擊。在這之前黑客們曾經把他們的伺服器打開了花。“目前OpenBSD是這個星球上最安全的操作系統。” Lok Technology公司的創始人西蒙·洛克(Simon Lok)說道,“我們不會再用其它任何東西了。”
擁有計算機專業博士學位的洛克是德若特或者說是OpenBSD的死忠。他表示Lok Technology公司最初使用的是Linux系統,但4年前當他仔細檢查了這套風頭正勁的操作系統的源代碼後,便決定轉換到OpenBSD系統。“你猜我看到了什麼?在Linux系統的心臟——系統內核程序裡面我看到了開發人員的一行註解‘這行代碼屬於這裡嗎?’”洛克說,“這對我的信任是一種打擊,那時我就知道是時候更換系統了。”
早期的德若特更多是一個程序員的角色,並且沉醉於被他稱為一種“美學”的代碼編寫過程之中。他和整個團隊的工作都是在幾乎沒有任何管理的情況下完成的。但現在隨著越來越多的人加入到OpenBSD工作,德若特不得不花費很多時間去和他們溝通、協調。溝通的工作讓整個團隊的進度都慢了下來。因為當新人希望為OpenBSD貢獻他們的技能和時間時,需要一些時間幫助他們啟動並加速。只有這樣他們才能夠很好的融入OpenBSD的開源社區。
在團隊內部,德若特以“慈善的獨裁者”而出名:“只要是能夠確保安全的,任何事情我都會去做,甚至是來自於我們源代碼的進步。我們堅信軟體的發展,而非革命;因此,在安全的前提下,變化的腳步卻很緩慢,我們一點錯誤都不想犯。”
這種思路正在得到更為廣泛的認可,最近一次他與本刊記者通信時,正在義大利威尼斯和許多開發高手碰面,在那裡幾乎所有的時間他都在編寫代碼。
這些高手們,絲毫不能理解為什麼人們會花費5萬美元去購買思科(Cisco Systems)或者Check Point的黑客防火牆,他們能夠不花一分錢得到OpenBSD並且獲得更好的安全保護。OpenBSD甚至守護著庫爾德斯坦(Kurdistan)一條輸氣管線!
現在還沒有人能夠從OpenBSD上面賺到錢,最好的情況也只是企業為他們自己節省了開銷。 “使用的人沒有去宣傳,所以它才這樣默默無聞,”德若特表示。他不知道或者說不在乎有多少人在使用OpenBSD,儘管它已經被下載了數百萬次。“我唯一在乎的是編寫高質量的代碼。如果強迫我做循規蹈矩的工作,我會瘋掉。”德若特甚至並不在乎是否存在一個OpenBSD的市場空間。他堅持認為自己只不過是一個專註於開源代碼項目的領導者,而不是關心它是被如何使用的。
其真正的痛苦在於同10幾年前相比,他們仍然在一個硬體環境很封閉的世界里編寫源代碼。很多硬體廠商,從蘋果SUN、IBM、 Nvidia、英特爾到戴爾,都在談論支持和購買開源軟體,但另一方面他們又拒絕提供相關文檔。因此開源軟體工程師很難為這些大公司的硬體產品編寫源代碼。但據德若特透露,有些時候這些大公司會私下將一些文檔流出給像RedHat這樣的Linux軟體公司的開發程序員,還要簽署NDA協議(Non-Disclosure Agreements)。這樣就把許多有能力為某些硬體編寫驅動程序的程序師限制在外,只有那個擁有文檔的人才可以。
對OpenBSD團隊來說,當這些大型硬體廠商並不向他們提供說明文檔的時候,編寫支持這些硬體產品的代碼是非常困難的。德若特認為他們受到了不公平待遇:當像Redhat這樣比較強壯的Linux軟體廠商繼續允許他們的程序員私下從硬體廠商那裡得到說明文檔,這將會很大程度的限制了更大範圍的開源代碼社區中的程序員的工作。“我們越來越多的看到驅動程序中充滿了魔術般的數字,這讓我們無法對其調試或者改進。”德若特說道,“這的確是一個挑戰。但即使那些較大規模的開源軟體公司越來越多地採用私下交易方式,他們也無法阻止我們的成長。因為15年前我們本來就沒有什麼說明文檔。”
是的,態度強硬的德若特和這些大型硬體公司的關係並不夠好。他根本不相信他們中的任何一個: “這樣的公司並不是開源世界的朋友。不要被他們的花言巧語欺騙了。他們作出開放的姿態,像我們一樣,但這卻是一個大謊言。對他們來說開源軟體只是一個值得利用的東西,但他們卻不會幫助它成長。” OpenBSD和任何一家大公司都沒有關係,在他們的研發機房裡面有IBM的機器,但卻不是IBM送給他們的。而據說IBM卻特別告訴它旗下的RAID公司Mylex不要把他們產品的說明文檔交給OpenBSD團隊。
事實上,OpenBSD仍是一套非常艱澀難用的操作系統,這並不便於讓它更加流行。但德若特並不打算自己來解決這個問題。“我們會花費更多時間來保證它足夠棒,而不是把時間用在讓大眾覺得它更美味可口上。”

版本歷史


* 1.2:1996年7月1日
* 2.0:1996年10月1日
* 2.1:1997年6月1日
* 2.2:1997年12月1日
* 2.3:1998年5月19日
* 2.4:1998年12月1日
* 2.5:1999年5月19日
* 2.6:1999年12月1日
* 2.7:2000年6月15日
* 2.8:2000年12月1日
* 2.9:2001年6月1日
* 3.0:2001年12月1日
* 3.1:2002年5月19日
* 3.2:2002年11月1日
* 3.3:2003年5月1日
* 3.4:2003年11月1日
* 3.5:2004年5月1日
* 3.6:2004年11月1日
* 3.7:2005年5月19日
* 3.8:2005年11月1日
* 3.9:2006年5月1日
* 4.0:2006年11月1日
* 4.1:2007年5月1日
* 4.2:2007年11月1日
* 4.3:2008年5月1日
* 4.4:2008年11月1日
* 4.5:2009年5月1日
* 4.6:2009年10月18日
* 6.9:2021年5月1日