2009年5月25日 星期一

史上最牛病毒── 隨身碟病毒KAVO[轉貼]

http://blog.eraysecure.com.tw/55b.aspx?toppage=2

USB病毒讓許多使用者和MIS頭痛不已,因為它防不勝防,殺了又中、中了再殺,無止盡的變種病毒更讓防毒軟體防不勝防。

許多人認為抓不到病毒是防毒軟體的原罪,於是尋求其他的解決方案。但在道聽途說之下,這些方法真的有效嗎?本文將帶你深入了解USB病毒的危害、手法及防禦之道。

去年,USB病毒的主要目的是竊取線上遊戲的帳號和密碼,針對其目的而言,如果使用者本身沒有玩線上遊戲,這些病毒並不會帶來多大的損失,頂多只是看不到系統的隱藏檔,系統效能被拖慢一些。但在病毒持續變種之下,除了竊取帳號密碼,還會破壞網路裝置(網路中斷)、無法進入安全模式、停用防毒軟體、無法執行某些程式…。當到這個階段,使用者才會感到麻煩大了。

在病毒感染的初期,使用者大多不知情,因為他們只是插入USB隨身碟存取資料。防毒軟體更新後,順利的偵測出病毒,一切又恢復正常。可惜好景不常,病毒作者一直改寫新的病毒,演化出破壞力更強大的病毒。加上它變種的速度比病毒碼更新的速度更快。當你更新完防毒軟體,可以偵測到病毒時,又有新的變種出現。

我們整理一下,當電腦遭受USB病毒感染後,可能會出現以下症狀:

‧網路裝置元件故障:導致無法上網及更新病毒特徵碼

‧破壞作業系統:導致程式執行發生錯誤、系統當機(BSOD)、系統日期錯誤

‧破壞防毒軟體:導致防毒軟體無法運作,或部份元件無法執行

‧解毒後可能無法直接開啟磁碟機,系統會詢問要以何種應用程式來開啟。或是出現程式執行錯誤的提示訊息。

如果發現電腦有上述症狀,建議立即中斷網路連線(拔除網路線),在確認安全之前,絕對不要使用此電腦登入帳號及密碼,以免被竊取。並且在解毒之後,立即變更密碼。

病毒的感染過程

預設下,當電腦偵測到USB裝置時,Windows系統會自動尋找並執行autorun.inf,進而執行其他應用程式。而病毒也就是利用這個特性來感染。

從2006年開始,USB病毒的原型就已經現身,它使用的技術簡單、破壞力也不大,並沒有引起太大的討論。

二年時間過去,它已經不再只是使用單一技術與手法,而是混合多種技術來保護自己不被發現和清除,例如看門狗、自動隱藏、自動更新、社交工程…等。而感染管道也不僅只是USB裝置,它可以透過多種管道來危害你得電腦安全,例如網路磁碟、電子郵件附件檔或檔案。

為了讓使用者更了解USB病毒的感染和擴散方式,以下是我們針對USB病毒(Trojan-GameThief.Win32.OnLineGames.saro、Trojan-GameThief.Win32.Magania.ypk、Trojan-GameThief.Win32.OnLineGames.arvf)進行的分析:

第1階段:木馬程式開始執行

1.在%tmep%資料夾產生DLL格式的木馬程式。

2.替換系統驅動程式檔案vga.sys,造成防毒軟體元件損毀,無法進入安全模式。

3.產生隱藏屬性的檔案,例如:

%windir%\system32\kxvo.exe

%windir%\system32\kxvoX.dll(X為累加數)

4.kxvoX.dll插入explorer.exe執行程序,並持續惡意行為。

第2階段:IExplorer.exe自動下載惡意軟體
1.IExplorer.exe自動下載木馬程式ff.exe至 %temp% 下,此惡意軟體經常變種,名稱為Trojan-GameThief.Win32.OnLineGames.xxxx。
2.IExplorer.exe會持續在 %temp% 路徑刪除與建立ff.exe。

第3階段:ff.exe自動執行
1.ff.exe執行後會破壞防毒軟體,或造成某些元件無法運作。
2.替換系統驅動程式檔案tdi.sys。遭替換的tdi.sys檔案會造成網路裝置無法使用,在撥接上網時出現錯誤代碼769。
3.產生隱藏屬性的檔案,例如:
%windir%\system32\j3ewro.exe(Trojan.Win32.Vaklik.xxx)
%windir%\system32\jwedsfdo0.dll(Trojan-GameThief.win32.OnLineGames.xxxx)
4.新增登錄檔,以便在登入系統後自動執行惡意軟體。
5.當jwedsfdo0.dll插入explorer.exe執行程序後,由jwedsfdo0.dll持續惡意行為,ff.exe即停止運作。

第4階段:IExplorer.exe自動下載惡意軟體
1.IExplorer.exe自動下載木馬程式cc.exe至 %temp% 路徑,此惡意軟體經常變種,名稱為Trojan-GameThief.Win32.OnLineGames.xxxx。
2. IExplorer.exe會持續在 %temp% 路徑刪除與建立cc.exe。

第5階段:惡意軟體藉由explorer.exe執行程序進行惡意攻擊
1.刪除 %temp% 路徑下ff.exe惡意軟體。
2.持續修改登錄檔,藉以隱藏惡意檔案。
3.新增登錄檔:當使用者透過「我的電腦」開啟任何磁碟區(包含隨身儲存裝置)時,就會觸發惡意軟體執行。
4.持續在磁碟根目錄刪除與建立autorun.inf及39ysi89.com。

第6階段:cc.exe自動執行
1.如同ff.exe,cc.exe會下載tdi.sys並置換。
2. 產生隱藏屬性的檔案,例如:
%windir%\system32\kxvo.exe (Trojan-GameThief.win32.Magania.xxx)
%windir%\system32\kxvoX.dll (Trojan-GameThief.win32.Magania.xxx)
3.新增登錄檔,以便在登入系統後自動執行惡意軟體。
4.當kxvoX.dll插入explorer.exe執行程序後,由kxvoX.dll持續惡意行為,cc.exe即停止運作。 第7階段:惡意軟體會在開機時自動啟動及更新

解毒的迷思

由於病毒持續的變種(透過網路下載新的變種病毒),防毒軟體需要持續更新資料庫,才能偵測出最新的病毒。但是在樣本回報和病毒碼釋出前的空窗期,防毒軟體並無法偵測新的變種。加上它能中斷網路(無法更新)和破壞防毒軟體(無法掃毒),所以坊間出現不少專殺工具和「民俗療法」。

如果正常的醫療管道沒有效果,中國人習慣採用民俗療法。對抗USB病毒的狀況也很類似。新變種、看法狗、停用防毒…等病毒手法,讓使用者不堪其擾,我們收集了網路上流傳的各種治療偏方,請參考下表:

網路偏方
效果
說明

建立Autorun.inf資料夾
停用Autorun功能
部份有效
可以暫緩病毒發作。新的變種病毒會先刪除舊有的Autorun.inf資料夾或檔案,或是自行啟動Autorun功能。
建議移除該資料夾安全性頁籤中的所有使用者及群組,才能防止被竄改。

按住 Shift 鍵開啟隨身碟
無效
只能關閉Autoplay,無法關閉Autorun。

在隨身碟上按右鍵開啟檔案總管
部份有效
透過「我的電腦」去點選,仍會遭感染。若正確地透過「檔案總管」來開啟,則不會感染。

啟用隨身碟的唯讀功能
無效
若是隨身碟已感染病毒,只要能執行,就可以感染作業系統。

軟體限制原則
部份有效
能阻止病毒從USB裝置擴散,但無法防範從網路磁碟或郵件附件檔執行。

禁用USB裝置
部份有效
能阻止病毒從USB裝置擴散,但無法防範從網路磁碟或郵件附件檔執行。

USB病毒專殺工具
短期有效
若未定期更新,只能清除舊病毒。而且工具來源不一定安全。

正規療法
效果
說明

一般防毒軟體
部份有效
只能偵測已知病毒。

啟發式分析
部份有效
能偵測部份未知病毒,需持續更新規則才能偵測新變種。

HIPS防護軟體
部份有效
需設定正確的規則,才能夠防止病毒執行,設定上較複雜。

KIS 2009
有效
具備防毒、啟發式分析及HIPS功能,可有效防護USB病毒。

從上表來看,一些網路偏方根本沒有效果,另一些則只能治標無法治本,即使「禁用USB裝置」,仍然會感染病毒。USB病毒專殺工具的優點是能夠很快速解毒,但效用並不長,大概只有2週的生命周期,病毒作者就會更改新的檔案名稱,或利用其他手法。

目前比較可行的防禦方式是使用HIPS,在病毒執行時就加以阻擋,但對一般使用者而言,設定上比較繁鎖。而內建HIPS功能的KIS 2009,則是由系統自動將程式分類,建立專屬的存取規則,可以很方便快速的就擋下USB病毒。

利用社群力量來收集樣本

你也許會問,為什麼防毒軟體無法提供有效的防護呢?

其實答案很簡單。防毒軟體屬於被動防護,必須要有病毒特徵碼,才能偵測與解毒。當病毒樣本未被分析之前,防毒軟體就無法偵測。加上病毒都是小區域暴發(之前是全球大規則暴發,較易收集樣本),根據卡巴斯基實驗室的統計,與台灣相比,中國就較少出現這類型的病毒。

防毒軟體能否解毒的關鍵因素為,是否已經病毒樣本,並將病毒特徵碼(包含偵測及解毒方式)加入病毒資料庫中。為了有效解決USB病毒(KAVO),並且快速收集未知病毒的樣本,奕瑞科技提供USB病毒的解毒與樣本收集工具-NGS(New GetSample),希望透過社群的力量,一同對抗惡意軟體。

使用者只要點選此工具,即可刪除已知的惡意物件,並將可疑物件壓縮加密,請將桌面上的VirusSample.rar寄回奕瑞科技客服信箱:techsupport@kaspersky.com.tw 。
提醒您,在執行工具前請先備份重要資料,並關閉所有正在執行的程式。

奕瑞科技提供的NGS工具,將會檢查系統狀態,並執行下列動作:

步驟1、檢查系統開機模式,並提示進入安全模式
在安全模式下,只會載入必要的程式和服務,可避開「看門狗」,並能直接刪除檔案。建議在安全模式下進行解毒工作。

步驟2、清除電腦中IFEO資料

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

步驟3、清除惡意物件
依照清單的內容,清除已知的惡意物件。在清除物件前需停止某些程序:
1.停止電腦中的處理程序[StopProcess]
2.停止並刪除系統服務[DelService]
3.停止並刪除系統驅動[DelDrivers]
4.刪除特定登錄檔[DelRegValue]
5.收集特定檔案並且刪除之[DelSpecFiles]

步驟4、檢查磁碟機根目錄是否有Autorun.inf,及附屬其中的執行檔
若偵測到Autorun.inf及其附屬的執行檔,均會加以刪除。

步驟5、修正顯示隱藏檔的登錄檔
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL
"CheckedValue"=dword:00000001

步驟6、重設hosts檔案為預設值
127.0.0.1 localhost

步驟7、呼叫卡巴斯基防毒軟體掃描啟動物件

步驟8、確認是否重新啟動電腦

NGS的處理過程會記錄在使用者桌面的gvslog.txt檔案中,可疑樣本會壓縮加密為VirusSample.rar,而卡巴斯基防毒軟體的掃瞄記錄即儲存在autoscan.log。建議在重新啟動電腦後,立即執行完整掃瞄。
未來,隨著雲端運算的發展,樣本的收集和分析速度將會越來越多。透過Kaspersky Security Network服務,卡巴斯基的產品將能更快速的識別新威脅,並減少針對新安全風險所花費的時間。該服務收集選定的安全和應用程式資料,將它們上傳到卡巴斯基實驗室進行分析,以便確定新的威脅和它們的來源,並協助提高使用者的安全性和產品功能。

預防勝於治療

預防感冒的最佳方法是均衡飲食、時常運動、注意衛生;預防中毒的最佳方式,則有以下幾點:
1.不要因為一時的好奇心,而任意開啟或執行來路不明的檔案。
2.在開啟檔案之前,建議先以防毒軟體進行掃瞄。
3.定期更新防毒軟體、並執行完整掃瞄。
4.選擇具備主機型入侵防禦系統(HIPS)的安全防護軟體。

2009年5月21日 星期四

考試規定修正[轉貼舊文]

轉貼本文用意在於提醒自己別忘了有考OCP這個目標!
老婆生產在即,前年又理財失利,很多考試計畫,一延再延。
這篇考試規定修正,SYSTEX早發給我許久,只是没錢也没時間再去攻讀。
但還是要當成一項目標去嘗試看看!




{現行規定}至2008/11/30止
OCA(Oracle Certified Associate)是Oracle認證的入門階級,欲取得Oracle10g OCA認證必須通過一科考試(1Z0-042);欲取得進階的Oracle10g OCP(Oracle Certified Professional)認證,必須先取得Oracle10g OCA認證,以及至少參加過一門由講師教授的課堂訓練課程或OLN線上講師訓練課程,並通過OCP一科考試(1Z0-043)才能擁有OCP認證。
{新規定} 2008/12/1起
根 據Oracle最新消息,自2008/12/1起,欲取得Oracle10g OCA認證必須加考一科考試(Oracle Database SQL Expert,1Z0-047);欲取得進階的OCP認證,必須先通過OCA認證的兩科考試(1Z0-042、1Z0-047),以及至少參加過一門由講 師教授的課堂訓練課程或OLN線上講師訓練課程,並通過OCP一科考試(1Z0-043)才能擁有OCP認證。


  • 只要您在2008/11/30前取得Oracle10g OCA、OCP認證,即可幫您省下加考一科10gSQL的考試與上課費用,大大降低了培訓和取得認證的成本,讓您用最短路徑、最少花費取得兩張認證,是投資報酬率最高的方式。
  • 為幫您早日達成目標,現在報名2008/10/31前由恆逸所開辦之10gAWI+10gAWII晚上或假日班,立即享有『Oracle 10g資料庫專家雙效優惠』,一次報名10gAWI + 10gAWII課程只要109,000元(原價126,000元,立即省下17,000元),再加價3,000元,再送兩科課後總複習與兩科會考考試(總價值9,900元),讓您一鼓作氣取得OCA、OCP兩張認證。 >> 更詳細Oracle 10g資料庫專家雙效優惠方案介紹
  • 只要您現在報名恆逸Oracle10g OCA、OCP認證課程,均可享有Oracle認證考試卷9折優惠(1Z0-042、1Z0-043),再幫您更精省預算快速取得認證,限量限期優惠。>>Oracle認證考試優惠說明
取得認證 培訓課程 (以每科原價63,000元計算) 考試科目
(以每科考試US$125計算)
取得認證所需
成本比較
現在取得
Oracle 10g OCA
認證
(10gAWI) Oracle 10g資料庫:資料庫管理實作–I =63,000元 (1Z0-042) =US$125,
約4,060元
{現在} 只需1門課程+1科考試 =67,060元
12/1後取得
Oracle 10g OCA
認證
(10gAWI) Oracle 10g資料庫:資料庫管理實作–I + (10gSQL) Oracle 10g資料庫:SQL入門=126,000元 (1Z0-042)+(1Z0-047) =US$250,
約8,120元
{12/1後} 2門課程+2科考試 =134,120元

現在取得
Oracle 10g OCP
認證
(10gAWI) Oracle 10g資料庫:資料庫管理實作–I + (10gAWII) Oracle 10g資料庫 :資料庫管理實作–II課程 =126,000元 (1Z0-042)+(1Z0-043) =US$250,
約8,120元
{現在} 只需2門課程+2科考試 =134,120元
(參加Oracle 10g資料庫專家雙效優惠,2門課程+2科考試+2科總複習,只要112,000元)
12/1後取得
Oracle 10g OCP
認證
(10gAWI) Oracle 10g資料庫:資料庫管理實作–I + (10gSQL) Oracle 10g資料庫:SQL入門+(10gAWII) Oracle 10g資料庫 :資料庫管理實作–II課程 =189,000元 (1Z0-042)+(1Z0-047)+(1Z0-043) =US$375,
約12,180元
{12/1後} 3門課程+3科考試 =201,180元

  我要索取資料,請與我連絡,所在地點是 台北 新竹 台中 台南 高雄
  姓  名: 公司名稱: 部門:
聯絡電話: - - 行動電話:
E - Mail
您專屬的服務專員 >>
  (如果您不清楚您的服務人員是誰,請選擇 "不知道" )       

 ●Oracle原廠授權教育訓練中心
 ●Oracle原廠授權認證課程 贯
 ●使用Oracle原廠授權教材
 ●全程由Oracle原廠認證講師教授
 ●Oracle 10g認證課程,限量開班,額滿為止
 ●可原地參加Oracle考試



課程洽詢電話:台北 02-25149191 分機100
       新竹 03-5723322 分機100
       台中 04-23297722 分機100
       高雄 07-2246222 分機100


台北恆逸- 台北市復興北路99號2樓 / 12樓 / 14樓 TEL:02-25149191 FAX:02-27182239
新竹恆逸- 新竹市光復路二段295號3樓 TEL:03-5723322 FAX:03-5745738
台中恆逸- 台中市中港路一段201號2樓
TEL:04-23297722
FAX:04-23102000
南台科技大學訓練點-台南縣永康市南台街1號(南台科技大學)S棟 TEL:06-3010083 FAX:07-2255777
高雄恆逸- 高雄市中正三路55號10樓 TEL:07-2246222 FAX:07-2255777
恆逸資訊教育訓練中心網址 http://edu.uuu.com.tw/

2009年5月18日 星期一

GB vs GiB

GB和GiB的差別:
GB是指GigaByte,而GiB是指gibibyte(giga binary byte)!
主要是GB應該是十進位制表示用字,而GiB才是真正二進位制的表示用字,兩者是有差異的。
通常一般使用者的認知,都是以十進位在換算KB,MB,GB!
但實際電腦對儲存資料的計算,是以二進位在換算,也就是所謂的KiB,MiB,GiB……
可是在實際生活上,這兩者並没有被刻意的區別用法,甚至常常混用。
於是這樣的單位使用混淆,造成了許多困擾!




舉個小故事來說。
當你買了一顆標示為120GB的硬碟回來,裝到電腦裡使用的結果,發現到系統的顯示卻是111.8GB!
原因在於因為硬碟標示的120GB是用1GB=10^3MB,1MB=10^3KB...(應該是廠商刻意誤用)
而系統真正卻是使用1GB=2^10MB,1MB=2^10KB...計算(^ = 次方)

差異的結果是新硬碟在電腦裡顯示可用的容量才:
120*1000*1000*1000/1024/1024/1024=111.8 byte

有没有虧大了受到欺騙的感覺呢?

所以請廠商正名,改用GiB來標示硬碟,隨身碟等儲存產品,別再讓消費者當冤大頭了啦!

[參考] http://zh.wikipedia.org/w/index.php?title=Gibibyte&variant=zh-tw

2009年5月15日 星期五

OpenSuSE增加workspace

OpenSuSE增加workspace

分類:技術交流
2009/05/15 09:39
使用LINUX的人都知道,LINUX的桌面X-window可以有多個工作區(Workspace)!
好處是我可以在一個工作區中開全螢幕的視窗去編輯一份文件,
再另外在另一個工作區中以全螢幕視窗去看瀏覽器。
然後在另一個工作區裡,以全螢幕去@#$%……

其實也没什麼,就只是多幾個工作區,好讓你開多個應用程式時,桌面比較好整理罷了。
我以往安裝LINUX,不管那一版本,安裝好都會有兩個或四個工作區可用!
也就是說,系統會自動把 Workspace Switcher 放在 Panel 上,讓你針酌利用。

但 OpenSuSE卻不會?真怪!
只給一個工作區,除非啓用3D特效,才有Cube立方體,並給出四個工作區。
怎麼會這樣?要是人家没有啓用3D特效,或是顯卡根本不能啓用,那不就没多工作區可用了。

上網查了很多文件,有提這個問題的人很少。
大家可能不在乎,無所謂。也可能是我太無知,少見多怪了吧。
不過,Any way,林北總算找到解決方法了。

官網有: http://en.opensuse.org/Configuring_graphics_cards/Dual_Head_Mode

我是用Gnome!
[作法] To add the pager/workspace feature, simply complete the following:

Gnome
* Right click the Panel
* Select Add to Panel...
* Select Workspace Switcher
* Click the Add button

然後再去點 Workspace Switcher 屬性,修改你要幾個工作區,搞定!
原來一點也不難,哈!



2009年5月14日 星期四

OpenSuSE 10.3 使用 VirtualBox 2.2 啓用 bridge network

環境:OpenSuSE 10.3 搭配 VirtualBox2.2 (主機是 HP Compaq dc7600)
主題:VirtualBox bridge network setting on one NIC (Hewlett-Packard Company NetXtreme BCM5752 Gigabit Ethernet PCI Express)
目的:只有一張網路卡,要達成主客兩端網路互通!在同一網段內。

+=========================================+

Host OS : OpenSuSE 10.3
user id : bullock
Host IP : 10.1.131.201/22 <- eth0 10.1.131.201/255.255.252.0
GateWay : 10.1.131.0
DNS :10.1.131.0, 168.95.1.1

Guest OS: OpenSuSE 10.3 or something else like Windows XP...
Guest IP: 10.1.131.202/22 <- eth0 10.1.131.201/255.255.252.0
Gateway and DNS : 比照 Host
(若有DHCP Server配合更佳!)

基本步驟:
1. Turn down interface 'eth0'.
# /sbin/ifconfig eth0 down

2. Set IP address of 'eth0' to 0.0.0.0 and with 'promisc' mode.
# /sbin/ifconfig eth0 0.0.0.0 promisc

3. Create bridge interface 'br0' and set IP address and netmask of 'br0'
to the value of IP address and netmask 'eth0' before we set it to 0.0.0.0.
3.1
再手動創造出bridge用的虚擬網路,並把原IP綁上!
# /sbin/brctl addbr br0
# /sbin/ifconfig br0 10.1.131.201 netmask 255.255.252.0
# /sbin/route add default gw 10.1.131.0

3.2
若要每次開機都自動生bridge相關的NIC
目前不建議作到這層次,因為開機就套用bridge network,並不必然。
除非虚擬機器也是正式提供服務的主機!

# vi /etc/sysconfig/network/ifcfg-eth0
[修改範例]
BOOTPROTO='static'
STARTMODE='ifplugd'
IFPLUGD_PRIORITY='1'
#IPADDR='10.1.131.201/22' <-註解掉不用
NAME='Hewlett-Packard Company NetXtreme BCM5752 Gigabit Ethernet PCI Express'
USERCONTROL='no'
LINK_OPTIONS='promisc on'


# vi /etc/sysconfig/network/ifcfg-br0
[修改範例]
BOOTPROTO='static'
STARTMODE='auto'
IPADDR='10.1.131.201/22'
NETMASK='255.255.252.0' #<-可略
NAME='bridge for vbox'
BRIDGE='yes'
BRIDGE_PORTS='eth0 tap0'
BRIDGE_FORWARDDELAY='0'

4. Add 'eth0' to 'br0'.
# /sbin/brctl addif br0 eth0
此步驟若是之前是以 3.2 方式啓動網卡,就不必執行了。
因為 ifcfg-br0 裡有定義了要把實體網卡 eth0 橋接上 br0 。

5. Create virtual network card 'tap0' with VBoxTunctl and add 'tap0' to bridge 'br0'.
# /usr/bin/VBoxTunctl -t tap0 -u bullock
# /sbin/brctl addif br0 tap0

6. Do not forget to set 'tap0' to 'promisc' mode too.
# /sbin/ifconfig tap0 promisc

7. Bring all interface up.
# /sbin/ifconfig tap0 up
# /sbin/ifconfig eth0 up
# /sbin/ifconfig br0 up

PS/若是要再有第二個以上的虚擬機器使用,而要再增加tap1,tap2 ……
請在 步驟5. 6. 7. 針酌加上tap1,tap2的啓用指令


[補遺]
有關防火牆問題排除!
在上述配置bridge network時,會先把防火牆關閉。
而在配置完之後,若是再啓用防火牆,會發現到Guset OS的網路被斷掉!
要如何在Host 也啓用防火牆的狀態下,也保持bridge network的正常運作呢?
以下擷取一小段官網文件,可以解決此一問題。
+---------------------------------------------------------------------------------+
OpenSuSE Firewall Issues
OpenSuSE firewall can interfere with bridging. To solve this, edit:
/etc/sysconfig/SuSEfirewall2

by adding a line to the end (where "br0" if the identifier of the bridge device)

FW_FORWARD_ALWAYS_INOUT_DEV="br0"
+---------------------------------------------------------------------------------+

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有一個初步的了解,並且把它作為滿足你的需求的一種選擇。
在最後我想說的時,既然它們都是免費的,為什麼不都試一試,看看誰更滿足你的需要呢?

2009年5月12日 星期二

Free BSD,Linux之比較

http://zgod.pixnet.net/blog/post/6979601[轉貼,但亦非原出處]

Free BSD,Linux之比較

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 有五十多人,但是 Linuxfans 散佈在全球各地的 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-embededscheduler、fs、等核心process 執行部分、最後才加進網路部分、process 執行最佳而網路稍遜乃是合理的結果.

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

2009年5月9日 星期六

没想到……

最近才看到中國網友王煒兄玩虚擬機器裝FreeBSD的發文!
没想到,這回我也真的被逼著要搞一回了。
只是我不是要裝最新的FreeBSD7,而是Old version版本6.1。

ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/
找到ISO檔,準備上工去!

線上手冊:
http://www.freebsd.org/doc/en/books/handbook/index.html

MySQL移轉資料小抄

http://blog.roodo.com/justinlove/archives/3018575.html
其實不能算是小抄,原本是打算整篇都抄過來!
但看看其實關鍵技術說明不是非常多,擷重要的指令說明也就值得了。

起因是因為我真的很不習慣FreeBSD系統,所以想把之前資訊管理員建置的WEB主機(FreeBSD6.1)。
換成LINUX Base的LAMP平台(openSeSE10.3),也有部份原因是為增加使用SuSE的實戰經驗。
OK!麻煩來了!原本是FreeBSD6.1的MySQL4,要轉到現在的openSuSE10.3的MySQL5!
還有PHP4也換成PHP5了!

在還能有測試平台的情形下,加上原主機,兩台並存。
讓我能同時有互相參考的狀態,完成移轉應該是指日可待才是。

不過,卻也因為這個機會,熟悉了不少FreeBSD的技術呢。

[Example]
1.原主機指令:
$ mysqldump -uroot -pyour_mysql_password dump_databasename > dump_databasename.mysql

2.
dump_databasename.mysql 可用 less 看看,是文字檔,全是SQL語法!
把 dump_databasename.mysql 檔案放到移轉用主機上。
$ scp dump_databasename.mysql bullock@10.1.228.228:/home/bullock/

3.移轉主機指令:
$ mysqladmin -uroot -pyour_mysql_password create dump_databasename
$ mysql -uroot -pyour_mysql_password dump_databasename < dump_databasename.mysql

Done!!結束~

2009年5月1日 星期五

SuSE Vbox bridge network

環境:OpenSuSE 10.3 搭配 VirtualBox2.2 (主機是 HP Compaq dc7600)
主題:VirtualBox bridge network setting on one NIC (Hewlett-Packard Company NetXtreme BCM5752 Gigabit Ethernet PCI Express)
目的:只有一張網路卡,要達成主客兩端網路互通!在同一網段內。

+=========================================+

Host OS : OpenSuSE 10.3
user id : bullock
Host IP : 10.1.131.201/22 <- eth0 10.1.131.201/255.255.252.0
GateWay : 10.1.131.0
DNS :10.1.131.0, 168.95.1.1

Guest OS: OpenSuSE 10.3 or something else like Windows XP...
Guest IP: 10.1.131.202/22 <- eth0 10.1.131.201/255.255.252.0
Gateway and DNS : 比照 Host
(若有DHCP Server配合更佳!)

基本步驟:
1. Turn down interface 'eth0'.
# /sbin/ifconfig eth0 down

2. Set IP address of 'eth0' to 0.0.0.0 and with 'promisc' mode.
# /sbin/ifconfig eth0 0.0.0.0 promisc

3. Create bridge interface 'br0' and set IP address and netmask of 'br0'
to the value of IP address and netmask 'eth0' before we set it to 0.0.0.0.
3.1
再手動創造出bridge用的虚擬網路,並把原IP綁上!
# /sbin/brctl addbr br0
# /sbin/ifconfig br0 10.1.131.201 netmask 255.255.252.0
# /sbin/route add default gw 10.1.131.0

3.2
若要每次開機都自動生bridge相關的NIC
目前不建議作到這層次,因為開機就套用bridge network,並不必然。
除非虚擬機器也是正式提供服務的主機!

# vi /etc/sysconfig/network/ifcfg-eth0
[修改範例]
BOOTPROTO='static'
STARTMODE='ifplugd'
IFPLUGD_PRIORITY='1'
#IPADDR='10.1.131.201/22' <-註解掉不用
NAME='Hewlett-Packard Company NetXtreme BCM5752 Gigabit Ethernet PCI Express'
USERCONTROL='no'
LINK_OPTIONS='promisc on'


# vi /etc/sysconfig/network/ifcfg-br0
[修改範例]
BOOTPROTO='static'
STARTMODE='auto'
IPADDR='10.1.131.201/22'
NETMASK='255.255.252.0' #<-可略
NAME='bridge for vbox'
BRIDGE='yes'
BRIDGE_PORTS='eth0 tap0'
BRIDGE_FORWARDDELAY='0'

4. Add 'eth0' to 'br0'.
# /sbin/brctl addif br0 eth0

5. Create virtual network card 'tap0' with VBoxTunctl and add 'tap0' to bridge 'br0'.
# /usr/bin/VBoxTunctl -t tap0 -u bullock
# /sbin/brctl addif br0 tap0

6. Do not forget to set 'tap0' to 'promisc' mode too.
# /sbin/ifconfig tap0 promisc

7. Bring all interface up.
# /sbin/ifconfig tap0 up
# /sbin/ifconfig eth0 up
# /sbin/ifconfig br0 up

PS/若是要再有第二個以上的虚擬機器使用,而要再增加tap1,tap2 ……
請在 步驟5. 6. 7. 針酌加上tap1,tap2的啓用指令


[補遺]
有關防火牆問題排除!
在上述配置bridge network時,會先把防火牆關閉。
而在配置完之後,若是再啓用防火牆,會發現到Guset OS的網路被斷掉!
要如何在Host 也啓用防火牆的狀態下,也保持bridge network的正常運作呢?
以下擷取一小段官網文件,可以解決此一問題。
+---------------------------------------------------------------------------------+
OpenSuSE Firewall Issues
OpenSuSE firewall can interfere with bridging. To solve this, edit:
/etc/sysconfig/SuSEfirewall2

by adding a line to the end (where "br0" if the identifier of the bridge device)

FW_FORWARD_ALWAYS_INOUT_DEV="br0"
+---------------------------------------------------------------------------------+

搜尋此網誌

本站大事記

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

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

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