每日最新頭條.有趣資訊

世界作業系統發展簡史

近期,華為鴻蒙作業系統成為業內關注焦點。

什麽是作業系統?直接給出定義過於枯燥,在此以事例來說明——

在移動互聯網時代,應用最廣泛的兩大作業系統為:安卓作業系統和蘋果作業系統。如果做一個較為直白的比喻的話,作業系統好比人所具有的基本功能,比如吃喝拉撒睡,應用軟體好比是人所具備的各種高級能力,如唱歌、跳舞、彈鋼琴等,而硬體設備則可以直接看作人的身體部件。

我們回顧作業系統的發展歷史發現,作業系統已經發展了近半個世紀,其覆蓋的範圍包括:個人電腦端作業系統、工業應用作業系統以及移動端作業系統。

其中,個人電腦端作業系統包括我們熟知和常用的微軟Windows作業系統、蘋果Mac作業系統以及門檻較高的Linux開源作業系統。

移動作業系統目前是安卓和蘋果作業系統的二分天下。

至於工業作業系統,由於距離普通大眾甚遠,在此不做分析。本篇文章重點回顧一下個人電腦端作業系統的發展歷程。

現代所有作業系統的鼻祖可追溯到美國AT&T公司和貝爾實驗室等共同開發的MULTICS(多路信息計算系統)。自那開始,整個作業系統的演化可分成以下三個階段:

(1)Unix初始系統誕生。此時的作業系統主要面向專業人士,無可視化界面,非專業人士不可用。

(2)可視化作業系統演進。以蘋果 Mac、微軟Windows為代表的可視化作業系統誕生,降低了使用者門檻。

(3)開源Linux誕生與演進。全世界軟體人員合力開發的免費開源作業系統的誕生和長足發展。

下面,我們以作業系統在這三個階段的發展做為主線,來大致回顧一下電腦端作業系統的發展歷程。

Unix初始系統誕生

計算機作業系統的鼻祖來自MULTICS(多路信息計算系統),我們在這裡簡稱為M系統。

M系統是1964年由貝爾實驗室、麻省理工學院及美國通用電氣公司共同參與研發的,其目的是開發出一套安裝在大型主機上多人多工的作業系統。因為在當時,計算機一次只能接受一個任務,多人的任務需要排隊執行。

後來,原M系統設計成員Ken Thompson(肯·湯普森)因為無聊,想把一套名為“太空旅遊”的遊戲移植到他們實驗室的一台機器上而開發了一套軟體,該套軟體參考M系統的思路設計,但是功能目的單一,實驗室的人戲稱此軟體為Unics(單路信息計算系統)。

由於當時的Unics,每次移植到一個新的機器上,都需要重複在機器上處理,且對不同的機器設備,需要額外的編程處理。對於了解計算機的人來講,就是驅動都要自己寫,自己配。那個時候,系統的傳播,受限於硬體和使用者的能力,只能做到極少部分人來使用。

1971年,肯·湯普森 和DennisRitchie(丹尼斯·裡奇)為了使當時的Unics具有更好的移植性、適用於不同的硬體設施,創造了C語言。

他們於1973年,以C語言重新改寫與編譯Unics的核心, 並正式命名為Unix,形成Unix的初代版本。該版本由於使用在當時看來是高級語言的C來改寫,減輕了對底層硬體依賴的問題,從而可以廣泛地在各種機器上使用。

初代的Unix採用了200多條程序命令,雖然內核很小,但是功能極為精簡強悍。當時傳統需要用100行到1000行代碼的程序,用Unix不超過10條命令就可解決。因為它的極高效率,使得它在AT&T公司內得以瘋狂快速地傳播。對軟體編程不了解的人可以設想一下,本來要一天才能做完的工作,用當時的Unix幾分鐘就搞定了全天的工作,這種神器能不快速傳播嗎?

計算機軟體的發展歷程就是一個持續優化,提升效率的過程。Unics的發明是為了將複雜的任務簡單化處理。同時,為了將軟體和硬體的關聯處理實現簡化而重新創建了一個新的語言(C語言),從而實現軟體和硬體的分離,為現代作業系統(Unix)的發展打下了堅實的基礎。

需要指出的是,當時的Unix屬於美國AT&T公司下的貝爾實驗室,但該公司和學術界合作開發(加州伯克利大學),從而快速將其在各大高校傳開。隨後在1977年,伯克利大學的Bill Joy在取得了Unix的核心原始碼後,著手修改成適合自己機器的版本, 同時增加了很多功能軟體與編譯工具,最終將它命名為Berkeley Software Distribution (簡稱BSD)。這個BSD是Unix很重要的一個分支,蘋果的作業系統實際源自此分支。

1979年,AT&T公司出於商業的考量,將Unix的版權收了回去。因此,AT&T在1979年發行的第七版Unix中,特別提到了 “不可對學生提供原始碼”的嚴格限制。 這導致後來學術界自力更生,Andrew Tanenbaum(安德魯·塔能鮑姆)教授參照Unix的功能,寫了一個Minix系統,用於教授學生作業系統。該系統在1986年完成並發布,並於次年發布了相關書籍。這是後來大名鼎鼎的Linus Torvalds(林納斯·托瓦茲) 能夠得以構建Linux初代系統的基礎。

可視化作業系統演進

在1984年以前,所有的作業系統都是基於企業的大型機或高校科研機構來設計和使用的,還沒有普及到普通人能用的地步。

當時,大部分的計算機系統都是基於命令行終端,沒有圖形化的操作界面。這樣的作業系統只被極少部分的高級專業人員和學術界的老師、學生使用。等到了1984年,一切都發生了變化。

1984年前後,作業系統的發展,發生了哪些變化呢?

1. VisiCorp的第一款可視化作業系統Visi On 發布;

2. 蘋果的第一款可視化作業系統Mac OS System 1.0發布;

3. 微軟推出Windows 1.0 (1985年);

4. 日本NEC公司宣布基於ITRON/86規範,第一個實現了ITRON作業系統。

幾乎不約而同的,世界上幾個重要的作業系統都在這個時間段內發布了基於作業系統的商用版本,且都是圖形化界面。而這四個作業系統近40年的演進,幾乎影響了我們現代生活的方方面面。

VisiCorp公司的作業系統專為大型企業設計和使用,普通人無從得知其演進歷程。我們這裡也不贅述。

蘋果的Mac OS 實際來源於Unix(free BSD版本),是Unix陣營向普通消費者進軍的主力,圖形化的界面和應用程序,降低了系統和機器的使用門檻。

微軟之前一直使用MS-Dos命令行的系統,在看到蘋果的可視化界面後,馬上開發出Windows系統,共同搶佔普通消費者市場,由此也導致了蘋果和微軟兩大公司長達30多年相恨相殺的爭鬥。

ITRON和日本的精密機械工業相結合,使日本在數據系統、工業機器人、辦公機器方面處於世界領先地位。例如日本的本田汽車中的引擎控制系統就是基於ITron的。

開源Linux誕生與演進

從上世紀80年代中後期開始,大量的基於可視化操作界面的系統問世後,作業系統真正普及開來。

不過,可視化的作業系統是直接裝在機器上的,它在降低了用戶使用門檻的同時,也封閉了內在複雜的軟體設計。這對於具有駭客精神的學院派老師、學生來講,難以看到其被隱藏的具體設計。由此,基於開源的作業系統Linux出現了。

1991年,在赫爾辛基上大學的林納斯·托瓦茲,參照Unix和Minix,重寫了一個初始的Linux系統,並於10月5日發布了第一版0.01版。

1993年,大約有100餘名程序員參與了Linux內核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼大約有十萬行,用戶大約有10萬左右。

到2019年,Linux 最新內核發布,此內核有大約2500萬行代碼。

有別於Unix的閉源(代碼不可獲得),Linux系統遵循開源協議,意味著任何人都可以獲取和編輯代碼,進行修改,也因此,Linux獲得了極大的關注和應用推廣。由於全世界系統愛好者、使用者的參與,到Linux內核4.9.2版本時,Linux內核源代碼量超過1800萬行(目前最新版本超過2500萬行)。

我們通過微軟的Windows系統研發對比,來評估這些代碼的研發投入。微軟的Windows Vista 大約5000萬行代碼, 其研發投入超過65億美元。幾千萬行代碼的時間投入是個什麽概念呢?

以國產的金山辦公軟體WPS為例, WPS的代碼量約150萬行,開發耗時3年。從這個研發成本角度看, 我們的系統采取完全自研的方式,不如直接擁抱Linux開源社區,畢竟,站在巨人的肩膀上更有效。

這時候,讀者朋友們可能會好奇地問一下,當前市場上主流的系統佔比分布是怎樣的?下圖給出了答案:

Windows系統仍然是市場的主流。雖然Linux的發展歷程很振奮人心,但是市場上的佔有率實際上只有1.61%(如果將谷歌的Chrome OS也看作Linux的一部分,則合起來是2.78%)。

那微軟構建這個佔據市場主流的作業系統付出了多大代價呢?

下圖展示了微軟公司從2002年到2018年的研發費用。需要說明的是,微軟的研發包括三部分:作業系統的開發、配套該作業系統的各種應用、驅動等圍繞系統的生態圈建設費用。

其中,2018年的花費超過147億美元,折合人民幣約1020億。

另外,需要指出的是,微軟的Windows系統在佔據主要市場份額的情況下,每年仍然投入超過千億人民幣的研發費用,這也為市面上的系統競爭設置了超高門檻。

中國力量的崛起

當前開源社區,中國力量又是怎樣一個現狀呢?

首先,早在1999年7月,幾個年輕的創業者做出第一個在framebuffer(Linux為顯示設備提供的一個接口)上進行漢化的中文版本藍點Linux(Bluepoint Linux)。不過,因為沒有堅持在作業系統方向進行持續深耕,藍點公司的Linux系統最終消亡。除此之外還有如紅旗Linux(誕生於1999年8月),中軟Linux版本(發布於1999年9月)。但是因為在使用體驗上不如Windows,沒有市場的支持,最終沒有成熟強大起來。

不過,隨著我國龐大IT從業者的崛起,情況有了根本性變化。

在此以Linux5.1內核貢獻為例:

我們拉取了Linux內核貢獻度超過1%的國家統計數據,發現:美國第一,中國第二(注:第一名未知範疇,不作為真實有效國家)。

以公司為維度來看,中國的華為公司對Linux的貢獻度排在第三位(注: 第一名屬於未知範疇,不算有效公司名,其排序參見下圖)。

據財報顯示,華為在2018年的研發投入也超過了千億人民幣(1015億)。由此可見,華為面對谷歌的系統封殺,是有底氣的。

從另外一個角度看, 我們的企業也有很長的路要走,希望能有更多的企業榜上有名,只有那樣,我們的自主作業系統才算是穩了。

華為鴻蒙系統的誕生

前面我們提到日本在1984年提出了Tron系統規範,目的是創作出一個開源的的、可用的作業系統,從而減少對美國Windows系統的依賴。Tron系統原型機於1987年完成,但是該系統沒有像預想的那樣成為像Windows一樣的替代品。

日本Tron作業系統的發展受到美國政府的打壓,導致其沒有在人機互動的場景上繼續發展。

也許你會問:日本的Tron作業系統為什麽被打壓呢?

要了解這個根源,首先我們要了解另外一個基礎:芯片。

我們知道,作業系統好比是人的靈魂,芯片好比大腦。軟體和硬體結合才能產生真正的生產力。

而日本在80年代的時候,“芯片產業正處於高峰時期,佔據全球近80%的DRAM(俗稱電腦記憶體)份額,矽谷的英特爾、AMD等科技創業公司在半導體存儲領域,被日本人追著打,然後被反超,被驅離王座,半導體芯片領域(當時主要是半導體存儲佔據主流)成為日本企業後花園。”(摘自“魔鐵的世界”的《30多年前,日本是如何輸掉芯片戰爭》)

日本的芯片實力已經開始碾壓以美國為首的西方世界了,這個時候如果軟體也取得突破性進展,那西方世界的科技市場將面臨全面碾壓。日本彼時提出的Tron系統,對美國來講是完全不可接受的,也因此在美國對日本實施的超級301法案中明確要求,不允許Tron系統安裝在學校中。因為,它很有可能帶來另外一個版本的Unix發展史。

現在來看,美國對日本芯片和軟體兩方面的打壓,是不是和當前華為被禁止使用美國芯片、軟體是一樣的套路呢?

我想,這也是華為公司未雨綢繆地布局鴻蒙系統開發的主因。

單純的作業系統技術,相信國內是有能力了解並吃透的。但是如何在開辟新系統的同時,又能持續保住曾經的消費市場,才是考驗公司能力的地方。這一點,華為的策略相當讓人驚豔。

華為是怎麽應對的呢?

華為的系統變革讓普通用戶無感知,因此不會影響到用戶對系統的使用體驗。華為的EMUI系統的開發和迭代都是經過多年的深耕,將安卓系統進行深度的解耦合,碎片化替換,完成系統的優化和逐步升級。

例如,華為貢獻給安卓開源社區的EROFS文件系統,就是其中的一部分。華為的系統類似采取了飛行過程中換零件的策略,讓用戶在無感知的情況下,在每一次的升級過程中替換一個優化模塊,而這些模塊都是鴻蒙系統的一部分經驗總結。

在這裡,也不得不提一下華為的方舟編譯器,方舟編譯器對於普通人來說也就是個編譯工具,但實際上它對一個新系統是至關重要的。一個作業系統是否健壯,要看其對底層硬體的利用程度。

拿汽車來比喻,系統構建好比是汽車引擎的構建,編譯器好比是製作汽油的設備。好的編譯器好比能直接生產出98號汽油,從而讓你的機器快到飛起來。

編譯器能否設計好,首先就要考量你對手機硬體的理解程度。從這個角度看,華為在系統構建層面是有信心的。然而,僅有這些還是不夠的。華為的鴻蒙系統如何能流暢的兼容安卓生態圈,才是需要深思的地方。

和30多年前相比,中國和日本的境遇雖然相似,但是市場、外部環境卻大不相同,讓我們對後面鴻蒙系統的發展拭目以待。

本文由蘇寧財富資訊原創,作者為蘇寧金融研究院數據風控實驗室首席研究員鄭清正。

獲得更多的PTT最新消息
按讚加入粉絲團