非常感謝你對FreeBSD感興趣!在下面的章節中,我們將為你介紹有關FreeBSD計劃的各個方面,例如,它的歷史、目標和開發模式等等。
讀完這章,您將了解到:
FreeBSD與其他計算機操作系統的關系是怎樣的;
FreeBSD計劃的歷史;
FreeBSD計劃的目標;
FreeBSD開放源代碼開發模式的基礎知識;
當然,還有FreeBSD這個名稱的由來。
第1章 介 紹
1.1概要
非常感謝你對FreeBSD感興趣!在下面的章節中,我們將為你介紹有關FreeBSD計劃的各個方面,例如,它的歷史、目標和開發模式等等。
讀完這章,您將了解到:
FreeBSD與其他計算機操作系統的關系是怎樣的;
FreeBSD計劃的歷史;
FreeBSD計劃的目標;
FreeBSD開放源代碼開發模式的基礎知識;
當然,還有FreeBSD這個名稱的由來。
1.2歡迎使用FreeBSD!
FreeBSD是一個同時支持Intel架構(x86)和DEC Alpha架構的,以4.4BSD-Lite為基礎發展而來的操作系統。其他架構的Port(注)也正在發展中。如果你想對FreeBSD有一個大致的了解,你可以看一下下面的章節。如果你想為這一計劃貢獻點什么(代碼,硬件,不記名的資金),你可以參看后面的“為FreeBSD作貢獻”一章。
譯者注: 每種要被移植到FreeBSD上的軟件被稱為一個Port,由某個FreeBSD的開發者維護。這個Port的維護者首先將軟件移植到FreeBSD上,并將他所完成的這些移植工作按照Ports Collection的要求進行設置,編寫相關的腳本,使下載軟件、配置、編譯、安裝的全過程能夠自動完成,不需人工干預。每個Port中并沒有保存軟件包的源代碼或者二進制代碼,而只是提供了搜索它的源代碼或者二進制軟件包的方法。
讀到這里,你可能會想FreeBSD到底能夠為你做些什么。如果你是一個FreeBSD的新手,不要著急,請繼續我們的旅程。
1.2.2 FreeBSD能夠做些什么?
FreeBSD有著許多令人注目的特性。例如:
動態的搶先式的多任務處理機制,使得應用程序與用戶之間,即使是在巨大的負荷下,也能夠確保平滑、穩定地共享資源。
一個FreeBSD系統能夠允許許多用戶同時處理各種事情。也就是說,像打印機和磁帶機這些系統外部設備可以讓所有的用戶適當地分享,也可以對個別用戶或一群用戶使用的重要系統資源予以限制,以保護系統不致被過度使用。
支持完整的SLip,PPP,NFS,DHCP,NIS等TCP/IP網絡協議,這意味著FreeBSD能提供遠程文件共享(NFS) 及電子郵件(e-mail) 等服務,可以讓你的企業連上因特網(Internet) 并提供WWW,FTP,路由(routing)及防火墻(firewall)等必備服務。
先進的內存保護機制能夠確保程序(或用戶)之間不會互相干擾。一個應用程序的崩潰不會影響其他應用程序的執行。
FreeBSD是一個純32位的操作系統(已經支持Alpha的64位系統),從一開始就是這樣設計的。
業界標準的X視窗系統(X11R6)提供了一個圖形用戶接口,使FreeBSD能夠在一般的VGA顯示卡和監視器上使用圖形系統,而且你還能得到全部源代碼。
有著跟linux、SCO、SVR4、BSDi、NetBSD等系統良好的二進制兼容性。
數以千計的可執行應用程序,可以在FreeBSD的Ports和packages collection中找到。你不需要再費心到網絡上到處搜索所需要的軟件了。
數以千計容易移植的第三方應用程序都可以在因特網上找到。FreeBSD和許多商業化的Unix系統保持著源代碼級的兼容性,許多應用程序只需要很少的修改就可以直接進行編譯執行。
虛擬內存和集成的高速緩沖存儲器的設計,提供了令人滿意的高效率的應用程序執行速度。尤其是執行那些需要許多內存的大型應用軟件時,仍能支持很多用戶的交互式訪問。
對稱多處理技術(SMP)能夠提供對多CPU的支持。
完全支持C、C++、Fortran、Perl這些開發工具。許多其他的用于高級研究和開發的程序語言也在不斷地加入到FreeBSD的軟件包中去。
完整的系統源代碼使你能夠隨心所欲地控制和修改你的操作系統。讓你避開讓商業化操作系統公司操控的命運。
FreeBSD擁有豐富的在線文檔,為你解決一切問題。
當然,還有很多很多的特性,在此不一一列舉了。
FreeBSD是在加州大學伯克萊分校的計算機系統研究組(CSRG)開發的4.4BSD-Lite基礎上發展而來的,它一直保持著BSD系統開發的優良傳統。FreeBSD項目組花費了相當長的時間來調整整個系統在真實計算環境下的最大可靠性和穩定性。正當許多商業上的巨人努力地希望能提供高效及穩定的系統時,FreeBSD已經具備了這樣的素質。
FreeBSD所能提供的應用僅僅局限于你的想象力。從軟件開發到工廠自動化,從倉庫管理到衛星的遠程控制;那些商業化的UNIX系統能夠做的,FreeBSD照樣也能夠勝任,甚至更多。FreeBSD也得益于全世界的研究中心和大學為它提供令人注目的高質量的應用程序,這些應用程序通常只需要化很少的錢(甚至免費)就可以取得。當然,許多商業化的應用程序也在不斷地出現。
因為FreeBSD的源代碼是完全公開的,所以對于某些特殊的應用或項目,可以對整個系統進行修改以符合你的任何需求,而這些特性往往是那些商業化的操作系統所不能滿足的。以下提供了一些人們應用FreeBSD的例子:
因特網服務:用FreeBSD建立起來的強大的TCP/IP網絡系統,使它成為能夠提供多種因特網服務的理想平臺:
FTP服務器;
Web服務器(標準的或安全的[SSL]);
防火墻和NAT (“IP偽裝”)網關;
電子郵件服務器;
新聞組(USENET)和電子公告板系統(BBS);
還有其他很多……
有了FreeBSD,你可以先用便宜的386PC,然后等你的公司規模變大了以后再升級你的機器,用帶有RAID存儲設備的四路至強(Xeon)處理器的服務器作為你的企業級服務器。
教育上:你是一個計算機科學系或其他相關工程領域的學生嗎?再也沒有比FreeBSD所提供的實際操作經驗更好的方法來學習操作系統、計算機結構和網絡了。FreeBSD上的許多自由使用的CAD、數學計算、圖形設計軟件包能讓那些在計算機應用上有興趣的人學到更多東西。
研究上:有了完整的系統源代碼,FreeBSD就成為操作系統研究的極好平臺。具有免費且自由取得的特性,使得一個分處兩地的合作計劃不必擔心版權及系統開放性的問題,而能自由地交流。
網絡上:你需要一個新的路由器嗎?一個域名服務器?一個能夠防止外部人員入侵你內部網絡的防火墻?FreeBSD很容易把一些放在角落里已經不使用的386或486個人計算機設置成一個高性能的路由器,甚至還具有數據包過濾(packet-filter)的功能。
X圖形工作站:作為一個便宜的X終端解決方案,無論是充當免費使用的XFree86服務器,還是充當提供X服務的商業化服務器,FreeBSD都是一個很好的選擇。FreeBSD不但可以充當遠程X程序終端,也可以在本地執行X程序從而減輕大型工作站的負荷。如果有一臺中央服務器的話,FreeBSD甚至可以通過網絡啟動(不需本地硬盤),而變成更便宜的且易于管理的工作站。
軟件開發:基本的FreeBSD系統擁有包括非常出名的GNU C/C++編譯器和調試器在內的一整套開發工具。
FreeBSD的發行光盤既提供系統的源代碼也提供直接可執行程序,可以通過匿名FTP的形式在網上自由下載。請看看附錄A了解如何獲得FreeBSD。
1.2.1 誰使用FreeBSD?
在Internet上,有許多國際知名的大網站運行著FreeBSD,包括:
Yahoo!(http://www.yahoo.com)
Apache (http://www.apache.org)
Be,Inc (http://www.be.com)
Blue Mountain Arts (http://www.bluemountain.com)
Pair Networks (http://www.pair.com)
Whistle Communications (http://www.whistle.com)
Microsoft (http://www.microsoft.com)
Hotmail (http://www.hotmail.com)
Sony Japan (http://www.sony.co.jp)
等等……
1.3關于FreeBSD計劃
下面的部分將介紹有關這個計劃的一些背景信息,包括大概的歷史,計劃的目標,以及整個計劃的開發模式等。
1.3.1 FreeBSD的發展歷史
作者:Jordan Hubbard
FreeBSD計劃最早是從1993開始的,那是源自于維護一組“非官方的386BSD Patchkit”計劃的三個協調維護人Nate Williams,Rod Grimes和我。
我們原先的計劃是做出一份386BSD的測試版以修正一些Patchkit無法解決的錯誤(bug)。你們中的一些人可能還記得早期的計劃名稱叫“386BSD0.5”和“386BSD Interim”就是這個原因。
386BSD是Bill Jolitz的操作系統,在當時就已經有了約一年的分裂討論。由于Patchkit的急劇膨脹,使得很難每天都能夠消化吸收,我們一致決定應該幫助Bill來改善目前的困境。然而,Bill卻在事先沒有指出這個計劃應該如何開展下去的情況下,突然退出這個計劃,最終這個計劃只好暫時停止。
沒有多久,我們決定在沒有Bill支持的情況下,應該做一點有價值的事情,所以我們采用David Greenman提出的將這一計劃命名為“FreeBSD”。在和當時的幾個用戶進行商議后,才決定了我們最初的目標。等到一切逐步明朗化之后,整個項目開始走上正規,這個計劃也逐漸成為一個現實。為了給那些不容易訪問互聯網的用戶提供一個FreeBSD的發行渠道,我們開始跟Walnut Creek CDROM發行商進行聯系。Walnut Creek CDROM發行商不僅愿意為我們發行FreeBSD光盤,而且還為我們提供開發這一計劃所需要的計算機和快速的互聯網接入。沒有Walnut Creek CDROM的支持,我們就沒有信心去開發這一計劃,也不可能看到現在的FreeBSD會發展的那樣深遠,快速。
第一張FreeBSD光盤是在1993年12月發布的,我們把它命名為FreeBSD1.0。這一版本是以伯克萊加州大學的4.3BSD-Lite(“Net/2”)為基礎的,它帶有386BSD上的許多組件還有自由軟件基金會(FSF)的許多軟件。對于一個早期的產品來說,它還算成功。接著,我們在1994年的5月份成功地發布了FreeBSD1.1版本。
大約就在那時,發生了另一件意外的事情:Novell和U.C. Berkeley在有關Berkeley Net/2磁帶版權問題上發生了法律糾紛。最后結果,U.C. Berkeley接受大部分的Net/2的程序代碼都是“侵占來的”且是屬于Novell的財產這一條件——事實上是當時不久前從AT&T取得的。Berkeley得到的則是Novell對于4.4BSD-Lite的“祝福”,到最后4.4BSD-Lite發行之后,便不再算是侵占行為。而所有現有的Net/2用戶都被強烈建議更換新版本。這包括了FreeBSD,我們被要求于1994年7月底前停止發布基于Net/2的產品。在此前提下,本計劃被允許在規定期限以前作最后一次發行,也就是FreeBSD 1.1.5.1。
于是我們開始艱苦地整合4.4 Lite,因為Berkeley的CSRG小組在4.4 Lite中刪掉了許多有版權問題的程序代碼,而導致4.4 Lite是一個不完整的,無法啟動的系統。直到1994年11份,整個計劃才有所改善,最終在12月份才把FreeBSD 2.0通過網絡和CDROM發布出來。雖然系統很多地方還很粗糙,但是這一發行版還是很成功的。到1995年6月份發行2.0.5版的時候,它已經變得非常強大和容易安裝了。
我們在1996年8月發布的FreeBSD 2.1.5版,它已經在ISP和一些商業團體中廣泛流傳。另外一個發行版沿著2.1-stable分支繼續發展,直到1997年2月發行2.1.7.1版后才終止了這一分支。現在這些分支處于維護階段,僅僅是增強一些安全性和修補一些錯誤。
1996年的11月,從主開發線(“-CURRENT”)分出來FreeBSD 2.2作為RELENG_2_2分支。作為這一分支的最早發行版是在1997年4月發布的2.2.1版,這個分支直到1998年11月的2.2.8版時才宣告結束。正式的3.0發行版是在1998年10月份出現的。
到了1999年1月20日又出現了新的分支,那就是4.0-CURRENT和3.X -STABLE分支。從3.X-STABLE開始,3.1版是在1999年的2月15日,3.2是在1999年5月15日,3.3版是在1999年的9月16日,3.4版是在1999年的12月20日,3.5版是在2000年的6月24日發布的,幾天后又加入了一些安全性方面的修補,這一分支最終發展到3.5.1版本。這也是3.X分支的最后版本。
到了2000年3月13日又出現了另一個分支4.X-STABLE。現在,我們采用“current-stable”的分支方法。從這時開始,又有了好幾個發行版:4.0版在2000年3月發布,4.1版在2000年7月發布,4.2在2000年11月發布,4.3在2001年4月發布。4.4在2001年9月發布。沿著4.X-STABLE (RELENG_4)這一分支將不斷發展到2002年。
有很長的開發隊伍在繼續著5.0-CURRENT(trunk)的開發,現在已經可以在網上下載到它的預覽版了(ftp://current.freebsd.org/pub/FreeBSD/snapshots)。
1.3.2 FreeBSD計劃的目標
FreeBSD計劃的目標是為那些不管出于什么目的,不需要有任何限制的人提供軟件。我們中的許多人都為這一計劃或其中的軟件有相當深入的投入和研究。當然也不介意現在或是將來能夠得到財政上的補償。我們首先和最主要的使命是為現有的任何人和即將加入的新來者提供代碼,無論他們出于什么目的,都能夠最大范圍地使用代碼,使盡可能多的人受益。我相信這就是我們狂熱地支持自由軟件的最基本的目標。
在我們整個程序代碼中,有些是使用GNU公用軟件許可證(GPL) 或是LGPL的版權公告的。它們附帶有許多限制性文字在其中,但還好只是允許人們可以取得該軟件,而不是一般限制性的版權公告。由于使用GPL的軟件在商業用途上會增加若干復雜性,我們在適當的時候會讓這些軟件改用更寬松的BSD版權聲明。
1.3.3 FreeBSD的開發模式
FreeBSD的開發方式是一個非常開放和靈活的方式,就像從我們的計劃貢獻者列表中看到的那樣,FreeBSD是由世界各地的許許多多的人們不斷貢獻他們的力量而建立起來的。我們也經常關注著那些對我們的計劃感興趣的新開發者和新的創意,他們主要通過FreeBSD的技術討論郵件列表來與我們進行交流<[email protected]>。FreeBSD發表的郵件列表<[email protected]>對那些希望了解我們工作所涉及到哪些領域的人也是有用的。
無論你是獨立地工作,還是封閉式的團隊協作,了解FreeBSD計劃和它的開發方式是非常有用的。
CVS倉庫
FreeBSD的中央源代碼樹是通過CVS(Concurrent Versions System)來維護的。CVS是一個用FreeBSD打包而成的自由使用的源代碼控制工具。主CVS庫放置在美國加利福尼亞Santa Clara的一臺機器上。CVS樹就像我們現在將它分為-CURRENT和-STABLE樹一樣,能夠很容易地被復制到你的機器上。你可以參考第19.3節了解有關使用FreeBSD CVS倉庫的詳細信息。
維護者列表
維護者是那些可以直接修改CVS樹的人,經審定后可以修改FreeBSD的源代碼(維護者可以使用commit命令來對CVS倉庫進行操作)。提交修正的最好方法是使用send-PR命令,如果你發現在系統中出現了一些問題的話,你可以發Email到<[email protected]>提出自己的意見。
FreeBSD的核心團隊
如果把FreeBSD計劃當作是一個公司的話,那FreeBSD的核心團隊就相當于董事會。FreeBSD核心團隊的主要任務是提出總體上的發展計劃,然后確定一個正確的方向。邀請那些富有獻身精神和可靠的開發者加入到我們維護者隊伍中來也是我們的工作之一,這些新的成員將作為新核心團隊成員和其他人一起繼續前進。當前的核心團隊是在2000年10月從維護者候選人隊伍中選舉出來的。選舉每2年舉行一次。一些核心團隊的成員還負責特定的責任范圍,也就是說他們必須盡力確保某個子系統能工作正常。
注意:許多核心團隊的成員都是自愿加入FreeBSD開發行列的,而且沒有從本計劃獲得任何經濟上的資助,因此“承諾”不應該被理解為“支持保證”。前面所述“董事會”的說法并非十分精確,或許說他們是一群愿意放棄他們的生活,投身于FreeBSD計劃而非其個人其他領域成就的人!
其他的貢獻者
事實上,為我們提供反饋和錯誤修補的巨大開發隊伍正是用戶自己。FreeBSD的非集中式的開發者保持聯系的主要方式就是預訂FreeBSD技術討論郵件列表<[email protected]>,以此來對一些問題進行討論。
提供代碼并不是為整個計劃做貢獻的唯一方法。有一個完整的現在需要做的事的列表,可以參考FreeBSD計劃的官方網站(www.FreeBSD.org)。
總的來說,我們的開發模式好像是一組沒有拘束的同心圓。這種集中式的開發模式,主要是考慮到用戶的方便,同時讓他們能很容易地維護同一份軟件,而不會把潛在的貢獻者排除在外。我們的目標是提供一個包含有大量具有一致性應用程序的穩定的操作系統,以利于用戶的安裝和使用,這種模式在完成目標的過程中工作得非常有效。
我們對于那些要加入我們的FreeBSD開發者的期待是,具有如同當前其他人一樣的投入,來確保其持續的成功!
1.3.4當前的FreeBSD發行版
FreeBSD是一個自由使用且帶有完整源代碼的,以4.4BSD-Lite為基礎的系統,它廣泛運行于Intel i386、i486、Pentium、Pentium Pro、Celeron、Pentium II、Pentium III(以及其他兼容的系統上)和DEC的Alpha系統上。它主要以U.C. Berkeley CSRG的軟件為基礎,并加入了NetBSD、OpenBSD、386BSD和自由軟件基金會的一些東西。
自94年發布FreeBSD 2.0以來,FreeBSD的性能,可定制性,穩定性都有了令人注目的提高。最大的變化是通過集成高速緩存修補了虛擬內存的錯誤,不僅提高了性能,而且減少了FreeBSD對內存的需求,使得只要5MB內存就可以執行FreeBSD。其他的變化主要是增加了對NIS客戶端和服務器端的完整支持,TCP處理的支持,PPP撥號的支持,集成的DHCP的支持,一個增加的SCSI子系統,ISDN的支持,ATM,FDDI,千兆以太網的支持,提高了對最近的Adaptec控制器的支持和許許多多的錯誤修正。
我們也采用了用戶所提出的看法和建議,以及嘗試著提供更加合理且容易理解的安裝過程。我們歡迎你提出對于這個計劃的任何建議!
除了最基本的系統軟件,FreeBSD提供了一組上千個已經移植到FreeBSD的一般用途軟件。到寫作這篇文章的時候,已經有了5900種以上的軟件!這些軟件包括http (WWW)服務器、游戲、程序語言、編輯器和幾乎所有的東西。這些收集只占了約100MB的空間,所有的軟件只提供針對原始程序代碼的修正,并不包含該軟件的原始程序代碼,這使得我們能夠容易地更新軟件,而且減少了硬盤空間的浪費。如果你想要編譯該軟件,只要到該軟件目錄下,執行make install就可以了。而且幾乎大多數的軟件都提供了事先編譯好的版本以便于安裝,你只要使用pkg_add就可以輕松安裝,而不需要自己編譯。
你可以在/usr/share/doc下找到許多有用的文件來幫助你安裝及使用FreeBSD。你可以使用HTML瀏覽器來閱讀:
The FreeBSD Handbook
file://localhost/usr/share/doc/handbook/index.html
The FreeBSD FAQ
file://localhost/usr/share/doc/faq/index.html
你也可以訪問FreeBSD的主站http://www.FreeBSD.org/了解更多的信息。
新聞熱點
疑難解答