[devHinge]Mactel:從PowerPC到x86
「每一個OS X作業系統都有PowerPC和Intel版本,...這是為了以防萬一」(Every release of OS X has been compiled for PowerPC and Intel...just in case),這句話出自蘋果電腦的執行長史提夫賈伯斯。到底是因為賈伯斯小心謹慎,還是因為跟IBM合作帶給賈伯斯很大的不安全感?
無論如何,之前為x86所做的Mac OS X都沒能拿出來銷售,但是從Mac OS X 10.5(專案名稱為Leopard)開始,蘋果電腦會將安裝Mac OS X的x86電腦推上市面,因為蘋果電腦已經決定要採用英特爾的處理器了。
雖然五月底早有華爾街日報刊出一篇報導,指出蘋果電腦與英特爾雙方高層密商,蘋果電腦可能將採用英特爾的處理器,但當時蘋果電腦、英特爾、IBM等公司對此都不願評論,蘋果電腦的發言人甚至表示華爾街日報的報導是推測、謠言。而且這類的傳言幾乎每年都會出現,聽多了也就覺得又是「狼來了」。
蘋果電腦將改用英特爾處理器
但是就在六月六日(美國時間),賈伯斯在舊金山舉行的Apple Worldwide Developers Conference(WWDC)的Keynote演講,正式宣佈蘋果電腦將會採用英特爾處理器。這個消息一定讓許多人驚訝(包括我)、錯愕(例如許多老麥客)。賈伯斯在會中表示,蘋果電腦將在明年(2006年)六月以前展開系統轉移的工作,並且將在後年(2007年)六月以前完成。
嘿!到底是IBM做錯了什麼?還是英特爾做對了什麼?(超微少做了什麼?)
根據媒體所載,IBM的PowerPC處理器在速度、散熱與耗電都無法讓蘋果電腦滿意,而且PowerPC處理器的發展進度也趕不上蘋果電腦的要求,因此讓蘋果電腦決定更換處理器。
賈伯斯在WWDC的演講提到,蘋果電腦過去有兩次大轉換,第一次是發生在1994年到1996年的處理器從摩托羅拉換成PowerPC,第二次是2001年到2003年的OS 9轉換到OS X,「現在該是第三次了」。
兩年前賈伯斯也是在WWDC的演講發表64位元的麥金塔G5,並且將G5與採用英特爾Pentium 4和Xeon的戴爾電腦一同進行效能評比(結果當然是G5獲勝)。賈伯斯在當時曾經提到,G5的速度將在一年之內從2 GHz提升到3 GHz。雖然蘋果電腦在今年四月底推出了2.7 GHz的G5,但是3 GHz G5的承諾始終沒有兌現。
雖然都是個人電腦的創造者,但是蘋果電腦採取了與IBM完全不同的策略。IBM在創造IBM PC的時候,將處理器交給英特爾設計、製造,將作業系統交給微軟開發,而且對IBM PC的規格採取開放態度,任何廠商都可以自行按照規格設計、製造、組裝。蘋果電腦雖然採用摩托羅拉或IBM的處理器,但是一手掌握了所有產品的規格、設計、製造,包括硬體與作業系統(雖然蘋果電腦曾經授權其他廠商製造生產麥金塔,但沒過多久又收回授權:台灣廠商力捷電腦曾經獲得授權)。
儘管長久以來,就不斷有蘋果電腦即將改用英特爾處理器的傳言,而且產業分析師也經常出此建言或預測,如今這些傳言也成真,但其實在英特爾和蘋果電腦這兩家公司的發展過程當中,英特爾也不止一次的想要拉攏蘋果電腦,而蘋果電腦內部就不斷的有人建議應該將作業系統移植到英特爾處理器。
星艦專案
就在1992年春天(請注意,此時蘋果電腦的執行長不是賈伯斯,而是約翰史考利(John Sculley)。賈伯斯的執行長職務在1985年被董事會解除,直到1996年底,賈伯斯才重返蘋果電腦),當時擔任網威(Novell)公司策略行銷部門副總裁的米勒(Darrell Miller),代表網威造訪蘋果電腦,開啟了「星艦專案」(Star Trek)的契機。
星艦專案是雙方合作的專案代號。網威當時的產品Netware,是網路作業系統的霸主,而網威找上蘋果電腦的目的,是希望以自身伺服器軟體的技術與產品優勢,結合蘋果電腦的用戶端圖形使用者介面作業系統,並且希望蘋果電腦能將麥金塔作業系統移植到英特爾電腦。這的確是兩大領域的天王,如果星艦專案能成功,微軟不見得能有現今的局面;但就結果而言,這項合作未盡全功。
星艦專案非常低調、隱密,初步成果出現之前,許多蘋果電腦高級主管都不曉得內部有這樣的計畫。在計畫的執行過程,英特爾創辦人、也是當時執行長的安迪葛洛夫(Andy Grove)不僅知道這項計畫,甚至全力提供專案所需要的英特爾設備和技術。
雖然三個月之後,星艦專案將麥金塔作業系統(System 7)的若干功能移植到英特爾處理器,並且在內部高級主管面前展示成果。但是蘋果電腦內部對此始終維持兩派對峙的意見,而且始終是反對者佔優勢。這一次,就算已經展現了初步成果,但還是沒能得到青睞,雖然這項專案沒有被取消,但後來因為專案的主要負責人離職,而胎死腹中。
星艦專案雖然沒有成功,但蘋果電腦當時的執行長史考利,卻是希望麥金塔作業系統能同時在英特爾處理器,和當時正在研發的PowerPC處理器執行。
Marklar專案
賈伯斯在今年WWDC演講中也提到,過去五年以來,Mac OS X始終偷偷的以雙面人的方式過活(The Mac OS X has been living a secret double life for the past five years)。關於這樣的說法,我倒是一點都不意外。根據eWEEK在2002年八月30日的一篇報導 (Apple Keeps x86 Torch Lit with 'Marklar') 指出,蘋果電腦為了瞭解Mac OS X在英特爾x86處理器運作的情況,在內部執行著一項名為Marklar的專案,這項專案不僅已經將功能完整的Mac OS X移植到x86處理器,而且還是同步保持Mac OS X有PowerPC處理器和x86處理器版本。
該篇報導也指出,當時的蘋果電腦對PowerPC處理器就已經不滿意,而如果有更好的選擇,蘋果電腦也不願受限於PowerPC處理器。為了不讓Mac OS X被PowerPC處理器影響,蘋果電腦就以Marklar專案確保Mac OS X能在主流處理器運作。言下之意,似乎表示蘋果電腦在三年前就已經有更換PowerPC處理器的準備了。
其實當賈伯斯在1996年重返蘋果電腦,蘋果電腦也買下賈伯斯創造的NeXT公司及軟體,包括能在英特爾處理器執行的OpenStep作業系統,而蘋果電腦也逐步將OpenStep的概念和架構導入Mac OS X。
達爾文專案
除了低調、未正式公開的Marklar專案之外,蘋果電腦在規劃Mac OS X的時候,也展開了達爾文專案(Darwin),而這項專案的成果就是Mac OS X的核心。
達爾文專案是Mac OS X的核心,而達爾文專案的核心則是由卡內基美濃大學(Carnegie-Mellon University)根據BSD 4.4(Berkeley Software Distribution)所開發的Mach 3.0(也就是說Mac OS X是個不折不扣的UNIX)。
BSD原本就擁有數種不同處理器的版本,而達爾文專案也是使用x86平台進行程式碼的完整性檢查(integrity-check),所以達爾文專案除了公開釋出PowerPC版本之外,也有x86版本可以下載。
x86平台兼容Mac OS X與Windows
如果Mac OS X(指的是10.5,也就是Leopard)可以在x86電腦執行,這是不是表示相同的x86平台也可以執行Windows(甚至Longhorn)?再者,一般的x86電腦是不是也能執行Mac OS X?
根據蘋果電腦的資深副總裁菲爾雪勒(Phil Schiller)在WWDC的說法,蘋果電腦並不打算銷售內含Windows的x86麥金塔電腦,但是也不會禁止使用者將Windows安裝到x86麥金塔電腦,而對這類的情況,蘋果電腦並不會提供售後技術支援。這等於是回答了上述第一個問題,也就是Windows 和Mac OS X都能在x86麥金塔電腦執行。
如此一來,目前的個人電腦廠商會不會多了一位強力的競爭對手呢?消費者會不會因為x86麥金塔電腦既能執行Mac OS X又能執行Windows,而考慮x86麥金塔電腦?蘋果電腦或許可以採用這樣的行銷策略向Windows使用者招手:換到x86麥金塔電腦吧!如果真的不喜歡,還可以換回Windows喔!
而關於上述的第二個問題,雪勒在會中特別強調,不會讓Mac OS X在其他x86電腦安裝、執行。也就是說,蘋果電腦會採取保護措施(但屆時一定會有很多駭客出手破解)。
移植Mac OS X到x86平台
既然蘋果電腦採用英特爾處理器已成定局,接下來,就該是軟硬體開發人員上場進行系統轉移了。透過上述種種Mac OS X與英特爾處理器的關係說明,我們不難想像,要將Mac OS X移植到並不困難,而且不僅已經早就在進行,甚至已經有了相當理想的成果;賈伯斯在WWDC的演講就是以英特爾處理器電腦展示Mac OS X。
話雖如此,包括蘋果電腦、軟體開發商和使用者還是會經歷一段時間的系統轉移過渡期(希望不會是黑暗期)。首先要面對的是驅動程式的開發,以及應用軟體的轉移或開發。
使用包含多種平台執行能力的「通用程式碼」(Universal Binaries),對軟體移植將會比較有利。例如Cocoa,可以產生出能在包括PowerPC和英特爾x86等平台執行的通用程式碼(甚至可以同時兼具32位元和64位元)。Cocoa是蘋果電腦的物件導向程式開發環境(並且包含了執行引擎),有一組包含完整類別的框架(framework),可以讓開發人員以Objective-C或Objective-C++用來開發Mac OS X原生程式,對開發人員移植軟體相當有利。但如果是要移植新版Carbon開發的軟體,則需要改寫並重新編譯程式;Carbon是一組API,可以用C或C++呼叫使用。
蘋果電腦將以每月999美金的價格,將開發人員轉換套件(Developer Transition Kit)租給軟體開發人員,這個套件包括一部x86麥金塔電腦,以及x86版本的Mac OS X 10.4,和相關的軟體開發工具。 除了移植之外,模擬器更是可行方案,蘋果電腦會以Rosetta讓軟體廠商和使用者暫時解決軟體執行的問題。Rosetta可以在x86麥金塔電腦模擬出PowerPC處理器環境,以執行PowerPC的二進位執行檔。不過模擬器也非萬靈丹,如果是需要大量計算、圖形處理的程式,使用模擬器會降低執行效能。而且Rosetta將不支援Mac OS 9(及之前版本)的程式。此外,微軟也已將表示將會推出新版的Visual PC for Mac。
除了移植軟體,包括蘋果電腦在內的廠商,還要面對同時維護同一產品但多款程式碼(code base)、和售後支援服務的工作;例如蘋果電腦就要同時維護Mac OS 9和Mac OS X for PowerPC、Mac OS X for x86等軟體的程式碼。人力物力不比蘋果電腦的小公司,可能被迫得先放棄某一條產品線。可想而知的是,Mac OS 9及相關產品線會優先被廠商終止。
先從達爾文開始
對Mac OS X有興趣的軟體開發人員,可以將Mac OS X當成一個擁有漂亮介面的BSD,但如果花不下錢買麥金塔,可以先從x86版本的達爾文作為第一步的接觸。除了蘋果電腦自己的達爾文專案,另外還有OpenDarwin,是根據蘋果電腦的公開源碼授權條約(Apple Public Source License),但由於自由軟體基金會認為APSL不符合GPL精神,因此又衍生了Gnu-Darwin專案。
此外,PearPC是一個可以在x86電腦產生PowerPC環境的模擬器,這也是個GPL軟體。你可以利用PearPC,將PowerPC版本的Mac OS X(以及其他PowerPC作業系統)安裝在x86電腦。
參考資料


0 意見:
張貼意見