我在 Vista 裡面裝了 Sun VirtualBox,然後在裡面虛擬了一台機器,安裝 Ubuntu 8.04,這樣做省掉了我安裝在獨立分割區,會改變現有作業系統的麻煩。VBox 的強項,就是在 Vista 環境裡,模擬出一台虛構的電腦,而 Ubuntu 804 就穩穩運作在這台虛無飄渺的『機器』上。

幾個月來,一切都很順利,或是說,問題都可以被克服。一直到今天試著把 Google Picasa for Linux 裝進這台虛無PC上,才發現虛擬機器不管用,一執行還真懷疑是不是當機了?CPU使用率飆高到 100% ,Picasa 卻慢如烏龜,滑鼠的遲緩反應,慢到幾乎是考驗使用者的耐性。

我知道一定有問題,查了很久,大概了解 Google 並非把 Picasa 的 Win32 程式碼全部改寫重新編譯成 Linux 版,而是用 WINE ( Wine Is Not a Emulater ),跟程式後端 API 一搭一唱,讓 Picasa 以為還在 Windows 環境裡執行,我想應該就是這裡,某個地方讓 Picasa 突然察覺,自己在一個『陌生又可怕的環境』,孤零零欲振乏力。

只是我找不到解法。弄很久搞不定,想放棄了。

一直到剛剛看了這篇,猛想起 VirtualBox 裡有個相關選項,VT-x /AMD-V的設定。我把它們全勾了。重新啟動 VirtualBox 虛擬機器,神蹟發生了,Ubuntu 裡面執行 Picasa 竟然快如捷兔,跟之前的龜速蝸牛步簡直天壤之別。

我想應該是 CPU 的當代設計,為了符合x86虛擬機器的需求,在 Ring0 之前插進了 Ring-1,安置 VT-x/AMD-V 可以一展拳腳之處。

好神奇 .....

第一點是,軟體的 WINE 想騙 Picasa 騙不過,從硬體的核心(CPU)來攻心為上,果然就上當了。

第二點是,幾十年前 x86 處理器的設計師以為,Ring0 就是最核心底層的層次了,後人克紹箕裘,在 Ring0 底下硬塞 Ring-1,更接近『地心』...... :P

arrow
arrow
    全站熱搜

    stary9 發表在 痞客邦 留言(1) 人氣()