緣起
其實故事真正的起點,是因為請教政儀該怎麼把 MSN 視窗上的廣告拿掉,在政儀貼給我的網址 www.pank.org 裏湊巧看到
VirtualPC 的消息的。Virtual PC 是個虛擬機器的軟體,在幾年之前還算風光時被 Microsoft 收購走。Virtual
PC 不如他的主要對手 VMware 有名。上次看到一篇科技新聞,目前 VMware 的市佔率超過 80%,記者問 Microsoft 一位老
大有何看法,他的回答很 Microsoft:「我們認為,Virtual Machine 這種技術,是應該內建在作業系統內的」。當然馬上讓人聯想
起 IE 幹掉 Netscape 的往事。果然言猶在耳,就忽然發現以前賣和 VMware 一樣貴的 Virtual PC 現在有得免費下載
了... http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=en
VMware 和 Virtual PC 誰好誰壞?
VMware Virtual PC
--------------------------------------------------------------------------------
1. 價錢: USD 1000~6000 免費
2. 界面: 漂亮完整 有點陽春
為何上表只列了兩項,是因為剩下的都需要一點篇幅來講。功能上,VMware 發展日久,功能非常完整 (不過不同功能是分成不同版本來賣的,所以
產品列表又臭又長,看得人眼睛脫窗) VMware SMP 可以模擬 1-4 顆 CPU,Virtual PC 只能模擬單
CPU。VMware VMFS 可以模擬 Server 級的複雜磁碟系統,裝在多台機器上模擬整體的 storage 環境,Virtual
PC 只模擬一個 ATA 界面 (可以模擬出一到三顆 ATA 硬碟)。假如使用虛擬機器的目的是要開發 Server 級的 OS 或
Database 等重量級軟體,而錢又不是問題的狀況下,無疑的 VMware 才是比較好的選擇。論執行速度,這兩者因為技術不同,在執行不同的東
西時,互見長短。執行某些東西時,VMware 贏 Virtual PC,但執行某些東西時 (Ubunto Linux 的文件好像是這麼寫的)
則是 Virtual PC 效率較高。既是如此,那為何本文推薦的是 Virtual PC 呢?下段分解
ps1. 還有個常納入討論的選擇是 bochs。VMware 和 Virtual PC 的作法都是檢查接下來要跑的機器碼,把
privilege instruction 像是動 GDT、UDT、Interrupt、I/O 的東西濾出來模擬,然後把剩下直接跑也安全的
x86 指令直接拿給 CPU 跑,因此效率較高,但也因為篩選和模擬的方法不同,跑不同的東西時,兩者的速度互見長短。bochs 是老老實實每個
x86 指令都模擬,因此效率無疑敬陪末座,但是因為全靠自己模擬不仰賴CPU 的特性,因此可以跨平台。bochs 現在的版本也可以模擬
SMP。
ps2. VMware 要錢的是要自己「做」一個 VM 的版本。如果只拿別人做好的 VM 來跑,那麼只要使用免費的 VMware
player 就可以了。VMware player 與要錢的版本間的關係,和 Adobe Acrobat Player 與要錢的
Acrobat 非常相似。
Virtual PC 好在哪裏?
1. 免費
2. 不執行時不佔資源
我無法忍受裝了一個軟體後,即使不執行,也要佔一堆資源。特別是那個軟體平時不會每天用的時候。VMware 裝上去後,即使沒有執行,系統也會多出四
個 service: vmware-authd.exe、vmount2.exe、vmnat.exe、vmnetdhcp.exe,大約佔去
12 MB 記憶體 (Working Set) or 95 MB (Virtual Size)。Virtual PC 沒執行時,不佔用任何資
源,執行時,就只有 Virtual Pc.exe 獨自在跑,提供所有的功能。裝 VMware 後,在裝置管理員裏還會多裝兩個 VMware
Vitual Ethernet Adapter 網路卡 driver。這兩個網卡的出現,大麻煩是不至於,但是若使用流量管理軟體時,偶而會有小麻
煩。Virtual PC 沒有這個玩意兒。另外小小一提的是,VMware 模擬的音效卡是個名不見經傳的鳥卡,Virtual PC 則是模擬
SB16。如果拿 VM 來裝 game,這個差異可是很大的。
ps3. 如果目的是玩 DOS 年代的老 Game,推薦使用 dosemu。主要原因有二:dosemu 可以設定每秒要執行多少個指令,其他時候
不會佔主機的 CPU 資源。VMware / Virtual PC 所模擬的 CPU 和真的 CPU 一樣,只有遇到 HLT 指令才會停下來,
而 DOS 年代的程式在需要等待時慣例的做法是繞無窮迴圈,因此只要跑 DOS 的程式一定讓整台電腦的 CPU 飆到 100%。此外
VMware / Virtual PC 把拿到的 CPU 資源都拿去模擬 VM,裏頭跑的 dos 程式可能會跑太快,而且因為 Windows
分給 VM 軟體的 CPU 資源是一陣一陣的,所以 VM 裏跑的程式會忽快忽慢,game 的音樂聽起來也不大自然。第二個推薦 dosemu 的
理由很容易理解,就是古老音樂/音效界面的模擬完整。VMware 所模擬的音效卡 DOS 年代的程式認不到;Virtual PC 的 SB16
好得多了;dosemu 不但有 SB16,還可以模擬 Gravis Ultrasound、FM 音效也齊全、甚至還有 Roland
MT-32。
實際使用結果
實際使用 Virtual PC 裝 FreeBSD 6.2,過程一切順利。Virtual PC 所模擬的網卡被 FreeBSD 辨認為
de0,可以運作正常。與真正裝進機器裏的差別是,在閒置時看 top 的話,裝在機器裏的 FreeBSD 6.2 可以得到幾乎 idle
100% 的讀數,而在 Virtual PC 裏則只有 idle 85%,有 15%-19% 用在 Interrupt 的處理上 (機器等級:
P4-2.8G)。印象中從前用 VMware 4.0 裝 FreeBSD 4.0 時,好像花在 Interrupt 上的沒有明顯到讓我注意的地
步。不過因為 VMware 的主版號差了兩、三版,FreeBSD 也差了兩版,所以這個印象尚不足以做為 VMware / Virtual
PC 的比較參考。make kernel 時,這台機器 native 裝的 FreeBSD 6.2 約需 15 分鐘,裝在 Virtual
PC 裏,make kernel 花了 40 分鐘。
結論
對於偶而有需要使用 VM 軟體的人來說,Virtual PC 免費,沒事裝在系統裏又沒有負擔,效果也很好,強力推薦!
接下來還是要繼續嘗試安裝SUN Solaris 10 x86,希望拿出ISO檔後就可以搞定。(SUN用的是哪家出的壓縮軟體竟然P4 3GHz要
跑90分鐘,不過壓縮率卻很好 大於3GB iso檔 -> 1.2GB還可以分割檔案)
幾張螢幕抓圖就請連線到 https://www.daemon-land.idv.tw/wordpress/?p=27 看一下!
On 3月15日, 下午2時21分, "kuli" <kuli....@gmail.com> wrote:
> Virtual PC 真是好物,強力推薦 : )
>
> 緣起
>
> 其實故事真正的起點,是因為請教政儀該怎麼把 MSN 視窗上的廣告拿掉,在政儀貼給我的網址www.pank.org裏湊巧看到
> VirtualPC 的消息的。Virtual PC 是個虛擬機器的軟體,在幾年之前還算風光時被 Microsoft 收購走。Virtual
> PC 不如他的主要對手 VMware 有名。上次看到一篇科技新聞,目前 VMware 的市佔率超過 80%,記者問 Microsoft 一位老
> 大有何看法,他的回答很 Microsoft:「我們認為,Virtual Machine 這種技術,是應該內建在作業系統內的」。當然馬上讓人聯想
> 起 IE 幹掉 Netscape 的往事。果然言猶在耳,就忽然發現以前賣和 VMware 一樣貴的 Virtual PC 現在有得免費下載
> 了...http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-319...
安裝 Ubuntu 的問題主要是螢幕會花掉
Ubuntu 的安裝 CD 為一張 Live CD,理論上用它開機就可以開到 Ubuntu 桌面,而桌面左上角有兩個 icon,其中之一就是
Install,就可以進入把 Ubuntu 裝入硬碟的程序。據上述網頁所言,Virtual PC 無法模擬 24 bits color,不巧
Ubuntu 的 X Window 預設的 color depth 就是 24 bits,因此在進入桌面之前螢幕已經花掉,「看」不到畫面的情形
下很難繼續裝機。因此解決的方法就在於將 X Window 的色彩設為 16 bits。試出來的方法與上述網頁的 4b 相近,但略有不同:
1. 使用光碟開機後,在開機選單選擇 Ubuntu Install 前,先按 F4 將畫面模式改為 800x600 16 bits
(註:4b 並無此步,但不這樣做,我無法進入下述第2步)
2. 繼續開機,進度棒走到滿、螢幕解析度改變不久後,原本全黑的畫面會出現一個亂亂的圖形。這個螢幕變亂的徵兆一出現,立刻按下 CTRL-ALT-
F1。這個按鍵組合的目的是將界面切入文字模式的 command line。在我的試驗中如果沒有進入步驟 1,則此步按下這個按鍵組合後,螢幕會變
成另一個更亂的畫面。
3. 依網頁教的方法執行下列指令: sudo dpkg-reconfigure xserver-xorg
4. 通通按 Enter 接受預設值,唯獨 Monitor 設定色彩深度時,從預設的 24 bits 改選成 16 bits。剩下的選擇仍然通
通 Enter 過去,直到回到命令列。
5. 按下 CTRL-ALT-F7。這個按鍵組合是將界面切回 X Window。螢幕會回到亂亂的狀態。
6. 按下 CTRL-ALT-Backspace。玩過 X Window 的人都應該知道這是用來將 X Window 關閉的熱
鍵。Ubuntu 會立刻以剛剛改過的預設值重新啟動 X Window。此後畫面的顯示就都會正常了。
7. double click "Install" 按鈕開始裝入硬碟的過程。
註:用這種方式安裝 Ubuntu 會至少需要大約 2.32 GB (請注意這是 1024 base) 的虛擬硬碟空間,虛擬硬碟如果比這個值小,
會在安裝到一半時會看相當優雅的 Install Crashed 畫面,全部前功盡棄。建議使用 2.5G 以上的虛擬硬碟空間安裝。
1. 完成 Ubuntu 的硬碟安裝後,它會提示將 CD 移除並重開機。可是按下重開機鈕後沒有反應:此時請使用 Virtual PC 功能表
的 Reset 功能強迫虛擬機器重開機即可。
2. Virtual PC 模擬的 SB 16 沒被 Ubuntu 認到:請依網頁的方法在 /etc/modules 手動加一行 snd-
sb16 存檔後重開 Ubuntu。
3. 網頁提到的網卡問題我沒遇到。裝好後 Virtual PC 所模擬出的 Intel/DEC 21140 網卡順利被辨認為 eth0 並正常
運作。我只開了個 terminal 做了下列三件事分別指定 IP、default gateway、DNS 網路就會動了 (當然這個方法重開機後
是不會保留的)
ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.255.0 // 註:沒辦法用
xxx.xxx.xxx.xxx/24 來指定真是殘念
route add -net 0.0.0.0 gw xxx.xxx.xxx.xxx // 加個 default gateway
建立 /etc/resolv.conf,裏頭加 nameserver xxx.xxx.xxx.xxx (指定 DNS server)
目前 Virtual PC 裏除了 FreeBSD、Ubuntu 外還裝了個 Win98,專職用來回味 Windows 95/98 的老
game。Game 裝在 Virtual PC 裏格外能發揮虛擬機器的兩大優點:1. 可以隨時以 save state 的模式 close 虛
擬機器。下次再啟動時,會從上次關閉的地方繼續下去,所以就算 Game 不提供儲存進度的功能,還是可以用這種方法儲存進度 2. 使用不同的硬體
啟動虛擬機器,從虛擬機器的內部來看,配備幾乎是沒有改變的 (註1)。而 Virtual PC 的檔案只要小幅度的修改,就可以攜帶至其他裝有
Virtual PC 的機器執行,因此在家玩一半的 Game 在 save state 後,整個複製去公司的電腦繼續未竟的戰鬥是很容易
的 : )
Virtual PC 的檔案攜帶方法
.vhd :這是虛擬硬碟的檔案,整個複製走就行了。
.vsv :使用 save state 結束 VM,才會產生這個檔。也是直接複製即可。
.vmc:這個是 VM 的設定檔。xml 格式可手動編輯。由於裏頭以絕對路徑記錄 vhd 及 vsv 檔的位置,因此在複製到另一台電腦時,除
非 vhd 及 vsv 檔所在位置的磁碟機代號及目錄名都還和原本的電腦一樣,不然就需要修改 vmc 檔內的路徑資訊。同理,如果常要把
Virtual PC 的檔案搬來搬去,建議在每台電腦都放在一樣的位置以減少修改 vmc 檔的麻煩。
註1: 之所以說虛擬機器的配備「幾乎」不會隨硬體而改變,是因為在 VM 裏會認到真正硬體的 CPU,因此 CPU 是會隨實際硬體而改變的。
On 3月23日, 下午10時52分, "kuli" <kuli....@gmail.com> wrote:
> 經過同事的指點,終於找到讓 Ubuntu Linux 6.10 安裝進 Virtual PC 2007 的方法。
> 參考網頁:https://help.ubuntu.com/community/HowToConfigureUbuntuForMicrosoftVir...