◇ 為什麼要選擇 FreeBSD ?! (by jdli)

李 建 達 (Jian-Da Li) 交 大 資 工
E-Mail : <jdli@csie.nctu.edu.tw>
http://www.csie.nctu.edu.tw/~jdli

嗯...現在有許多免費的 i386 UNIX (在 386 以上 PC 執行的 UNIX),例如
Linux、NetBSD、FreeBSD、OpenBSD、386BSD 等,究竟你要如何選擇屬於你的
UNIX ?

玩了三年多的 UNIX (一年半 Linux,兩個月 NetBSD,兩年 FreeBSD)
筆者只能以非正式的說法說說筆者的個人意見,希望這些意見不要引起爭論
各個作業系統優缺點的大戰。

Linux 是容易上手而且好玩的作業系統,也是現今最多人玩的,正因
為它太好裝了,只要硬體沒問題閉著眼睛都裝的起來,因此
如果你是 i386 UNIX 的新手,這可說是你入門的最佳試金石。

NetBSD 支援 13 種硬體架構,這也是它的強處,算是 multi-platform
的典範。 也因此,i386 在裡面只算是 13 種中的一種,自然無法
取得全力的發展,再加上其 core team 比較不活躍,所以在
i386 上的硬體支援並不是很好。

OpenBSD 源自 NetBSD,剛出來半年左右,專門把 NetBSD 跟 FreeBSD 的
新功能跟修正加在一起,算是 NetBSD+FreeBSD 的混血兒,由於
其 core team 人數少,加上程式碼很少是自己開發的,因此現在
前景還不明朗。

FreeBSD 跟 NetBSD 一樣都是基於 4.4 BSD-lite,但是 FreeBSD 現在只
支援 i386,所以在 PC 上來說要比 NetBSD/OpenBSD 好太多了,
在從前 NetBSD 跟 FreeBSD 的 core team 是一起的,後來分家了。
FreeBSD 具有一般 BSD 系統的穩定,又從其他作業系統學習了許
多優點,再加上自己開發的各種新功能,時時改進演算法以增加
執行效率,現在已是免費 BSD 系列中效率最好的,最主要是因為
core team 活躍又樂於接受使用者的意見並改進。

* 什麼是 core team ?

core team 是一個專門對原始程式碼做發展跟維護的組織,Linux 沒有
core team,NetBSD/OpenBSD/FreeBSD 有。有 core team 的優點是
原始程式碼會有一致性,會有組織的被更新,但是整個 OS 的活力也操在
core team 的手中。

* 要選擇怎樣的 OS 必須看你自己的需求及能力,還有周遭玩的人多不多,
多裝幾種,多裝幾次,自己感覺一下才是真的 !
(其實只要不怕 format 硬碟,吃飽撐著,裝什麼東西、裝幾次都好說嘛)

以下就筆者個人愚昧的觀點做一些基本比較 :

1. 穩定性
一個作業系統最重要的就是穩定性,比方說能連續開機多久,能忍受
多少系統負荷,網路不穩時會不會當掉,網路負荷太大時網路會不會
死掉,而 FreeBSD 的穩定性是相當優秀的。
要知道世界上最大的 ftp site - wcarchive.cdrom.com 是一台跑著
FreeBSD 的 Pentium pro 機器 (P6-200,1GB RAM,174GB HDs online
more than 2000 ftp users allowed)

註 : wcarchive.cdrom.com = ftp.cdrom.com

2. 網路
爭奪封包(packet)的速度,除了網路卡好壞之外,最重要的還是作業系統跟
驅動程式,FreeBSD 在網路方面的效率以及穩定性是相當好的,畢竟 BSD
在網路這方面是始祖.

3. 移植軟體的難易程度
現今一般的軟體大多是為 BSD 寫的,所以一般軟體在 BSD 上會比在
SYSV 上容易編譯,而 FreeBSD 是 4.4BSD based,再加上 FreeBSD 有
收集數百種軟體的 ports,只要打個 make 就可以輕鬆編譯,不然也有
編譯好的 binary 可以直接安裝使用。

4. Merged VM/buffer cache
一般傳統BSD(如 SunOS,NetBSD)都只有固定大小的 buffer,而 FreeBSD
自己發展出 Merged VM/buffer cache,大大提高了 I/O 時的效率以及
記憶體利用率,再加上現在 FreeBSD 已支援 async-mount,使得 FreeBSD
的檔案系統效率已經相當好了。

5. tty 限制
FreeBSD 內定支援 tty[pqrsPQRS][0-9a-v] 總共 256 個 tty,只要到
/dev 下用 MAKEDEV 把 tty 建出來,在 /etc/ttys 加入新的 tty 設定,
再到 kernel config file 中把 pty 的數目打入 256 就好了,要使用
超過 256 tty 也相當容易修改。

6. 完整原始程式碼取得
FreeBSD 提供完整的系統原始程式碼,從 /bin /sbin /usr/bin
/usr/sbin /usr/lib ... 甚至 /etc /usr/share/FAQ 都在裡面,
讓你可以很容易的更改自己想要的東東,要更新系統時也可以抓取
最新的 source 打個 make world 就成了 (當然也可以用 core team
做好的 binary),它甚至會自動檢查各目錄的權限是否正確。
簡單一句,就是非常的有組織! 利用 binary 來升級只要不到一小時
就可以完成,甚至有寫好的 script 可以使用。

7. 目錄檔案組織化
FreeBSD 根據 4.4BSD 規範,什麼檔案應該在那裡,應該是什麼權限,
編譯時應該連結(link)成 static 或 dynamic,都非常的嚴謹,該有的
manpages 絕對不會少。

8. 系統安全
FreeBSD 使用 shadow password,支援 secure NFS。在編碼系統方面,
因為 USA 版的 DES 禁止輸出到美加以外地區,FreeBSD 為了全世界廣大
的使用者,在密碼系統上內定使用 MD5 編碼,它比 DES 來的安全,如果
你不跟 SunOS 類的 YP server 跑 NIS,那你是不須要安裝 DES 的。如果
你要使用 DES,你可以安裝可以自由流動的 DES 版本 (非 USA 版),在
/usr/share/FAQ/Text/FreeBSD.FAQ 中有提及那裡可以取得,或是到臺灣
任何一個 FTP 站取得。
此外,FreeBSD 的使用者登入控制,以及檔案安全層級保護都比其他
作業系統來的好 (kernel secure level)。
FreeBSD 的 core team 會注意 source code 跟 security 的同步性,
一有新的問題或 sendmail 漏洞,就會立刻更新程式碼,已達到最佳的
系統安全。

9. core team 活躍
FreeBSD 的 core team 非常活躍而且謙虛,帶動整個 FreeBSD 迅速
發展,每天都有新的 patch 出來,讓使用者以 sup/ctm 來定時自動
更新原始程式碼。

10. 4.4BSD-lite based
由於 FreeBSD 是基於 4.4BSD-lite 的,因此帶來了許多 BSD 的好處,
像網路速度穩定、容易移植軟體、安全快速等。

11. 從 Linux 而來的優點
FreeBSD 正在把 Linux 的 dosemu 移植過來,甚至可以直接執行 linux
的 binary (linux emulator),還有移植 Linux 支援的一些驅動程式。

12. 支援 LKM
FreeBSD 支援 Loadable kernel module,也就是說許多驅動程式
在編譯 kernel 時可以不必做進去,一旦你要用到時,kernel 會自動
從 /lkm/*.o 載入該 driver,這樣可以提高彈性並減小 kernel 使用的
記憶體空間。未來 FreeBSD 會朝向 LKM device 邁進,就像 Solaris
一樣不需編譯 kernel。 :)

13. 直接執行 gzip 的程式
FreeBSD 可以直接執行 gzip 的程式,如果你把所有的執行檔都 gzip
起來,不就等於用 stacker/doublespace 一樣了 ?! :)

14. 線上監控
kernel 支援 tty snoop,可以監控線上使用者 (不像 linux 那個半調子
ttysnoop,會導致許多問題)。

15. 眾多檔案系統
支援 MFS (Memory File System),類似 SunOS tmpfs 的東東,還有
許多 4.4BSD 定義的檔案系統,如 LFS、NULLFS、PORTALFS、UMAPFS
、UNIONFS。

16. Interleaved swap
當你有一個以上的 swap 裝置時,會同時使用以增加速度 (尤其是使用
SCSI 裝置時)。

17. 新的 slice 觀念
新的 slice 觀念使得 FreeBSD 對其他 OS 的 partition 相容性比
傳統的 BSD 好很多,在安裝上也較為容易。

18. Binary 相容性
FreeBSD 可以執行 NetBSD-static,BSDI-static,Linux-a.out/elf,
SCO-static 等等的 binary code,增加不少相容性。

19. ccd (軟體 RAID)
FreeBSD 的 Concatenated disk (ccd) 驅動程式能讓你擁有 Strip、
Mirror,甚至 Parity 等 RAID card 才有的功能。

20. 多國語言的支援
FreeBSD 的 localization 是所有免費作業系統中做的最好的,甚至已經
有了亞洲語系(中文、日文)的安裝介面。

21. 有組織的原始程式碼
FreeBSD 的程式開發者在撰寫程式碼的時候,會去參考各種 RFC 規範以及
新的理論文獻,因此 FreeBSD 的程式碼有條不紊、層次鮮明。

不過隨著時間的發展,Linux、*BSD 都會進步,對於免費的作業系統能
越來越好自然是樂見其成的。

一般而言,如果你須要一台穩定快速的 Internet Server,FreeBSD 是你絕對
的選擇;如果你是個人使用或只是想學習 UNIX,Linux 跟 FreeBSD 都是很好
的試金石。

Linux 浮上台面已經四年了,而 FreeBSD 以短短的兩年時間就擁有了眾多的
使用者人口 (尤其是伺服器,以及程式開發者),高手的選擇必有他的道理。

用過 FreeBSD 才知道,『PC 不只是很便宜的工作站』 :)

李 建 達 (Jian-Da Li) 交 大 資 工
E-Mail : <jdli@csie.nctu.edu.tw>
http://www.csie.nctu.edu.tw/~jdli
arrow
arrow
    全站熱搜

    bluenature0904 發表在 痞客邦 留言(0) 人氣()