2009年5月13日 星期三

FreeBSD vs LINUX [舊文新體認]

由於近來為了公司一部FreeBSD主機資料移轉,有較以往多很多的機會去接觸到FreeBSD!
閒暇之餘,也考察了一些FreeBSD和LINUX的差異,
像是Daemon啓動命令,更新管理,目錄架構等。
一番功夫下來,很糟~
怕我會移情別戀,愛上小惡魔(FreeBSD)!


+=============================================================================================+
FreeBSD vs LINUX [舊文新體認]
FreeBSD 和各種Linux發行版一樣,是一種免費的Unix類操作系統。
由於FreeBSD的推出稍晚於Linux,因此國內介紹FreeBSD的文章較少,
而且由於某些媒體不負責任的推波助瀾,Linux被過分誇大、神化了。
實際上,很多大網站都在用FreeBSD,如Yahoo,甚至包括Microsoft的 Hotmail
(Microsoft收購Hotmail 4年了,但直到去年11月Microsoft才宣布Hotmail向Windows/IIS遷移,
而且,至今Hotmail主機群中依然包括 FreeBSD Boxes,
可見Microsoft對於Windows並不是真的很放心,這一事實也證明了FreeBSD引以為耀的穩定性)等等。
和Linux各種混亂不堪的發行版相比,FreeBSD只有唯一的版本,
同時,FreeBSD關注的是操作系統的穩定性、性能和品質,適合作為服務器的操作系統。
當然,對於選擇FreeBSD還是某種Linux發行版本作為操作系統,不同的人肯定有不同的偏愛,
但譯者認為,FreeBSD作為服務器來說,比Linux更好一些,
當然,如果不考慮開發成本,僅僅考慮運行效率,也更遠好於Windows。原因很多,有機會的話,我會在今後的文章中一一提到。

需要說明的是,譯者不認為最近一兩年之內免費操作系統陣營能夠和Microsoft等商業系統陣營決出勝負高下,因為他們的操作系統的設計理念存在差別。
我自己很喜歡命令行方式的操作,然而在圖形界面方面,X Window的效率是很難超過Windows的,這是因為X是以用戶模式運行圖形界面,
而Windows則是以核心模式運行,這實際上就造成了Unix類操作系統在圖形界面上的先天不足。
而且,由於Microsoft的產品是要賣錢的,因此它為了維護自己的市場地位,會為客戶提供比較好的服務,
而免費 Unix操作系統在這一點則比較困難,而且,它對用戶的要求較高。
在這裏我不想給出一個確切的建議,如桌面操作系統應該選擇什麼,服務器操作系統應該選擇什麼,一切要從實際情況出發。
請大家注意這樣的事實:專業人員維護的Windows服務器的安全性未必就差,非專業人員維護的*nix服務器的安全性也肯定是無法接受。
在抨擊Nimda橫行的同時,也請注意,Microsoft早在Nimda出現前半年的時候就已經推出了預防性的補丁;
*nix一樣也有非常讓人難堪的安全問題,同樣的,他們也會及時推出補丁,因此,絕大多數服務器的安全問題是由於管理員的疏忽造成的。
選擇操作系統之前,最好是先想好:什麼樣的配置對於您最有利,請考慮整體擁有成本(TCO)而不僅僅是操作系統的價格。
目前很多網站采用的、非常流行的Windows 2000+Apache+Php+MySQL組合,
實際上就同時犧牲了IIS開發周期短和Apache+Unix組合相對比較容易定制的優點,可謂竹籃打水一場空。

這篇文章比較客觀地對FreeBSD和Linux進行了對比,值得一讀,所以我決定把它介紹給國內的讀者。
總之,Think different,決定選擇什麼東西之前,最好先嘗試一番,特別是那些同類產品。

簡介:
即使是和IT不沾什麼邊的企業信息技術人士大概也都聽說過Linux。
有些人可能用過,或正在使用它,原因五花八門,有的甚至只是為了看看那些大肆吹噓它的人到底說的是不是實話。
然而,GNU/Linux並不是可用的唯一一個「free」的Unix類操作系統。
FreeBSD和它的堂兄弟, OpenBSD和NetBSD都是商業UNIX版本——Berkeley Software Distribution免費的分支產品。
這篇文章讓您更多地了解FreeBSD,也幫助您更輕松地進行潛在的遷移過程。

與Linux使用的GPL授權不同,BSD家族的操作系統使用BSD風格的授權。
用一句話來概括兩種授權的不同就是,GPL要求源代碼的任何衍生物也是公有的,並且使用GPL授權,而BSD授權沒有這個要求。

FreeBSD和主要的Linux發行版本的工作方式有一定區別。
這篇文章將告訴你我自己認為在把我的桌面操作系統由Linux切換到FreeBSD時的收獲。

當然,肯定會有人堅持這樣的觀點:Linux指的僅僅是操作系統的內核,而不是其他什麼東西。
在你的Red Hat或Debian匣子中,每天使用的應用程序是由相應的發行版本提供的。
而FreeBSD,則包括了操作系統內核和整個操作系統中的那些基本的應用程序,例如複制、移動文件的命令等等。
這一區別的結果是,Linux由不同的發行版本,例如Mandrake, SuSE, Debian和Slackware。
任何使用過Mandrake和Debian的人都會告訴你這兩套發行版本的世界有多麼大的區別。
相反,只有一個 FreeBSD,我的FreeBSD和你擁有的FreeBSD是完全一樣的,只要他們的版本一樣。

三中最主要的Linux發行版本,Red Hat、Mandrake和SuSE使用了RPM安裝包管理器。
RPM處理安裝、升級、卸載,並檢查安裝在這些操作系統上的應用程序依賴關系。
雖然在安裝程序之前檢查依賴關系的錯誤,但RPM遺留了比我們期待的更多的問題。
例如,它不能自動地下載它需要的其他RPM。
我知道至少3個項目試圖解決這個問題, urpmi, Debian的apt-get,
當然,附帶說一句,只是一個「僅Debian采用」的特性,而且是一個RPM和apt-get的混血兒。
所以,除非你打算是用上面的方法,否則你將不得不手工尋找、下載所需要的RPM。聽起來很簡單麼?
直到你用RPM安裝Gnome或者升級Xfree的時候你才會知道事情有多麼嚴重。
而且,即使你找到了正確的RPM,如果他們是為SuSE設計的,而你運行的是Red Hat,那麼你的麻煩課就大了。

每一個Linux發行版本都存在一些差異,而它們之間最大的差異則在於文件系統的結構。
我肯定絕大多數人都聽說過SuSE把KDE放到/opt,而 Red Hat則放到/usr文件夾中。
更糟糕的是,RPM不能識別從源代碼中編譯得到的程序。所以,如果你擁有最新編譯的程序,RPM甚至無法知道他們的存在。

FreeBSD使用「包」來安裝、卸載和升級應用程序。『pkg_add』命令被用於安裝一個你手工下載到計算機的包。
你也可以用『-r』開關來讓它自動的從Internet獲取,當然,也包括這個包所依賴的一切。
不過,FreeBSD包的真正美妙之處在於「連接點」(Ports)樹。
連接點樹是 ——FreeBSD包含的應用程序之間的繼承關系。
每一個文件夾都包含Makefile,以及讓特定應用程序能夠在FreeBSD上正確運行所需要的補丁。
例如,如果我想安裝Apache web服務器,我所需要做的只是cd到/usr/ports/www/apache文件夾,然後運行『make && make install』,然後去小吃售賣機前。
如果我擁有一台速度夠快的電腦,同時擁有一個足夠大方的Internet連接,當我回來的時候Apache源代碼的下載、補丁、編譯和安裝肯定都已經做完了。
連接點樹也能夠處理Apache運行依賴的那些程序,無論我用連接點樹安裝、手工編譯,還是通過安裝已經編譯好的二進制包。
連接點樹能夠通過$PATH找到它需要的東西。

Linux和FreeBSD的另一個區別在於,對於FreeBSD而言,你安裝的連接點或者包99%都會被放到/usr/local,而在 Linux上有時是/usr,有時是/opt。
這可能只是一個很小的區別,但你至少可以知道你的程序安裝到了/usr/local,而不是擴散到了文件系統的各個地方。

FreeBSD系統使用cvsup來保持它是最新的。
一旦你建立了『sup-file』,cvsup將會把你本地的系統和cvsup服務器上的進行比較,並且下載那些修改過的東西。
你可以用它來確保你的本地連接點樹和FreeBSD源代碼都是最新的。
和Linux不同,Linux通常只有內核被半正規性的下載和變異。
使用cvsup,你可以很容易地下載整個FreeBSD操作系統的源代碼。
這樣做的主要理由是,它使得FreeBSD從一個版本升級到另一個的過程變的簡單。
Cvsup之後,你可以用make world來編譯整個操作系統,或者編譯新的操作系統內核。
這些都非常的簡單。

處理分區的方式也有區別。
Linux將一個硬盤分為不同的分區,在這些分區中,有些又包括邏輯分去。
我們常說的分區在FreeBSD中稱為片斷(Slices),沒個片斷中包括一個或多個BSD分去。
BSD分區在/etc/fstab中可以找到。

也許Linux和FreeBSD的下一個最大的區別就是操作系統設計的基本理念。
Linux強調最新的操作系統特性和驅動程序(例如不開放源代碼的 nVidia圖形卡驅動程序)。
FreeBSD在這些方面比較保守。他們喜歡經過時間考驗和測試過的東西,甚於最新特性。
他們傾向於等待主要的bug被修正。
對於桌面操作系統來說,如果你使用最新的硬件,追求最新的驅動程序,或那些更酷的特性,保守是FreeBSD的一個毛病。
然而在服務器中,你肯定希望更加穩定的代碼。
另外,你會把一塊價值200美元的顯示卡放到你的不包括顯示器的服務器上麼?

另一個區別是默認安裝的內容。
如果你接受SuSE的默認安裝選項,那麼你至少會裝上1GB的軟件。
而FreeBSD只是安裝那些最基本的系統(注意,我知道你會告訴SuSE僅僅安裝『基本系統』,但我說的是『默認』安裝)。
他帶給你那些最本質的東西,而你可以在以後通過連接點樹安裝4000多種應用程序中的任何一個。
幾乎所有在Linux中運行的程序都已經被移植,並且能夠正常運行於FreeBSD,
唯一的區別在於在Linux上,應用程序要麼被 「默認安裝」,要麼,除非你用Debian,你就必須手工下載它們。
在FreeBSD上他們只是可選的,而且絕大多數過程已經被自動化了。
另一些區別就是,Linux上默認的命令行外殼是bash,而FreeBSD上則是tcsh。

對於商業應用程序,如Oracle或HP Openmail,FreeBSD提供了一個「Linux兼容」層。
簡而言之,它讓FreeBSD能夠以接近在Linux上運行的速度直接運行Linux 的二進制應用。
應用程序是否能夠在FreeBSD上全速運行完全取決於它是否真的願意在Linux上運行。
兼容層比模擬更進一步。需要的Linux庫被以二進制形式安裝在BSD系統中。
當你試圖運行Linux程序時,FreeBSD識別它是Linux程序,並簡單地指明它需要的Linux運行庫的位置。
同時,FreeBSD夜亦提供了商業BSD、NetBSD、OpenBSD和SCO的模擬。
每種不同的操作系統獲得不同的支持,其中最完善的是商業BSD、 NetBSD和OpenBSD。

盡管BSD開發者更重視軟件的品質和數量,但這並不意味著FreeBSD缺乏某些功能。
預定於2002年11月推出的FreeBSD 5.0包括了更加精細的進程控制機制,這允許它更加有效地運行於最多32個處理器。
版本5.0也將提供一個完整的DEVDFS設備文件系統。雖然這些在 Linux上已經存在了一段時間,但你也許還沒有聽說過。
DEVDFS大體上是一個允許動態變化的設備文件系統。例如,如果你接入了一個USB鍵盤,它將 『魔術般地』加入到/dev文件夾。
在日志文件系統方面,4.4穩定版提供了『soft updates』特性。
盡管在技術上它也許不能算做是日志文件系統,但它可以做得比你對日志文件系統的要求更好。

1998-1999年.com爆炸中,Linux是真正的關鍵詞。
所有地方的電腦用戶都聽說了一種*免費*的,正在服務器領域和桌面領域挑戰 Microsoft地位的操作系統。
即使在今天,Linux的忠實用戶仍然在增加。但是,很多人只是剛剛聽說FreeBSD。
希望這篇文章能夠幫助你對 FreeBSD有一個初步的了解,並且把它作為滿足你的需求的一種選擇。
在最後我想說的時,既然它們都是免費的,為什麼不都試一試,看看誰更滿足你的需要呢?

沒有留言:

搜尋此網誌

本站大事記

這個部落格(網站)內容以分享LINUX和延伸出的技術文章為主!
特別是為了工作和進修需要,搜集了不少網站連結。
希望對來這裡觀文的朋友們,有提供一些有用的資訊或文章。
但這裡的文章中,也包含個人的心情扎記和隨興言談……
若是當中沒有對上你的口味,請多包涵!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!
--原序文--
就是當LINUX遇上CISCO啦!他們的結合還能作什麼事…不就是讓這個世界的網路,串…串起來啊…不然你們那能上這網站看部落格!