歡迎您光臨本站 註冊首頁

Free BSD,Linux之比較

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  1. Linux
優點: 充分發揮 PC 的功能,花樣極多,玩起來很有趣,各方面的表現都不錯。
缺點: 太過自由,以致於發散掉了,維護方面比 FreeBSD 麻煩(對一般人來說)。
-> 適合喜歡「玩 PC」,更甚於「玩 UNIX(Network)」的人。

2. FreeBSD
優點: 非常 UNIX、非常 Free、非常 BSD -- UNIX 的理想歸宿!!
缺點: 太過 UNIX,以致於玩下去很難收手 ^^;;
-> 適合喜歡 UNIX,有心好好經營 service 的人;也是 programmer 的理想 OS。

FreeBSD Core Team 並不是刻意忽略「入門的方便性」,只是人力有限,把主力投注
在「UNIX 風味的主題」上。

FreeBSD 對硬體的需求實在也不會太嚴刻,對剛接觸的人,建議使用「最一般化」的
硬體,像是: IDE (BigFoot)、ne2000 compatible 雜牌卡,S3Trito64,最爛的14寸
VGA,(atapi-cdrom)。

想說明的是,希望對 FreeBSD 有興趣的人,別買些「太高檔(或者說奇怪:p)」的硬體,
到時候裝不起來就罵 FreeBSD 怎麽這麽爛 ^^;;

可以想一下,到底想試試自己的PC能跑多少東西,還是真的有心進入 UNIX 的世界 :-)

=== 為什麽要選擇 FreeBSD ?! ===

嗯...現在有許多免費的 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 的手中,這就是 NetBSD 在筆者眼中無法興盛的原因。而沒有
core team(如 Linux),好處是全世界每個人都可以發表自己的修正(patch)
不須經由 core team 的審核,但缺點是 source code 雜亂無章且可能會
不同步。所以 Linux 在更新東東的時候,必須由使用者自己注意 kernel、
gcc、library、net-tool、modules、甚至各種 kernel patch 版本的一致性。
(或許在 RetHat Linux 已經稍微好一點了)
而這些可憐的情形在 FreeBSD 身上都不會發生。

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

1. 穩定性
一個作業系統最重要的就是穩定性,比方說能連續開機多久,能忍受
多少系統負荷,網路不穩時會不會當掉,網路負荷太大時網路會不會
死掉,筆者個人覺得 FreeBSD > Linux。
尤其許多研究已經提出,Linux 在高系統負荷下的表現相當不好,而
FreeBSD 卻不會。
要知道世界上最大的 ftp site - wcarchive.cdrom.com 是一台跑著
FreeBSD 的 Pentium pro 機器 (P6-150,512MB RAM,72GB HDs online
more than 1200 ftp users allowed)

注 : wcarchive.cdrom.com = ftp.cdrom.com
2. 網路
爭奪封包(packet)的速度,除了網路卡好壞之外,最重要的還是作業系統跟
驅動程式,使用一樣的網路卡 FreeBSD > Linux >>> DOS+NCSA. 而且
FreeBSD 在 RPC 及 NFS 上都比 Linux 來的穩定及快速。畢竟 BSD 在網路
這方面是始祖.

3. 移植軟體的難易程度
現今一般的軟體大多是為 BSD 寫的,所以一般軟體在 BSD 上會比在
SYSV 上容易編譯。而 FreeBSD 是 4.4BSD based,Linux 是 SYSV 加
上 BSD-extension,所以在 Linux 上編譯東西有時是個夢靨 (不是很
SYSV 也不是很 Posix 也不是很 BSD)。不過現在越來越多的軟體會注
意到 Linux,因為 Linux 使用者太多了。
FreeBSD 有收集數百種軟體的 ports,只要打個 make 就可以輕鬆編譯,
不然也有編譯好的 binary 可以直接安裝使用。

4. 硬體支援
Linux 支援最多種的硬體,NetBSD 最少,而 FreeBSD 夾在中間正急起
直追中,而且許多 FreeBSD 的 driver 都寫的相當棒,反而後來被
移植到 NetBSD 跟 Linux。

5. Merged VM/buffer cache
Linux 的磁碟 I/O 速度是一流的,因為一來 Linux 的 ext2fs 是
async-mount 的,寫入資料時不須一直更新 meta-data,最主要還是
Linux 會把目前沒用到的記憶體盡量拿來做 I/O buffer。一般傳統
BSD(如 SunOS,NetBSD)都只有固定大小的 buffer,而 FreeBSD 自己
發展出類似 Linux 的 Merged VM/buffer cache,大大提高了 I/O
時的效率以及記憶體利用率,而且現在 FreeBSD 已支援 async-mount,
使得 FreeBSD 的檔案系統已經跟 Linux 不相上下,甚至更勝一籌。

6. tty 限制
現在 Linux 要用超過 64 個 tty 除了必須更改應用程式的原始程式碼,
還必須做 kernel patch,而 FreeBSD 內定支援 tty[pqrsPQRS][0-9a-v]
總共 256 個 tty,只要到 /dev 下用 MAKEDEV 把 tty 建出來,在
/etc/ttys 加入新的 tty 設定,再到 kernel config file 中把 pty
的數目打入 256 就好了,要使用超過 256 tty 也相當容易修改。

7. 完整原始程式碼取得
一般人使用的 Slackware 版 Linux 是由 Slackware 公司整理,所
以一般人要取得完整原始程式碼必須自己東抓西抓,這也是 Linux 在
NCTUCCCA 的 mirror 量這麽大的緣故。但往往 Linux 使用者找不到
自己須要的原始程式碼,如果沒有那些整理 Linux packages 的公司,
以及幫忙 Linux 發展系統工具及函式庫的人,Linux 充其量算是只有
Linus 寫的 kernel 而已,不過最大的問題還是各家寫出來的東東
一致性的問題。不過新出來的 RedHat 已經提供一個簡單的軟體同步
與更新的方法 - RPM,也算是稍微抒解這一類問題的嚴重性。
而 FreeBSD 提供完整的系統原始程式碼,從 /bin /sbin /usr/bin
/usr/sbin /usr/lib ... 甚至 /etc /usr/share/FAQ 都在裡面,
讓你可以很容易的更改自己想要的東東,要更新系統時也可以抓取
最新的 source 打個 make world 就成了 (當然也可以用 core team
做好的 binary),它甚至會自動檢查各目錄的許可權是否正確。
簡單一句,就是非常的有組織! 利用 binary 來升級只要不到一小時
就可以完成,甚至有寫好的 script 可以使用。

8. 目錄檔案組織化
FreeBSD 根據 4.4BSD 規範,什麽檔案應該在那裡,應該是什麽許可權,
編譯時應該連結(link)成 static 或 dynamic,都非常的嚴謹,該有的
manpages 絕對不會少。不像 Linux,寫 kernel 一個人、寫 library
另一個,寫 manpages 又另一個、整理 utility 又另一個,各自為政
不同步,常常檔案到處亂放或是重覆,manpages 不完整,許多目錄檔案
為了新舊版本的相容性而 link 來 link 去。

9. 系統安全
FreeBSD 使用 shadow password,支援 secure NFS,不像 Linux 要
自己安裝 shadow password,將來編譯 ftpd,sudo 時又得改來改去。
因為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 漏洞,就會立刻更新程式碼,已達到最佳的
系統安全。

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

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

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

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

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

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

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

15. Interleaved swap
當你有一個以上的 swap 裝置時,會同時使用以增加速度 (尤其是使用
SCSI 裝置時),而不是像 Linux 一個接著一個使用。

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

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

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

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

20. 有組織的原始程式碼
FreeBSD 的程式開發者在撰寫程式碼的時候,會去參考各種 RFC 規範以及
新的理論文獻,因此 FreeBSD 的程式碼有條不紊、層次鮮明;反觀 Linux
常常為了急就章而走捷徑寫出來的東西,到最後開發新功能時又必須改來
改去。

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

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

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

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

但是,Linux 的優點是『好玩』,而且隨著 kernel 日漸更新,很多東西也
越來越穩定。我們繫上從兩年前開始就用 Linux 當 mail, acounts, ftp, gopher,
terminal, ppp, slip, BBS servers, 最近又加入 WWW server,服務幾百位師生。
目前繫上已經有好幾台 Linux PC 一起運作,其中包含 NFS,與 WinNT,Win95
的連線與資源共享(by SAMBA packages),我們也在測試用其中一台摹擬 Novell Server.

我們的同時上線人數一般不會超過 100 人,用 Linux 來應付綽綽有餘。如果你想開
的是一次幾百人上線的 BBS 大站,那可能 FreeBSD 會比較適合。不過話說
回來,能開這種大站的單位都很有錢,大都拿 SUN 或其他 workstation 級的來 run。

Linux 另一個優點是全球的 Linux users 遠超過 FreeBSD,這使得 Linux 上面
新的軟體跟硬體 drivers 更新數目及速度遠超過 FreeBSD。例如,DOSEMU 可以
摹擬 DOS,WINE 可以摹擬 Windows 3.1,smbfs 可以將 Win95 或 WinNT 上的
partition 拿來用:這些在 FreeBSD 上面都還在發展中,甚至沒有。新電腦
硬體 drivers 的更新也是如此,幾乎任何新的硬體都會有 Linux 迷很快地幫大家
寫好 drivers。你如果用過 FreeBSD 跟 Linux,你就會發現 FreeBSD 目前對
硬體要求仍然比較『嚴格』(其實是還沒有人寫 drivers)。我用的 scanner,
還有 voice modem,都已經有 Linux 迷寫好程式,讓我可以在 Linux 上
scan 以及有語音信箱。

我個人的建議是,如果你是個人使用,或者網路同時上線人數不超過一百人以上,
Linux 的確是好玩又實用,而且新的硬體很快地幾乎都可以在 Linux 上使用。
如果你要架的是幾百人上站的機器,又沒錢買 workstation,那 FreeBSD 在
網路壅塞時的 performance 的確不錯。如果是個人要『玩』,我並不建議
FreeBSD,那會使你覺得提不起興緻(純屬個人觀點)。

在 csie gopher 中有關 Linux 與 FreeBSD 的比較中,有一項是 FreeBSD 上
software porting 比較 easy。但是這個 comment 隨著 Linux users 群日漸龐大,
我覺得已經有些改變:現在在 Linux 很多東西根本用不著 porting,因為很多
軟體根本就是 Linux fans 專門為 Linux 設計寫出來的,反而要用這些東西
需要額外費心去修改以便能在 FreeBSD 上使用。DOSEMU,smbfs 即是其中幾個
例子。據最近的 newsgroups,FreeBSD core team 有五十多人,但是 Linux
fans 散布在全球各地的 programmers 其數量根本無法計算。有心的話,
比較一下 Linux 跟 FreeBSD announce newsgroups 就可知一二。

所以,我並不是很贊同一個 UNIX 的新手去玩 FreeBSD。但是,假如有人已經
玩過 Linux ,或者在其他工作站級機器有過簡單管理經驗,那他們會發現
FreeBSD 極易入手。玩過 FreeBSD 的人一定知道光要新增 partitions
就已經是一件麻煩的事。堂堂一個 FreeBSD 的 fdisk 介面連 M$DOS 的都不如,
可見 FreeBSD core team 之目標不在一般連 ls, cp, tar 都不懂的 newbie。
另外一個動機是假如你必須要架一台超穩定的 Internet server,那 FreeBSD
是目前的 best choice。

其實呢,如果有心要玩,大可弄個大點的硬碟,同時裝上兩個系統,一定
可以如魚得水。我的 office 中同時有一台 FreeBSD,一台 Linux,各做各的事,
也是很快樂。。。。

就目前使用者能觀察到的來看, 一般相信 linux 的
data-path-consumed process 的執行速度, 是眾多
x86 作業系統中最快的; 而 high load 下的網路則
令人不能感到非常滿意. 雖然 linux 第二版後網路
部分有了很大的改善, 據 Linus 本人的說法, linux
在傳 single package 已比 FreeBSD 還優勝, 但作
為 NFS 或 high load netserver 還是顯得略有不順
(所謂 "不順" 與 "不穩" 無關).
畢竟, 考查 linux 的發展歷史, 的確是先在 x86-embeded
scheduler, fs, 等核心 process 執行部分, 最後才
加進網路部分, process 執行最佳而網路稍遜乃是合理
的結果.

一般建議如果機器用來執行程式 (如跑 project) 為主,
跑各式怪模怪樣的小程式及 server, 或有非正統硬體者
使用 linux 可能較佳.


[火星人 ] Free BSD,Linux之比較已經有331次圍觀

http://coctec.com/docs/unix/show-post-73947.html