近期,華為鴻蒙操作系統(tǒng)成為業(yè)內(nèi)關(guān)注焦點(diǎ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),由于距離普通大眾甚遠(yuǎn),在此不做分析。本篇文章重點(diǎn)回顧一下個人電腦端操作系統(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)演進(jìn)。以蘋果 Mac、微軟Windows為代表的可視化操作系統(tǒng)誕生,降低了使用者門檻。
(3)開源Linux誕生與演進(jìn)。全世界軟件人員合力開發(fā)的免費(fèi)開源操作系統(tǒng)的誕生和長足發(fā)展。
下面,我們以操作系統(tǒng)在這三個階段的發(fā)展做為主線,來大致回顧一下電腦端操作系統(tǒng)的發(fā)展歷程。
Unix初始系統(tǒng)誕生
計算機(jī)操作系統(tǒng)的鼻祖來自MULTICS(多路信息計算系統(tǒng)),我們在這里簡稱為M系統(tǒng)。
M系統(tǒng)是1964年由貝爾實驗室、麻省理工學(xué)院及美國通用電氣公司共同參與研發(fā)的,其目的是開發(fā)出一套安裝在大型主機(jī)上多人多工的操作系統(tǒng)。因為在當(dāng)時,計算機(jī)一次只能接受一個任務(wù),多人的任務(wù)需要排隊執(zhí)行。
后來,原M系統(tǒng)設(shè)計成員Ken Thompson(肯·湯普森)因為無聊,想把一套名為“太空旅游”的游戲移植到他們實驗室的一臺機(jī)器上而開發(fā)了一套軟件,該套軟件參考M系統(tǒng)的思路設(shè)計,但是功能目的單一,實驗室的人戲稱此軟件為Unics(單路信息計算系統(tǒng))。
由于當(dāng)時的Unics,每次移植到一個新的機(jī)器上,都需要重復(fù)在機(jī)器上處理,且對不同的機(jī)器設(shè)備,需要額外的編程處理。對于了解計算機(jī)的人來講,就是驅(qū)動都要自己寫,自己配。那個時候,系統(tǒng)的傳播,受限于硬件和使用者的能力,只能做到極少部分人來使用。
1971年,肯·湯普森 和DennisRitchie(丹尼斯·里奇)為了使當(dāng)時的Unics具有更好的移植性、適用于不同的硬件設(shè)施,創(chuàng)造了C語言。
他們于1973年,以C語言重新改寫與編譯Unics的核心, 并正式命名為Unix,形成Unix的初代版本。該版本由于使用在當(dāng)時看來是高級語言的C來改寫,減輕了對底層硬件依賴的問題,從而可以廣泛地在各種機(jī)器上使用。
初代的Unix采用了200多條程序命令,雖然內(nèi)核很小,但是功能極為精簡強(qiáng)悍。當(dāng)時傳統(tǒng)需要用100行到1000行代碼的程序,用Unix不超過10條命令就可解決。因為它的極高效率,使得它在AT&T公司內(nèi)得以瘋狂快速地傳播。對軟件編程不了解的人可以設(shè)想一下,本來要一天才能做完的工作,用當(dāng)時的Unix幾分鐘就搞定了全天的工作,這種神器能不快速傳播嗎?
計算機(jī)軟件的發(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的核心原始碼后,著手修改成適合自己機(jī)器的版本, 同時增加了很多功能軟件與編譯工具,最終將它命名為Berkeley Software Distribution (簡稱BSD)。這個BSD是Unix很重要的一個分支,蘋果的操作系統(tǒng)實際源自此分支。
1979年,AT&T公司出于商業(yè)的考量,將Unix的版權(quán)收了回去。因此,AT&T在1979年發(fā)行的第七版Unix中,特別提到了 “不可對學(xué)生提供原始碼”的嚴(yán)格限制。 這導(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)演進(jìn)
在1984年以前,所有的操作系統(tǒng)都是基于企業(yè)的大型機(jī)或高校科研機(jī)構(gòu)來設(shè)計和使用的,還沒有普及到普通人能用的地步。
當(dāng)時,大部分的計算機(jī)系統(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年的演進(jìn),幾乎影響了我們現(xiàn)代生活的方方面面。
VisiCorp公司的操作系統(tǒng)專為大型企業(yè)設(shè)計和使用,普通人無從得知其演進(jìn)歷程。我們這里也不贅述。
蘋果的Mac OS 實際來源于Unix(free BSD版本),是Unix陣營向普通消費(fèi)者進(jìn)軍的主力,圖形化的界面和應(yīng)用程序,降低了系統(tǒng)和機(jī)器的使用門檻。
微軟之前一直使用MS-Dos命令行的系統(tǒng),在看到蘋果的可視化界面后,馬上開發(fā)出Windows系統(tǒng),共同搶占普通消費(fèi)者市場,由此也導(dǎo)致了蘋果和微軟兩大公司長達(dá)30多年相恨相殺的爭斗。
ITRON和日本的精密機(jī)械工業(yè)相結(jié)合,使日本在數(shù)據(jù)系統(tǒng)、工業(yè)機(jī)器人、辦公機(jī)器方面處于世界領(lǐng)先地位。例如日本的本田汽車中的引擎控制系統(tǒng)就是基于ITron的。
開源Linux誕生與演進(jìn)
從上世紀(jì)80年代中后期開始,大量的基于可視化操作界面的系統(tǒng)問世后,操作系統(tǒng)真正普及開來。
不過,可視化的操作系統(tǒng)是直接裝在機(jī)器上的,它在降低了用戶使用門檻的同時,也封閉了內(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é)議,意味著任何人都可以獲取和編輯代碼,進(jìn)行修改,也因此,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èi)用。需要說明的是,微軟的研發(fā)包括三部分:操作系統(tǒng)的開發(fā)、配套該操作系統(tǒng)的各種應(yīng)用、驅(qū)動等圍繞系統(tǒng)的生態(tài)圈建設(shè)費(fèi)用。
其中,2018年的花費(fèi)超過147億美元,折合人民幣約1020億。
另外,需要指出的是,微軟的Windows系統(tǒng)在占據(jù)主要市場份額的情況下,每年仍然投入超過千億人民幣的研發(fā)費(fèi)用,這也為市面上的系統(tǒng)競爭設(shè)置了超高門檻。
中國力量的崛起
當(dāng)前開源社區(qū),中國力量又是怎樣一個現(xiàn)狀呢?
首先,早在1999年7月,幾個年輕的創(chuàng)業(yè)者做出第一個在framebuffer(Linux為顯示設(shè)備提供的一個接口)上進(jìn)行漢化的中文版本藍(lán)點(diǎn)Linux(Bluepoint Linux)。不過,因為沒有堅持在操作系統(tǒng)方向進(jìn)行持續(xù)深耕,藍(lán)點(diǎn)公司的Linux系統(tǒng)最終消亡。除此之外還有如紅旗Linux(誕生于1999年8月),中軟Linux版本(發(fā)布于1999年9月)。但是因為在使用體驗上不如Windows,沒有市場的支持,最終沒有成熟強(qiáng)大起來。
不過,隨著我國龐大IT從業(yè)者的崛起,情況有了根本性變化。
在此以Linux5.1內(nèi)核貢獻(xiàn)為例:
我們拉取了Linux內(nèi)核貢獻(xiàn)度超過1%的國家統(tǒng)計數(shù)據(jù),發(fā)現(xiàn):美國第一,中國第二(注:第一名未知范疇,不作為真實有效國家)。
以公司為維度來看,中國的華為公司對Linux的貢獻(xiàn)度排在第三位(注: 第一名屬于未知范疇,不算有效公司名,其排序參見下圖)。
據(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)原型機(jī)于1987年完成,但是該系統(tǒng)沒有像預(yù)想的那樣成為像Windows一樣的替代品。
日本Tron操作系統(tǒng)的發(fā)展受到美國政府的打壓,導(dǎo)致其沒有在人機(jī)交互的場景上繼續(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)開始碾壓以美國為首的西方世界了,這個時候如果軟件也取得突破性進(jìn)展,那西方世界的科技市場將面臨全面碾壓。日本彼時提出的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)的消費(fèi)市場,才是考驗公司能力的地方。這一點(diǎn),華為的策略相當(dāng)讓人驚艷。
華為是怎么應(yīng)對的呢?
華為的系統(tǒng)變革讓普通用戶無感知,因此不會影響到用戶對系統(tǒng)的使用體驗。華為的EMUI系統(tǒng)的開發(fā)和迭代都是經(jīng)過多年的深耕,將安卓系統(tǒng)進(jìn)行深度的解耦合,碎片化替換,完成系統(tǒng)的優(yōu)化和逐步升級。
例如,華為貢獻(xiàn)給安卓開源社區(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號汽油,從而讓你的機(jī)器快到飛起來。
編譯器能否設(shè)計好,首先就要考量你對手機(jī)硬件的理解程度。從這個角度看,華為在系統(tǒng)構(gòu)建層面是有信心的。然而,僅有這些還是不夠的。華為的鴻蒙系統(tǒng)如何能流暢的兼容安卓生態(tài)圈,才是需要深思的地方。
和30多年前相比,中國和日本的境遇雖然相似,但是市場、外部環(huán)境卻大不相同,讓我們對后面鴻蒙系統(tǒng)的發(fā)展拭目以待。
文 | 鄭清正