Virtual PC 的前世今生

 

Microsoft 於2003年的併購案當中,除了為貫徹信賴運算(Trustworthy Computing)而買下羅馬尼亞的GeCAD公司外,另一個最為人震驚的,就是Microsoft買下美國的Connectix公司,這兩宗併購案都 讓人有所隱憂,一是GeCAD為Linux上最受歡迎的防毒軟體,另一是Connectix的知名軟體:Virtual PC,擁有各種作業平台的支援版本,但卻以Mac OS用的版本最受歡迎,而Microsoft在1999年後就奉行獨尊Intel硬體的軟體發展策略,如此消費者總會擔心:未來GeCAD AntiVirus、Connectix Virtual PC的後續版本更新,會否也只有Windows版呢?

姑且不論這些,讓我們回到更前頭的議題:Microsoft為何要併購Connectix?其軟體技術有何神奇之處?關於這兩個問題,本文將對技術價值提出解答,然後再來談論併購用意與動機。

Virtual PC之技術價值

既 然Virtual PC在諸多版本中,就屬Mac OS版就受歡迎,那們就來探究為何Virtual PC for Mac OS最受歡迎?Connectix公司開發的Virtual PC支援三種作業系統,即Virtual PC for Windows、Virtual PC for OS/2、以及Virtual PC for Mac OS,而Mac OS版最好賣,其實用消去法也可略知一、二。 首先,Virtual PC for Windows是在原有Windows PC上再虛擬一部PC,也可以在這部虛擬機器中再安裝另一套作業系統與相關軟體,但是1997年的低價PC風潮讓PC價格跌破1,000美元,之後更是一 路下殺到800、500等價位,所以在PC中再模擬一部PC的價值並不高,再買一台實體機器即是,何必要虛擬?其次,IBM OS/2在Windows 95出現後的隔年(1996年),就已知再奮鬥下去也希望不大,遂停止後續開發,並支援維護至2001年,OS/2用量少,且該轉移的多半完成轉移,未轉 移的也都在備份完資料後便放棄,自然沒太多人會去用Virtual PC for OS/2。

那麼為何 Virtual PC for Mac OS會最好?事實上Macintosh從1984年推出以來,在市佔上都遠遠落後於IBM相容PC(IBM失去PC掌控權後,改稱Wintel PC),然Macintosh與PC交換資料的需求愈來愈多、愈來愈頻繁,因此要讓Mac用戶準備兩台電腦:一部Mac、一部PC,不僅要負擔兩部電腦的 價錢,還要準備兩個桌面來放置,並且至少還要多站一個電源插座,這對Apple的主要客戶:家庭、學校、小企業而言,不可說是沒負擔。

為 此,Apple在90年代前期開始投入DOS相容卡的研發,這時Macintosh的主機機種為Quadra系列,使用Motorola 68040處理器,但似乎發展沒多久就進展到使用PowerPC 601處理器的PowerMac,接替過去的680x0系列,所以印象中是從PowerMac就開始有DOS相容卡。 而Apple研發的DOS相容卡,最早是使用Apple PowerMac內專有的插槽規格:NuBus,卡上有一顆x86處理器、晶片組、甚至有自己的記憶體、顯示晶片、音效晶片等,只有硬碟、光碟、軟碟、滑 鼠、鍵盤是取用PowerMac本身,但如此至少已經達到降低Mac用戶負擔的目的:縮減電腦佔用體積、電源、花費等。

後來 Apple也持續再精進DOS相容卡,之後設計自有的NuBus介面,改推出PCI介面的版本,同時CPU、記憶體等規格也都提升,因為PC使用者已經從 DOS/Windows 3.x進展到Windows 95了,嚴格而論不應該再稱為DOS相容卡,或許稱為Windows相容卡、x86相容卡比較妥當。更進一步的,新的相容卡除了關鍵的CPU外,其他方面 都盡可能挪用現有PowerMac機器上的資源,愈多的共享可以省更多的錢,甚至連記憶體、音效等也都不再獨立於卡上,直接調用PowerMac的配置來 用。

由Apple的官方網站上所公佈的數據我們可以看出Power Mac G5(雙核心2.5GHz、2GHz、1.8GHz)的強大運算能力,就連目前PC主流的3.4GHz處理器也自嘆不如
(圖片來源:www.Apple.com.tw)

不 過,弄到最後插上相容卡,只是為了買到一顆x86 CPU?那麼何必?乾脆用比較強悍的PowerPC來模擬算了,當年PowerPC就是標榜要大幅超越CISC效能的,不過這也僅止於80486時代的囂 張,Intel Pentium出來後就不敢如此說了。然而確實有人如此作,撰寫一套在Mac電腦上執行的軟體,並載入、常駐到記憶體中,將接收到的x86指令轉翻譯成 PowerPC的指令,然後給予PowerPC處理器執行,再加上對低階I/O裝置的呼叫進行轉換、轉向,就可以直接使用PowerMac內的硬體及 I/O裝置。 如此,PowerMac就不用再插任何相容卡了,直接用模擬軟體就可以完整模擬出一部x86 PC,雖然模擬的速度會因效能折損而較緩慢,但隨著PowerPC處理器的加快(G3之後),以及若不使用新版Windows(依然使用Windows 98的話),其實在操作流暢性上是可以接受的。

既然純軟體 就可以完整模擬一部x86 PC,並且只要選用較高速的PowerPC CPU,或加多一點記憶體,就可以讓相容執行加速,這時硬體相容卡就沒有任何存在的意義了,Apple後來也停產相容卡,全面改用Connectix公司 推出的Virtual PC for Mac OS。

自Microsoft接手之後,Virtual PC for Mac已經推出到了第7版,有興趣的玩家可上 www.microsoft.com/mac 去瞧瞧 (圖片來源:Micorosoft)

當 然!相容卡不是只有Apple如此做,就連Sun的SPARC工作站內也有相容卡這種硬體選購配件,也是原廠自製(來自Sun自身),讓SPARC工作站 也可以相容執行x86程式,不過似乎沒有聽過SPARC上有知名的x86模擬軟體,如此Sun是否還持續保有相容卡的推展呢?看來需要進一步的調查。

另 外,Virtual PC也不是唯一的相容模擬軟體,事實上Alpha電腦上也有類似的軟體,稱為FX!32,可以偵測並翻譯x86指令及執行其軟體,而且:無論 Virtual PC或FX!32,都具有翻譯完的快取功能,直接將翻譯過的指令程式留存在記憶體中,下次若有重複需求時就省去再次轉譯的動作,讓執行更為加速,這種技術 後來也用於Java上,將轉譯完的Byte Code持續保留,下次再呼用時就不用重新轉譯,直接取用之前留存的Byte Code,這種技術稱為Java JIT Compiler,JIT=Just In Time(即時),JIT Compiler這種技術也被Microsoft .NET框架中使用,將翻譯過的Managed Code進行留存再用。

類 似的轉譯技術之後運用的機會愈來愈多,2001年Transmeta推出Crusoe處理器,就是一種非靠轉譯不可才能相容執行x86程式的CPU, Crusoe處理器的轉譯程式(亦即:虛擬、模擬程式)為CMS(Code Morphing Software),關機時儲藏於BIOS中,開機後就常駐到記憶體內,然後才載入驅動程式、作業系統,任何的執行動作都會透過CMS翻譯後才給CPU執 行,同樣的:Itanium 2為了加入IA-32程式的執行速度,也額外增加了IA-32EL(Execution Layer)這種模擬程式,用意也與CMS類似。

已經迫不及待想搶先體驗Virtual PC威力的使用者,微軟也提供了45天的試用版本供使用者下載,不過目前僅有English、French、Italian、Spanish四種語言

所 以,Microsoft併購Connectix,即是希望在未來Windows XP(或Longhorn)以及Windows 2003 Server(或Longhorn Server)上提供Virtual PC與Virtual Server,好讓舊版Windows作業系統可以繼續執行,讓原有的驅動程式(含週邊)、應用程式可以繼續相容運用,如今Microsoft接手後已經 新推出Virtual PC 2004 for Windows,未來很快也會有Virtual Server 2005 for Windows出現。


arrow
arrow
    全站熱搜

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