智慧手機雖說是行動電話,但我們完全可以將其作為小型化的電腦來思考。這樣一來也能夠顯示出智慧手機OS的高效能。我們首先一起來回顧下智慧手機OS的歷史。 其實在很早之前就已經有這樣的想法,即在像智慧手機這樣可以便利攜帶的小型電腦終端上執行OS。

OS的黎明期

大約20年前左右,在美國的拉斯維加斯舉辦的世界最大的電腦相關產品展示會“COMDEX”上,日本索尼公司開發的當時稱之為“MagicjLink”的攜帶型資訊終端吸引了很多的關注(圖1)。這款終端並不僅僅是一款用來記筆記和日程規劃的電子帳本,當時已經具備了通訊功能還可以收發郵件和搜尋資訊。

一篇文章讀懂iOS和Android的歷史起源

圖1:圖片上部的是MagidLink裝置,下面部分為鍵盤。液晶顯示也是單色的。

MagicLink是索尼公司的產品,但終端的本質是能夠在這臺終端上執行的OS。這就是由美國的蘋果公司的工程師們開發出來的稱之為“MagicCap”的OS(圖2)。因為在那個年代“通過OS商業交易是件大生意”,所以有各種各樣的OS被髮布。眾所周知的Windows 95也是在那一年釋出的。

 

一篇文章讀懂iOS和Android的歷史起源

圖2:MagicCap OS的顯示畫面。起動終端後就會進入圖片所示的介面。包括電話和記帳以及筆記功能。用筆觸控就可以啟動各個APP。其中的“In和Out”代表的是郵箱。

這款OS是由蘋果的工程師開發,日本的製造商負責終端生產。

蘋果的工程師只負責開發了OS,硬體部份是由日本的製造商等外部公司開發出來的。蘋果公司還因此設立了“General Magic”這樣的一家子公司。這家公司主要負責推進MagicCap的開發和為日本的製造商提供幫助。索尼公司和現在的松下以及三菱等公司以MagicCap終端的開發為名製造出了最初的一款產品即索尼公司的MagicLink。

蘋果公司的工程師開發的MagicCap作為“移動OS”是具有劃時代意義的。但是MagicCap最終卻以失敗告終。因為這款終端根本賣不出去。硬體的處理能力和重量以及價格等等在當時都成為了問題。要知道那個時代網路還不是一般人可以使用的。

為MagicCap設想的網路和那個年代即1980年的電腦使用的網路是一樣的。而網路和Windows95的爆發性普及卻是在那之後的一年才開始的。

Android之父

實際上在General Magic公司負責MagicCap開發的工程師中有一位叫作Andy Rubin的年輕人。

這名年輕人在General Magic公司解散一年之後創立了一家面向移動終端的OS開發的創業公司。和General Magic公司一樣,硬體的開發交由外部公司,本公司集中精力於OS的開發。但是和General Magic公司只向自己的合作公司提供OS不同的是,Andy Rubin的公司免費向其它公司提供OS和APP開發環境。

由Andy Rubin創立的公司正是現在的“Android”。後來這家公司被美國的Google公司收購,而Android這一公司名也就只能作為OS的名稱而保留了下來。現在被稱之為Android之父的Andy Rubin在公司被收購之後留在了Google公司並且負責Android業務(現在負責機器人的開發)。

iOS之父

如果說Android之父是MagicCap的開發者Andy Rubin,那麼能稱得上是“iOS之父”的又是誰呢?

實際上蘋果公司在推出MagicCap終端的幾年前就已經銷售一款叫作“Newton”的小型終端。但是遺憾的不論是裝置還是開發環境當時都非常昂貴最終沒有普及開來。

現在的iPhone的OS“iOS”的先祖即不是來自蘋果公司開發出來的Newton也不是來自蘋果子公司開發出的MagicCap,而是另有來源。是蘋果的創始人Steve Jobs。

General Magic公司正在開發MagicCap的時代,作為蘋果公司創始人的Steve Jobs從蘋果公司離開,並且創立了“NeXT Computer”這家公司,並且開發出了一款叫作“NeXT”的高效能電腦。與此同時開發了一款叫作“NeXTSTEP”的OS。

NeXTSTEP是通過叫作“ObjectOriented”的新型方法開發出來的一款OS。NeXTSTEP的APP通過“ Objective-C”這種新的程式語言來開的。 Objective-C不僅可以使APP開發變得更加有樂趣而且效能非常高,是一種具有劃時代意義的程式語言。

雖說從技術上來講是絕佳的,但是結果卻和MagicCap一樣,NeXT電腦最終在商業上也沒有獲得成功。但是NeXT並沒有消失,而是被蘋果公司收購作為蘋果公司的技術而被保留下來。

那個年代的OS

那個年代的電腦不論是Macintosh還是Windows都尚不穩定,使用過程中會突然出現重啟,電腦突然出現問題,軟盤或硬碟出現故障導致資料無法讀寫的情況並不少見。不論是微軟還是蘋果公司都因此傷透腦筋。

故障最大的原因在於OS上的應用的執行結構。當時電腦用的OS還處於比較原始的狀態。在電腦執行的所有軟體只能一個一個地按順序利用CPU。CPU同時只能執行一個程式命令。

你可以想象一下只有一位收銀員的超市的客戶排隊情形。把客人想象為APP和OS,收銀員是CPU就可以很好地理解了。某個應用在執行的時候包括OS在內的其它軟體都得停止,等待CPU空閒下來。

並且當時的OS已經停在收營員的前面了,但是那些不受控制的APP卻停不下來。這些不受控制的APP一直佔用著CPU,導致OS本身不能使用CPU,OS自然也就無法執行。

微軟計劃通過開發一款叫作Windows NT的新型OS來處理這種故障。具體來講就是通過採用“preemptive multitasking”這一結構來使系統達到飛躍性穩定。

簡單來說“preemptive multitasking”就是通過在短時間內讓所有的APP都強制停止,而讓其它的APP執行的一種結構。以剛剛超市的例子來講,“在收銀員前面停留的時間設定為1人10秒,短時間之內立即就可以切換到其它人。”

也就是說在收銀員處需要花1分鐘以上的人必須要在收銀員處按順序排6次以上的隊。這樣一來雖然對於花時間長的人而言變得麻煩了,但是卻不再會因為一個人不遵守規定而出現當機現象了。Windows NT就是採用這樣的一種結構。

另一方面蘋果公司希望通過採用NeXTSTEP的技術來強化Macintosh的OS。NeXTSTEP和Windows NT一樣也採用了“preemptive multitasking”這一技術。而NeXTSTEP是以“UNIX”為基礎開發出來的,而UNIX可以回應“preemptive multitasking”。NeXTSTEP和Windows NT一樣可以穩定地執行正是蘋果公司收購NeXT的原因。就這樣Steve Jobs再次迴歸蘋果公司。

以NeXTSTEP為基礎開發出來的OS叫和“Mac OS X”(圖3)。而APP的開發使用“ Objective-C”這一點也因此保留了下來。而“Mac OS X”也因此作為iPhone的OS的基礎而被採用,這樣一來才產生了“iOS”。

一篇文章讀懂iOS和Android的歷史起源

圖3:iPhone搭載的“iOS”是以Mac OS X為基礎產生出來的。而Mac OS X又是以Jobs創立的NeXT Computer的“NeXTSTEP”為基礎產生的。

現在我們使用iPhone的時候,畫面上能夠看得到的部分,例如“設定”和Home畫面等等都是在Mac OS X的基礎上再次新增進去的,只不過是iPhone的表面的軟體而已。

iOS的本質部分是jobs親自開發的現在仍在延續著的NeXTSTEP和Objective-C。隨著iPhone的普及Objective-C的知名度也變得很高。如果去書店檢視關於程式設計類的書籍的話,一定可以看到很多很多的Objective-C的書籍呈現在那裡。

蘋果子公司的技術人員創造了Android,而離開蘋果公司後的賈伯斯的技術成了iOS的來源基礎。這多少讓人覺得有些諷刺。這也是蘋果一直將安卓列為侵權產品的緣由。蘋果方面表示,Android系統創始人Andy Rubin有關Android系統的理念之一誕生於他供職蘋果期間。另外當時時任谷歌CEO的施密特為蘋果董事會成員,賈伯斯認為安卓系統赤裸裸剽竊蘋果技術。HTC、三星等也都成為了蘋果起訴的物件。

自:快鯉魚