近期,華為鴻蒙操作系統(tǒng)成為業(yè)內(nèi)關(guān)注焦點,。
什么是操作系統(tǒng),?直接給出定義過于枯燥,在此以事例來說明——
在移動互聯(lián)網(wǎng)時代,,應(yīng)用最廣泛的兩大操作系統(tǒng)為:安卓操作系統(tǒng)和蘋果操作系統(tǒng),。如果做一個較為直白的比喻的話,操作系統(tǒng)好比人所具有的基本功能,,比如吃喝拉撒睡,,應(yīng)用軟件好比是人所具備的各種高級能力,如唱歌,、跳舞,、彈鋼琴等,而硬件設(shè)備則可以直接看作人的身體部件,。
我們回顧操作系統(tǒng)的發(fā)展歷史發(fā)現(xiàn),,操作系統(tǒng)已經(jīng)發(fā)展了近半個世紀(jì),其覆蓋的范圍包括:個人電腦端操作系統(tǒng),、工業(yè)應(yīng)用操作系統(tǒng)以及移動端操作系統(tǒng),。
其中,個人電腦端操作系統(tǒng)包括我們熟知和常用的微軟Windows操作系統(tǒng),、蘋果Mac操作系統(tǒng)以及門檻較高的Linux開源操作系統(tǒng),。
移動操作系統(tǒng)目前是安卓和蘋果操作系統(tǒng)的二分天下。
至于工業(yè)操作系統(tǒng),,由于距離普通大眾甚遠,,在此不做分析。本篇文章重點回顧一下個人電腦端操作系統(tǒng)的發(fā)展歷程,。
現(xiàn)代所有操作系統(tǒng)的鼻祖可追溯到美國AT&T公司和貝爾實驗室等共同開發(fā)的MULTICS(多路信息計算系統(tǒng)),。自那開始,整個操作系統(tǒng)的演化可分成以下三個階段:
(1)Unix初始系統(tǒng)誕生,。此時的操作系統(tǒng)主要面向?qū)I(yè)人士,,無可視化界面,非專業(yè)人士不可用,。
(2)可視化操作系統(tǒng)演進,。以蘋果 Mac、微軟Windows為代表的可視化操作系統(tǒng)誕生,,降低了使用者門檻,。
(3)開源Linux誕生與演進。全世界軟件人員合力開發(fā)的免費開源操作系統(tǒng)的誕生和長足發(fā)展。
下面,,我們以操作系統(tǒng)在這三個階段的發(fā)展做為主線,,來大致回顧一下電腦端操作系統(tǒng)的發(fā)展歷程。
Unix初始系統(tǒng)誕生
計算機操作系統(tǒng)的鼻祖來自MULTICS(多路信息計算系統(tǒng)),,我們在這里簡稱為M系統(tǒng),。
M系統(tǒng)是1964年由貝爾實驗室、麻省理工學(xué)院及美國通用電氣公司共同參與研發(fā)的,,其目的是開發(fā)出一套安裝在大型主機上多人多工的操作系統(tǒng),。因為在當(dāng)時,計算機一次只能接受一個任務(wù),,多人的任務(wù)需要排隊執(zhí)行。
后來,,原M系統(tǒng)設(shè)計成員Ken Thompson(肯·湯普森)因為無聊,,想把一套名為“太空旅游”的游戲移植到他們實驗室的一臺機器上而開發(fā)了一套軟件,該套軟件參考M系統(tǒng)的思路設(shè)計,,但是功能目的單一,,實驗室的人戲稱此軟件為Unics(單路信息計算系統(tǒng))。
由于當(dāng)時的Unics,,每次移植到一個新的機器上,,都需要重復(fù)在機器上處理,且對不同的機器設(shè)備,,需要額外的編程處理,。對于了解計算機的人來講,就是驅(qū)動都要自己寫,,自己配,。那個時候,系統(tǒng)的傳播,,受限于硬件和使用者的能力,,只能做到極少部分人來使用。
1971年,,肯·湯普森 和DennisRitchie(丹尼斯·里奇)為了使當(dāng)時的Unics具有更好的移植性,、適用于不同的硬件設(shè)施,創(chuàng)造了C語言,。
他們于1973年,,以C語言重新改寫與編譯Unics的核心, 并正式命名為Unix,,形成Unix的初代版本,。該版本由于使用在當(dāng)時看來是高級語言的C來改寫,減輕了對底層硬件依賴的問題,從而可以廣泛地在各種機器上使用,。
初代的Unix采用了200多條程序命令,,雖然內(nèi)核很小,但是功能極為精簡強悍,。當(dāng)時傳統(tǒng)需要用100行到1000行代碼的程序,,用Unix不超過10條命令就可解決。因為它的極高效率,,使得它在AT&T公司內(nèi)得以瘋狂快速地傳播,。對軟件編程不了解的人可以設(shè)想一下,本來要一天才能做完的工作,,用當(dāng)時的Unix幾分鐘就搞定了全天的工作,,這種神器能不快速傳播嗎?
計算機軟件的發(fā)展歷程就是一個持續(xù)優(yōu)化,,提升效率的過程,。Unics的發(fā)明是為了將復(fù)雜的任務(wù)簡單化處理。同時,,為了將軟件和硬件的關(guān)聯(lián)處理實現(xiàn)簡化而重新創(chuàng)建了一個新的語言(C語言),,從而實現(xiàn)軟件和硬件的分離,為現(xiàn)代操作系統(tǒng)(Unix)的發(fā)展打下了堅實的基礎(chǔ),。
需要指出的是,,當(dāng)時的Unix屬于美國AT&T公司下的貝爾實驗室,但該公司和學(xué)術(shù)界合作開發(fā)(加州伯克利大學(xué)),,從而快速將其在各大高校傳開,。隨后在1977年,伯克利大學(xué)的Bill Joy在取得了Unix的核心原始碼后,,著手修改成適合自己機器的版本,, 同時增加了很多功能軟件與編譯工具,最終將它命名為Berkeley Software Distribution (簡稱BSD),。這個BSD是Unix很重要的一個分支,,蘋果的操作系統(tǒng)實際源自此分支。
1979年,,AT&T公司出于商業(yè)的考量,,將Unix的版權(quán)收了回去。因此,,AT&T在1979年發(fā)行的第七版Unix中,,特別提到了 “不可對學(xué)生提供原始碼”的嚴格限制。 這導(dǎo)致后來學(xué)術(shù)界自力更生,,Andrew Tanenbaum(安德魯·塔能鮑姆)教授參照Unix的功能,,寫了一個Minix系統(tǒng),用于教授學(xué)生操作系統(tǒng)。該系統(tǒng)在1986年完成并發(fā)布,,并于次年發(fā)布了相關(guān)書籍,。這是后來大名鼎鼎的Linus Torvalds(林納斯·托瓦茲) 能夠得以構(gòu)建Linux初代系統(tǒng)的基礎(chǔ)。
可視化操作系統(tǒng)演進
在1984年以前,,所有的操作系統(tǒng)都是基于企業(yè)的大型機或高??蒲袡C構(gòu)來設(shè)計和使用的,還沒有普及到普通人能用的地步,。
當(dāng)時,,大部分的計算機系統(tǒng)都是基于命令行終端,沒有圖形化的操作界面,。這樣的操作系統(tǒng)只被極少部分的高級專業(yè)人員和學(xué)術(shù)界的老師,、學(xué)生使用。等到了1984年,,一切都發(fā)生了變化,。
1984年前后,操作系統(tǒng)的發(fā)展,,發(fā)生了哪些變化呢?
1. VisiCorp的第一款可視化操作系統(tǒng)Visi On 發(fā)布,;
2. 蘋果的第一款可視化操作系統(tǒng)Mac OS System 1.0發(fā)布,;
3. 微軟推出Windows 1.0 (1985年);
4. 日本NEC公司宣布基于ITRON/86規(guī)范,,第一個實現(xiàn)了ITRON操作系統(tǒng),。
幾乎不約而同的,世界上幾個重要的操作系統(tǒng)都在這個時間段內(nèi)發(fā)布了基于操作系統(tǒng)的商用版本,,且都是圖形化界面,。而這四個操作系統(tǒng)近40年的演進,幾乎影響了我們現(xiàn)代生活的方方面面,。
VisiCorp公司的操作系統(tǒng)專為大型企業(yè)設(shè)計和使用,,普通人無從得知其演進歷程。我們這里也不贅述,。
蘋果的Mac OS 實際來源于Unix(free BSD版本),,是Unix陣營向普通消費者進軍的主力,圖形化的界面和應(yīng)用程序,,降低了系統(tǒng)和機器的使用門檻,。
微軟之前一直使用MS-Dos命令行的系統(tǒng),在看到蘋果的可視化界面后,,馬上開發(fā)出Windows系統(tǒng),,共同搶占普通消費者市場,由此也導(dǎo)致了蘋果和微軟兩大公司長達30多年相恨相殺的爭斗。
ITRON和日本的精密機械工業(yè)相結(jié)合,,使日本在數(shù)據(jù)系統(tǒng),、工業(yè)機器人、辦公機器方面處于世界領(lǐng)先地位,。例如日本的本田汽車中的引擎控制系統(tǒng)就是基于ITron的,。
開源Linux誕生與演進
從上世紀(jì)80年代中后期開始,大量的基于可視化操作界面的系統(tǒng)問世后,,操作系統(tǒng)真正普及開來,。
不過,可視化的操作系統(tǒng)是直接裝在機器上的,,它在降低了用戶使用門檻的同時,,也封閉了內(nèi)在復(fù)雜的軟件設(shè)計。這對于具有駭客精神的學(xué)院派老師,、學(xué)生來講,,難以看到其被隱藏的具體設(shè)計。由此,,基于開源的操作系統(tǒng)Linux出現(xiàn)了,。
1991年,在赫爾辛基上大學(xué)的林納斯·托瓦茲,,參照Unix和Minix,,重寫了一個初始的Linux系統(tǒng),并于10月5日發(fā)布了第一版0.01版,。
1993年,,大約有100余名程序員參與了Linux內(nèi)核代碼編寫/修改工作,其中核心組由5人組成,,此時Linux 0.99的代碼大約有十萬行,,用戶大約有10萬左右。
到2019年,,Linux 最新內(nèi)核發(fā)布,,此內(nèi)核有大約2500萬行代碼。
有別于Unix的閉源(代碼不可獲得),,Linux系統(tǒng)遵循開源協(xié)議,,意味著任何人都可以獲取和編輯代碼,進行修改,,也因此,,Linux獲得了極大的關(guān)注和應(yīng)用推廣。由于全世界系統(tǒng)愛好者,、使用者的參與,,到Linux內(nèi)核4.9.2版本時,,Linux內(nèi)核源代碼量超過1800萬行(目前最新版本超過2500萬行)。
我們通過微軟的Windows系統(tǒng)研發(fā)對比,,來評估這些代碼的研發(fā)投入,。微軟的Windows Vista 大約5000萬行代碼, 其研發(fā)投入超過65億美元,。幾千萬行代碼的時間投入是個什么概念呢,?
以國產(chǎn)的金山辦公軟件WPS為例, WPS的代碼量約150萬行,,開發(fā)耗時3年,。從這個研發(fā)成本角度看, 我們的系統(tǒng)采取完全自研的方式,,不如直接擁抱Linux開源社區(qū),,畢竟,站在巨人的肩膀上更有效,。
這時候,,讀者朋友們可能會好奇地問一下,當(dāng)前市場上主流的系統(tǒng)占比分布是怎樣的,?下圖給出了答案:
Windows系統(tǒng)仍然是市場的主流,。雖然Linux的發(fā)展歷程很振奮人心,但是市場上的占有率實際上只有1.61%(如果將谷歌的Chrome OS也看作Linux的一部分,,則合起來是2.78%),。
那微軟構(gòu)建這個占據(jù)市場主流的操作系統(tǒng)付出了多大代價呢?
下圖展示了微軟公司從2002年到2018年的研發(fā)費用,。需要說明的是,,微軟的研發(fā)包括三部分:操作系統(tǒng)的開發(fā),、配套該操作系統(tǒng)的各種應(yīng)用,、驅(qū)動等圍繞系統(tǒng)的生態(tài)圈建設(shè)費用。
其中,,2018年的花費超過147億美元,,折合人民幣約1020億。
另外,,需要指出的是,,微軟的Windows系統(tǒng)在占據(jù)主要市場份額的情況下,每年仍然投入超過千億人民幣的研發(fā)費用,,這也為市面上的系統(tǒng)競爭設(shè)置了超高門檻,。
中國力量的崛起
當(dāng)前開源社區(qū),中國力量又是怎樣一個現(xiàn)狀呢,?
首先,,早在1999年7月,,幾個年輕的創(chuàng)業(yè)者做出第一個在framebuffer(Linux為顯示設(shè)備提供的一個接口)上進行漢化的中文版本藍點Linux(Bluepoint Linux)。不過,,因為沒有堅持在操作系統(tǒng)方向進行持續(xù)深耕,,藍點公司的Linux系統(tǒng)最終消亡。除此之外還有如紅旗Linux(誕生于1999年8月),,中軟Linux版本(發(fā)布于1999年9月),。但是因為在使用體驗上不如Windows,沒有市場的支持,,最終沒有成熟強大起來,。
不過,隨著我國龐大IT從業(yè)者的崛起,,情況有了根本性變化,。
在此以Linux5.1內(nèi)核貢獻為例:
我們拉取了Linux內(nèi)核貢獻度超過1%的國家統(tǒng)計數(shù)據(jù),發(fā)現(xiàn):美國第一,,中國第二(注:第一名未知范疇,,不作為真實有效國家)。
以公司為維度來看,,中國的華為公司對Linux的貢獻度排在第三位(注: 第一名屬于未知范疇,,不算有效公司名,其排序參見下圖),。
據(jù)財報顯示,,華為在2018年的研發(fā)投入也超過了千億人民幣(1015億)。由此可見,,華為面對谷歌的系統(tǒng)封殺,,是有底氣的。
從另外一個角度看,, 我們的企業(yè)也有很長的路要走,,希望能有更多的企業(yè)榜上有名,只有那樣,,我們的自主操作系統(tǒng)才算是穩(wěn)了,。
華為鴻蒙系統(tǒng)的誕生
前面我們提到日本在1984年提出了Tron系統(tǒng)規(guī)范,目的是創(chuàng)作出一個開源的的,、可用的操作系統(tǒng),,從而減少對美國Windows系統(tǒng)的依賴。Tron系統(tǒng)原型機于1987年完成,,但是該系統(tǒng)沒有像預(yù)想的那樣成為像Windows一樣的替代品,。
日本Tron操作系統(tǒng)的發(fā)展受到美國政府的打壓,導(dǎo)致其沒有在人機交互的場景上繼續(xù)發(fā)展,。
也許你會問:日本的Tron操作系統(tǒng)為什么被打壓呢,?
要了解這個根源,,首先我們要了解另外一個基礎(chǔ):芯片。
我們知道,,操作系統(tǒng)好比是人的靈魂,,芯片好比大腦。軟件和硬件結(jié)合才能產(chǎn)生真正的生產(chǎn)力,。
而日本在80年代的時候,,“芯片產(chǎn)業(yè)正處于高峰時期,占據(jù)全球近80%的DRAM(俗稱電腦內(nèi)存)份額,,硅谷的英特爾,、AMD等科技創(chuàng)業(yè)公司在半導(dǎo)體存儲領(lǐng)域,被日本人追著打,,然后被反超,,被驅(qū)離王座,半導(dǎo)體芯片領(lǐng)域(當(dāng)時主要是半導(dǎo)體存儲占據(jù)主流)成為日本企業(yè)后花園,?!保ㄕ浴澳цF的世界”的《30多年前,日本是如何輸?shù)粜酒瑧?zhàn)爭》)
日本的芯片實力已經(jīng)開始碾壓以美國為首的西方世界了,,這個時候如果軟件也取得突破性進展,,那西方世界的科技市場將面臨全面碾壓。日本彼時提出的Tron系統(tǒng),,對美國來講是完全不可接受的,,也因此在美國對日本實施的超級301法案中明確要求,不允許Tron系統(tǒng)安裝在學(xué)校中,。因為,,它很有可能帶來另外一個版本的Unix發(fā)展史。
現(xiàn)在來看,,美國對日本芯片和軟件兩方面的打壓,,是不是和當(dāng)前華為被禁止使用美國芯片、軟件是一樣的套路呢,?
我想,,這也是華為公司未雨綢繆地布局鴻蒙系統(tǒng)開發(fā)的主因,。
單純的操作系統(tǒng)技術(shù),,相信國內(nèi)是有能力了解并吃透的。但是如何在開辟新系統(tǒng)的同時,,又能持續(xù)保住曾經(jīng)的消費市場,,才是考驗公司能力的地方。這一點,,華為的策略相當(dāng)讓人驚艷,。
華為是怎么應(yīng)對的呢,?
華為的系統(tǒng)變革讓普通用戶無感知,因此不會影響到用戶對系統(tǒng)的使用體驗,。華為的EMUI系統(tǒng)的開發(fā)和迭代都是經(jīng)過多年的深耕,,將安卓系統(tǒng)進行深度的解耦合,碎片化替換,,完成系統(tǒng)的優(yōu)化和逐步升級,。
例如,華為貢獻給安卓開源社區(qū)的EROFS文件系統(tǒng),,就是其中的一部分,。華為的系統(tǒng)類似采取了飛行過程中換零件的策略,讓用戶在無感知的情況下,,在每一次的升級過程中替換一個優(yōu)化模塊,,而這些模塊都是鴻蒙系統(tǒng)的一部分經(jīng)驗總結(jié)。
在這里,,也不得不提一下華為的方舟編譯器,,方舟編譯器對于普通人來說也就是個編譯工具,但實際上它對一個新系統(tǒng)是至關(guān)重要的,。一個操作系統(tǒng)是否健壯,,要看其對底層硬件的利用程度。
拿汽車來比喻,,系統(tǒng)構(gòu)建好比是汽車引擎的構(gòu)建,,編譯器好比是制作汽油的設(shè)備。好的編譯器好比能直接生產(chǎn)出98號汽油,,從而讓你的機器快到飛起來,。
編譯器能否設(shè)計好,首先就要考量你對手機硬件的理解程度,。從這個角度看,,華為在系統(tǒng)構(gòu)建層面是有信心的。然而,,僅有這些還是不夠的,。華為的鴻蒙系統(tǒng)如何能流暢的兼容安卓生態(tài)圈,才是需要深思的地方,。
和30多年前相比,,中國和日本的境遇雖然相似,但是市場,、外部環(huán)境卻大不相同,,讓我們對后面鴻蒙系統(tǒng)的發(fā)展拭目以待。
文 | 鄭清正