FreeBSD連載(03):其他相關系統和組織
王波
其他相關系統和組織
自由使用和免費是FreeBSD的特征,在英文里都可以使用 “free” 來表示。這表示使用者不僅僅可以
免費使用這個系統,還可以對軟件進行適合自己需要的改動,并能夠影響這個軟件的發展等等,這正是free這個詞更深一
層的含義。
支持自由軟件的人通常認為,每個計算機的使用者都有自己特定的需要,不可能有一個包羅萬象、適合所有需求的軟
件系統。因此軟件開發者和系統管理員希望了解軟件內部的情況,以便可以對軟件進行定制和擴展。而商業軟件只提供軟件的
二進制代碼,將軟件內部的操作完全封閉起來,使用者就喪失了對軟件的主動權。另外,任何軟件產品都存在各種BUG,商
業軟件的使用者在遇到軟件產品的這些問題時,就只能被動的等待廠商的補丁程序,整個軟件系統不得不停頓或冒一定的風險
繼續使用。第三,計算機的使用者并不會完全信賴商業軟件,某些軟件廠商會故意在軟件中加入惡意代碼,或加入某種未公開
的后門,對使用者造成危害。即使這些軟件中的后門或惡意代碼是打著防止盜版、提供更方便的功能等旗號加入的,但也可能
被偶然觸發,危害使用者的利益。而在提供軟件源代碼的軟件中,就不會存在這種惡意的行為。
這些問題對于一個普通用戶或者不重要,但對于一個較大的系統或要求較高安全性的系統中,就能表現出重要性了。
支持自由軟件的人認為,如果一個軟件提供了源代碼,那么使用者就能根據情況自己修改或請他人修改軟件,從而適合自己的
最終需要,并修正系統中因為有意或無意導致存在的問題。當前,開放源代碼已經得到越來越多的計算機使用者和廠商的認可
,他們組成了開放源代碼組織(Open Source),來進一步推動這個思想。
另一方面,由于某些種類的商業軟件中不存在競爭,壟斷的結果就造成軟件的價格昂貴,使得這些軟件不是任何有需
要的人都能夠用得起的。而軟件最大的價值是被人使用,因此有很多人認為軟件開發者要允許別人使用他的軟件,應該從軟件
服務中獲得收益,而不是從軟件本身中謀取暴利。他們認為計算機應該屬于大眾,而不應該由某些公司壟斷。因此這些崇尚自
由軟件的人員就想為所有用戶開發一整套系統,使用戶在現有商業軟件之外還可以進行選擇,而不至于必須為商業軟件支付額
外的費用。這些人包括FreeBSD的開發人員、Linux的開發人員、GNU計划的開發人員以及其他眾多的自由軟件
開發者,他們開發的軟件構成了計算機領域內多姿多彩的一面,使得即使不使用任何商業軟件,使用者也同樣能夠在計算機上
以更好的性能完成所有的工作。
|
GNU不是Unix,采用這種遞歸方式定義的GNU計划是由Richard Stallman提出的,他建立自由軟件基金會(FSF)并提出GNU計划的目的是開發一個完全自由的,與Unix類似但功能更強大的操作系統,以便為所有的計算機使用者提供一個功能齊全,性能良好的基本系統。GNU HURD為GNU操作系統的內核,但是當前還沒有正式發布,仍處于測試階段。很多人使用Linux內核和GNU的應用軟件組成了GNU/Linux系統。右圖為GNU的標志。 |
 |
FSF開發了大量的自由軟件來達到這個目的,這些軟件與Unix上原有的軟件功能相同,但由于GNU開發軟件
的時候硬件的處理能力更強了,因此GNU軟件充分利用計算機的硬件能力,比Unix中的同樣的軟件功能更強,因此非常
流行。這些軟件在GNU通用公共許可的保護下允許任何人免費使用和傳播(但必須同時提供源程序),因此被大量的用在其
他的Unix中,FreeBSD上也提供了很多GNU軟件。
Stallman創造了一個詞copyleft,由于通常意義上的版權copyright是用來限制別人在沒
有許可的條件下不能使用和傳播軟件,而copyleft則鼓勵任何人可以使用和傳播軟件。copyleft限制妨礙使
用和傳播GNU軟件的行為,例如不提供GNU軟件的源代碼。然而copyleft與copyright并不沖突,因為
copyleft是針對軟件的傳播者而非針對最終使用者的。GNU軟件必須使用copyleft保護,限制將GNU軟
件本身用于牟利目的,而其他軟件仍然可以使用copyright保護版權不被侵犯。Stallman進一步使用GNU
通用公共許可來詳細闡述copyleft的觀念,要求傳播GNU軟件必須同時傳播其源代碼。由于GNU通用公共許可十
分流行,因此很多非自由軟件基金會的自由軟件也使用GNU通用公共許可來保護自己軟件,不被商業公司用于獲利。
GNU軟件許可相當寬松,有很多公司利用GNU軟件進行商業活動,但只要同時提供了GNU軟件的源代碼,就沒
有違反GNU軟件許可。
FreeBSD本身是在BSD許可的保護下,BSD許可權與GNU通用公共許可略有不同,一些方面的限制甚至
更為寬松。GNU通用公共許可要求傳播(包括銷售)任何符合GNU軟件應該包括源代碼,反對利用保守GNU軟件的源代
碼的方式牟利,而BSD許可則允許以二進制形式發布軟件,對于某些不打算公開源代碼的商業運用并沒有進行限制。
FreeBSD并不是唯一的免費 “Unix” 操作系統,也不是最流行的Unix系統,這個榮譽屬于Lin
ux。這主要由于Linux出現得早兩年,那時BSD的源代碼還受AT&T許可權的限制,不能自由獲得,而I
ntel的32位處理器386的普及已經使Internet上諸多Unix愛好者對PC平台上的免費Unix系統提出
了需求,Linux應時而生。近來在Netscape等商業公司的倡導下,Linux得到眾多商業公司的支持,無形中
成為了反Microsfot聯盟的一杆旗幟,聲勢更為浩大。
Linux是由芬蘭人Linus Torvalds編寫的Unix兼容系統。由Linus Torvalds
負責核心開發和維護,其他組織和商業公司負責將Linux的核心和應用程序組織在一起發布,由于大部分程序為GNU軟
件,因此更嚴格的說Linux應該被稱為GNU/Linux。當前流行的Linux版本有slackware 3.6
,Debian 2.0,RedHat 5.1等。
Linux和FreeBSD同為英特爾平台上的Unix操作系統,因此有很多相似之處。几乎所有的自由軟件都
同時支持Linux和FreeBSD,因此在應用方面他們也很相似。但Linux和FreeBSD也有相當大的不同之
處,可以說各具特色。
從歷史淵源上講,FreeBSD繼承了BSD Unix的代碼,因此代碼相當成熟和穩定。而Linux是一個
全新的系統,是遵循POSIX規范開發的一個獨立操作系統,但又提供了與BSD Unix或Unix System
V的兼容性。因此Linux完全沒有受到1992年的AT&T訴訟的影響,結果成為了最流行的自由操作系統。
雖然今天那次法律糾紛已經解決,4.4BSD Lite的代碼可以自由獲得,但FreeBSD的使用者仍要少于Lin
ux的使用者,FreeBSD的使用者多數為網絡和計算機專業人士,普及程度較低。
出于這個歷史淵源的原因,FreeBSD是一個完整的系統,從系統核心到系統提供的程序均來自BSD Uni
x,部分GNU軟件是用于代替BSD Unix中的一些老版本軟件。而Linux僅僅只是一個操作系統的內核,其應用
程序大部分為GNU軟件,然后由不同的組織或個人將這些GNU軟件與Linux內核整合在一起的。因此就存在多個不同
的Linux版本,而且不同的Linux版本使用不同的組合方式,因此各種Linux版本之間有很大的差異,并且可以
預計這些版本會隨著發展進一步增大彼此的差異。而FreeBSD的版本比較整齊清晰,只有一個FreeBSD版本。
通常FreeBSD更關心穩定性,而Linux具備的各種新特性更多。由于Linux得到了更多的商業公司支
持,因而Linux下的商業軟件也更多。但是這些商業軟件均可以通過FreeBSD對Linux執行文件的支持,也能
夠運行在FreeBSD上。這個不同主要是由于Linux和FreeBSD的開發過程的差異造成。
雖然FreeBSD和Linux的開發過程都是非常開放的方式,每個開發者獨立進行自己的工作,通過Inte
rnet來互相交流。任何對系統開發有興趣的人都能貢獻新的想法,并組建一個開發隊伍或加入現有開發隊伍將自己的想法
實現。但是FreeBSD與Linux開發方式的不同是,FreeBSD有一個開發者組成的核心小組(FreeBSD
core team)對整個FreeBSD負責。任何人都可以利用FreeBSD提出自己的開發計划,但只有Free
BSD核心小組認為這個計划對整個FreeBSD發展有益,這個計划才能列入FreeBSD計划本身。所有的Free
BSD開發者共享同一個源代碼樹,使用并發版本維護工具CVS進行維護。有了FreeBSD核心小組從整體上規划Fr
eeBSD,并邀請其他開發者加入核心小組,因此FreeBSD顯的更簡潔和干淨,版本發展也比較穩定。而Linux
僅由Linus對內核進行維護,任何人都可以組織自己的計划,貢獻自己的代碼,沒有一個統一的源代碼樹,只是在最后由
Linus進行整合和發布正式內核。由于沒有嚴格的控制,并且Linux的開發者很多,因此Linux中雖然有更多的
新特性,卻顯得略為雜亂,并且有些新特性的代碼沒有經過時間驗証,可能存在有問題。
一個新功能沒有進入FreeBSD正式版本的原因很多,有的是由于這個功能不夠成熟,有的是由于核心小組認為
這個特性意義不大,還有的是因為正式內核已經有類似功能,或者由于專利或版權問題(例如,該軟件的作者不打算讓該軟件
成為自由軟件),使得十分成熟的功能也不能被列入正式發行的版本。
由于Linux和FreeBSD互為競爭對手,在Internet上關于Linux和FreeBSD的爭論很
多,然而這種爭論一般不會得到什么明顯的結果。事實上他們都能完成各種應用需求,但各有自己的側重點,至于那種系統最
適合自己,需要根據具體情況而定,使用者的個人喜好也是影響選擇的一個重要因素。一般FreeBSD的使用者也曾經(
或同時)是Linux的使用者,然而有Linux的使用經驗對學習和使用FreeBSD也有不少幫助。只有競爭才能促
進發展,Linux和FreeBSD不但是競爭的關系,也是相互學習的關系,只有如此各自才能不斷發展。
在作者個人的使用經驗中,FreeBSD僅有過一次崩潰,并且這種崩潰不是隨機出現的,其原因是使用了所有優
化選項來編譯內核,編譯器某項優化造成了內核的BUG,結果就在執行某項操作時就被觸發。在降低了優化級別之后,問題
就消失了。因此這個問題應歸結為編譯器的問題而非內核的問題。在Linux中,問題更為嚴重一些,過于求新求功能的多
樣性,使得系統崩潰更頻繁,并且很多系統崩潰無法找到原因。
注意:系統崩潰和系統死鎖不同,一些情況下一些應用軟件死鎖會造成鍵盤或顯示沒有響應,然而仍然可以通過網絡
或其他終端設備登錄進系統殺死死鎖進程。例如在FreeBSD下執行Linux的X Server時,進行切換虛擬控
制台的操作就會導致鍵盤死鎖。
當前Linux的一個發展熱點是各個商業公司的參與,這的確丰富了Linux下的軟件。然而另一方面,商業公
司也試圖把專有設計引入Linux,將原有開放的環境變為商品化的環境,以便從中牟利。當前不同版本的Linux之間
的差異已經相當大了,很多人已經意識到了Linux面臨的分裂危險,可以想象以后某個版本的Linux會與其他版本存
在兼容性問題。而FreeBSD有統一的源代碼樹,不存在分裂的問題。
商業版本的BSD/OS也是一個非常優秀的操作系統,它是由原BSD Unix的部分開發人員組成的BSDI
公司的產品。由于存在商業支持,因此在某些方面具備免費的FreeBSD不具備的優勢。例如某些硬件廠家不愿意公開自
己的硬件資料(或者是有條件的公開),因而使得FreeBSD無法支持他們的硬件,而他們可以為BSDI提供資料以供
開發驅動程序。一些不能理解自由軟件、要使用FreeBSD不支持但BSDI支持的硬件,或對服務和技朮支持提出較高
要求的使用者,可以選擇使用BSDI。
NetBSD和OpenBSD也是基于4.4BSD的自由Unix操作系統,可以算是FreeBSD的兄弟。
甚至在最初,NetBSD和FreeBSD的大部分開發者都完全相同,同樣的開發者同時為兩個系統進行開發。而開發者
和使用者都是將這兩個系統作為BSD Unix在不同硬件平台的實現來看待的,FreeBSD用于Intel平台,而
NetBSD用于多硬件平台,主要用于RISC工作站硬件。隨著兩個系統的不斷發展,兩者逐漸相分離,而OpenBS
D是從NetBSD分出的一個分支。但FreeBSD是為個人計算機平台設計的,后來才嘗試移植到其他平台上(已經有
Alpha和Sparc芯片下的FreeBSD系統,但還不十分成熟),因此更適合個人計算機用戶,而NetBSD和
OpenBSD一開始就設計為能夠運行在多系統平台上,包括各種RISC工作站,因而NetBSD和OpenBSD的
使用范圍就更窄一些。
以上這些BSD Unix系統的使用數量要少于FreeBSD系統。FreeBSD由于專注于Intel平台
,支持Intel平台上的硬件種類最多,并對易用性作了很大改善,因而使用范圍更廣泛,是最常見的BSD Unix系
統。但是由于這些系統同屬BSD來源,在開發過程中常常相互交流,因此使用方法和管理基本相同。在FreeBSD、N
etBSD、OpenBSD之間進行選擇的決定性因素常常是安裝BSD系統的硬件平台。
未完,待續。。。
|