科技50年:將Mac救出泥淖/Jean-Louis Gassée
當筆者1985年來到Apple總部時,帶著一些自認為能幫助業務成長的中短期計畫,希望能夠有所貢獻;而有趣的是,這些想法最後獲得的支持和實現,都來自工程單位。
在筆者新官上任、成為Apple產品開發副總裁的第一天,數了數發現會議桌上有30張新面孔;但根據我收到的臨時組織表,直接向我報告的應該只有29個人。那個多出來的傢伙是誰?
一問之下,這位仁兄說:
報告,我是人資部門的代表。因為這場會議可能會有點……「不好推動」,所以人資那邊派我來協助溝通過程的進行。
確實,這場會議看起來不是那麼好處理的,因為我必須將Mac與Apple ][兩個工程單位整合起來;而這兩個單位的人又是出了名的相處不來,而且顯然有些人對新的組織架構頗不以為然。
結果,人資代表確實幫上了忙,但不是他原本以為的那樣。我掃視了一下會議桌的兩邊,兩邊的人都是一副各懷鬼胎、皮笑肉不笑的樣子;但無論如何,不管他們彼此如何看不順眼、多擔心自己的位子不保,但大家仍然有著共同的「敵人」……。
工程師們經常覺得,人資單位好像是管控思想的秘密警察。雖然人資單位在許多情況下也真的很有貢獻,但在公司的全盛時期,也還是有些人資主管會濫用隨之而來的「幕後黑手」權力來搞政治。
更遺憾的是,我後來不小心也被捲進了一場「人資亂流」之中。
Apple IIGS
在人資代表的「幫忙」下,工程單位算是整合成功;但這麼一來,也必須開始幹點正事了。1985年5月,Apple ][的銷售量持續下滑,但Mac並沒有什麼起色;所以我們必須立刻做些改變,來吸引新顧客上門、老顧客回流。
首先,我覺得Apple ][系列產品線已經變得太過複雜。雖然當時準備推出的Apple IIGS(「G」代表繪圖、「S」代表音效),確實比原本的Apple ][、甚至當時的Mac機種都強;但它使用的處理器前途不明,而且跟其他Apple ][機種的相容性也不怎麼樣。
既然如此,我們為什麼還要往這個方向走?
為了壓住這個產品,我付出了相當大的政治代價。有一位非常喜歡Apple IIGS的資深主管,把我的觀點當成是對他個人的意見(不過確實,我當初應該表達得婉轉一點)。
Bill Gates不讓微軟將軟體改寫成Apple IIGS版,或許可以說是跟我所見略同;然而來不及了,我已經傷害了某人的自尊心。
改善Mac產品線
在Mac產品線方面,我建議公司要做三件事情:
做一些相對簡單的改變,讓Mac看起來「更有力」;
設計一款「開放式」的Mac機種,可以加裝各種擴充卡、並且配備彩色螢幕;
為當時的Mac作業系統替換一個更紮實的底層核心。
「更有力」方面的改進,出現在1986年1月上市的新一代Macintosh Plus,其中最重要的部份,包括可用於外接硬碟的SCSI介面、以及相容於雙面記錄資料的軟碟片、並且將記憶體倍增為1MB。
當時Bill Gates對增加記憶體這一點嗤之以鼻;因為他認為,比PC DOS作業系統所需640K更多的部份,都是沒有意義的。
市場上對Mac Plus的反應相當好。一來它扮演了下一代機種推出之前的緩衝角色,二來根據我們在Apple的分析,Bill Gates的保守看法反而讓它更受歡迎。
開放架構Mac
我原本以為,上述的第二點「開放Mac」會遭受很大的阻力,但實際上卻完全沒有,結果這讓我看起來像是在自打嘴巴。因為我曾經認為,Steve Jobs會堅持反對這種設計,但後來卻是我在幫他找理由:「他是反對過,但那已經是過去的事情了」。
為了進一步表達這個主張,我甚至幫我的車子配了這塊車牌:
還做了這件宣傳T-shirt到處送人:
工程團隊很快就決定了採用的介面卡插槽規格,然後設計出了著名的Macintosh II;事實上,Mac II有一部分設計是以前兩次專欄中提過、實際上胎死腹中的Macintosh Office伺服器為基礎。不到兩年之後,Mac II正式上市。
新的系統核心
然而,第三個建議,也就是為Mac OS更換系統核心這一點並沒有成功。為了說明我的論點,讓我們來看看以下這個經過大幅簡化的定義。
今天的每一個電腦作業系統的內部,都有一個作為基礎的程式核心(kernel),也就是最接近處理器、和處理器直接溝通的軟體。
系統核心同時肩負著「交通警察」和「保母」的任務,確保應用程式之間和平相處、記憶體之類的硬體資源獲得妥善的保護和分配,同時也安排並協調電腦內部組件之間、以及電腦和外界資訊交流的優先順序。
在原本的Mac OS中,並不具備這樣的資源保護功能。一部分原因是Jobs堅持Mac電腦上的軟體必須做得越小越好、記憶體需求也必須降到最低(當我從法國來作客時,就看到工程師請求Jobs將原本要求的64K記憶體放寬到128K)。
編按:「請求Jobs將原本要求的64K記憶體放寬到128K」可能是筆誤,但也可能不是。
Mac 128K和512K系列的ROM(唯讀記憶體;本文原文是「RAM」),都因為Jobs的強烈要求而必須限縮在64K容量之內;也就是說,以僅僅64K的程式碼做到一個完整作業系統的工作,這是很不簡單的,但同時當然也導致了許多限制。
而後來的Mac Plus則將ROM放大到128K,以容納新的功能程式碼,甚至還有空間藏設計團隊的照片。
不過,文中說是將RAM放大,技術上也多少是講得通的;只是Mac Plus的RAM已經來到1MB,而不是128K,所以這應該是作者的手誤。
依我的推測,Jobs之所以要求將Mac設計得那麼「小」,是因為前身產品Lisa的失敗。Lisa採用的就是一套Apple自行開發、功能也相當完整的多工作業系統;這套先進的系統超越時代太多、也超越當時的硬體限制太多,導致最後問題重重、用起來也並不順暢。
沒有系統核心的作業系統,確實可以做得比較小、而且用起來甚至會感覺反應更快;但代價就是在沒有「交通警察」和「保母」的環境下,每一個應用程式都覺得自己最大,可以毫無限制的取用系統資源、甚至搶奪其他程式正在使用中的記憶體和程式碼。
所以,如果你要做一個好的程式,就必須小心謹慎,不可以讓它隨意越界、闖進別家軟體的地盤,也必須在用完處理器資源之後,乖乖交出來給其他程式。
最重要的是,你只能相信寫其他軟體的人也跟你一樣有公德心。
遺憾的是,這種公德心並不常見。只要是老Mac玩家就知道,早年最怕看到的,就是這兩個代表「當機」的螢幕圖像:
如果您瞭解了上面說的這些,就知道我們那時的任務是什麼了:寫出一個好的系統核心,然後把它放進Mac的Motorola 68000處理器和Mac OS作業系統之間。
聽起來很簡單吧?一點都不。
我們沒有時間自己再從頭刻一組這麼複雜的程式,所以找了像是Hunter & Ready之類專門寫系統的核心來談授權;只要授權可以談成,問題似乎就解決了。
然而我們也發現,將當時Mac OS的神經和血管都切開,再硬塞一個系統核心進去,需要的時間還是太長,長到令我們擔心它撐不過這場手術。或許有人會覺得我們當時太謹慎、或是太膽小,但不妨看看1997年的Apple:在1997年Apple併購了NeXT之後,也碰到了相同的「核心移植」問題。
編按:關於Apple併購NeXT的前因,請參閱本專欄前篇〈「我來了,Jobs卻走了」〉
https://tuna.press/?p=1018
當時Jobs的手下,有著一群像是Avie Tevanian、Bertrand Serlet、Scott Forstall這類真正的電腦天才;但他們仍然花了整整四年時間,才重新打造出以Unix/NeXTSTEP系統為基礎的全新Mac OS X。
Apple的自有處理器
正當我們忙著設計各種短程和中程的Mac產品改進方案時,Apple工程師Sam Holland提出了一個真正「長程」的主意:由Apple自己來開發一顆全新的四核心處理器,一次超越緩慢進步的Intel和Motorola產品,讓未來的Mac一躍成為個人電腦中的龍頭大哥。
為了在設計過程中模擬這顆代號稱為「Atlas」的新處理器,我們買了一部Cray超級電腦、並且選擇了AT&T Microelectronics公司作為開發夥伴。這家AT&T並不是廣為人知的手機電信商,而是一家成就非凡的科技公司。
AT&T Microelectronics旗下著名的「貝爾實驗室」,擁有Arno Penzias、朱棣文等諾貝爾獎得主,以及族繁不及備載的一長串重要發明與專利,包括電晶體、行動電話、C語言、Unix作業系統、原始的非阻斷式電話交換機設計等等。
雖然這個開發四核心處理器的計畫沒有開花結果,但卻證明了Apple持續掌握自家硬體設計的堅持。
同樣的堅持,則實現在Jobs日後併購了Palo Alto Semiconductor公司(簡稱「P. A. Semi」)、並且真的開發出了iPhone和iPad使用的Ax系列處理器上。時至今日,Ax處理器已經是業界公認為最傑出的同類產品之一。
另外值得一提的是,Apple與AT&T Microelectronics的合作關係,也延續到日後全世界第一部PDA、也就是「Newton」的誕生,更影響了另外一家公司的硬體;至於是哪一家,則容我賣個關子,之後再談。
我們做的這些中短期改善,後來也確實將Mac產品線拉出了泥淖。在下一回中,筆者將會繼續談到上任新職之後,在企業文化上和政治上做得最好、以及做得最糟的決定。