近期,,華為鴻蒙操作系統(tǒng)成為業(yè)內(nèi)關(guān)注焦點,。
什么是操作系統(tǒng)?直接給出定義過于枯燥,,在此以事例來說明——
在移動互聯(lián)網(wǎng)時代,,應用最廣泛的兩大操作系統(tǒng)為:安卓操作系統(tǒng)和蘋果操作系統(tǒng)。如果做一個較為直白的比喻的話,,操作系統(tǒng)好比人所具有的基本功能,,比如吃喝拉撒睡,應用軟件好比是人所具備的各種高級能力,,如唱歌,、跳舞、彈鋼琴等,,而硬件設(shè)備則可以直接看作人的身體部件,。
我們回顧操作系統(tǒng)的發(fā)展歷史發(fā)現(xiàn),操作系統(tǒng)已經(jīng)發(fā)展了近半個世紀,,其覆蓋的范圍包括:個人電腦端操作系統(tǒng),、工業(yè)應用操作系統(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年由貝爾實驗室,、麻省理工學院及美國通用電氣公司共同參與研發(fā)的,其目的是開發(fā)出一套安裝在大型主機上多人多工的操作系統(tǒng),。因為在當時,,計算機一次只能接受一個任務,多人的任務需要排隊執(zhí)行,。
后來,,原M系統(tǒng)設(shè)計成員Ken Thompson(肯·湯普森)因為無聊,想把一套名為“太空旅游”的游戲移植到他們實驗室的一臺機器上而開發(fā)了一套軟件,,該套軟件參考M系統(tǒng)的思路設(shè)計,,但是功能目的單一,實驗室的人戲稱此軟件為Unics(單路信息計算系統(tǒng)),。
由于當時的Unics,,每次移植到一個新的機器上,都需要重復在機器上處理,,且對不同的機器設(shè)備,,需要額外的編程處理。對于了解計算機的人來講,,就是驅(qū)動都要自己寫,,自己配。那個時候,,系統(tǒng)的傳播,,受限于硬件和使用者的能力,只能做到極少部分人來使用,。
1971年,,肯·湯普森 和DennisRitchie(丹尼斯·里奇)為了使當時的Unics具有更好的移植性、適用于不同的硬件設(shè)施,,創(chuàng)造了C語言,。
他們于1973年,以C語言重新改寫與編譯Unics的核心,, 并正式命名為Unix,,形成Unix的初代版本。該版本由于使用在當時看來是高級語言的C來改寫,,減輕了對底層硬件依賴的問題,,從而可以廣泛地在各種機器上使用,。
初代的Unix采用了200多條程序命令,雖然內(nèi)核很小,,但是功能極為精簡強悍,。當時傳統(tǒng)需要用100行到1000行代碼的程序,用Unix不超過10條命令就可解決,。因為它的極高效率,,使得它在AT&T公司內(nèi)得以瘋狂快速地傳播。對軟件編程不了解的人可以設(shè)想一下,,本來要一天才能做完的工作,,用當時的Unix幾分鐘就搞定了全天的工作,這種神器能不快速傳播嗎,?
計算機軟件的發(fā)展歷程就是一個持續(xù)優(yōu)化,,提升效率的過程。Unics的發(fā)明是為了將復雜的任務簡單化處理,。同時,,為了將軟件和硬件的關(guān)聯(lián)處理實現(xiàn)簡化而重新創(chuàng)建了一個新的語言(C語言),從而實現(xiàn)軟件和硬件的分離,,為現(xiàn)代操作系統(tǒng)(Unix)的發(fā)展打下了堅實的基礎(chǔ),。
需要指出的是,當時的Unix屬于美國AT&T公司下的貝爾實驗室,,但該公司和學術(shù)界合作開發(fā)(加州伯克利大學),,從而快速將其在各大高校傳開。隨后在1977年,,伯克利大學的Bill Joy在取得了Unix的核心原始碼后,,著手修改成適合自己機器的版本, 同時增加了很多功能軟件與編譯工具,,最終將它命名為Berkeley Software Distribution (簡稱BSD)。這個BSD是Unix很重要的一個分支,,蘋果的操作系統(tǒng)實際源自此分支,。
1979年,AT&T公司出于商業(yè)的考量,,將Unix的版權(quán)收了回去,。因此,AT&T在1979年發(fā)行的第七版Unix中,,特別提到了 “不可對學生提供原始碼”的嚴格限制,。 這導致后來學術(shù)界自力更生,Andrew Tanenbaum(安德魯·塔能鮑姆)教授參照Unix的功能,,寫了一個Minix系統(tǒng),,用于教授學生操作系統(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è)計和使用的,,還沒有普及到普通人能用的地步。
當時,,大部分的計算機系統(tǒng)都是基于命令行終端,,沒有圖形化的操作界面。這樣的操作系統(tǒng)只被極少部分的高級專業(yè)人員和學術(shù)界的老師,、學生使用,。等到了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陣營向普通消費者進軍的主力,,圖形化的界面和應用程序,,降低了系統(tǒng)和機器的使用門檻。
微軟之前一直使用MS-Dos命令行的系統(tǒng),,在看到蘋果的可視化界面后,,馬上開發(fā)出Windows系統(tǒng),共同搶占普通消費者市場,由此也導致了蘋果和微軟兩大公司長達30多年相恨相殺的爭斗,。
ITRON和日本的精密機械工業(yè)相結(jié)合,,使日本在數(shù)據(jù)系統(tǒng)、工業(yè)機器人,、辦公機器方面處于世界領(lǐng)先地位,。例如日本的本田汽車中的引擎控制系統(tǒng)就是基于ITron的。
開源Linux誕生與演進
從上世紀80年代中后期開始,,大量的基于可視化操作界面的系統(tǒng)問世后,,操作系統(tǒng)真正普及開來。
不過,,可視化的操作系統(tǒng)是直接裝在機器上的,,它在降低了用戶使用門檻的同時,也封閉了內(nèi)在復雜的軟件設(shè)計,。這對于具有駭客精神的學院派老師,、學生來講,難以看到其被隱藏的具體設(shè)計,。由此,,基于開源的操作系統(tǒng)Linux出現(xiàn)了。
1991年,,在赫爾辛基上大學的林納斯·托瓦茲,,參照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)注和應用推廣,。由于全世界系統(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ū),,畢竟,,站在巨人的肩膀上更有效。
這時候,,讀者朋友們可能會好奇地問一下,,當前市場上主流的系統(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)的各種應用、驅(qū)動等圍繞系統(tǒng)的生態(tài)圈建設(shè)費用,。
其中,,2018年的花費超過147億美元,折合人民幣約1020億,。
另外,,需要指出的是,微軟的Windows系統(tǒng)在占據(jù)主要市場份額的情況下,,每年仍然投入超過千億人民幣的研發(fā)費用,,這也為市面上的系統(tǒng)競爭設(shè)置了超高門檻。
中國力量的崛起
當前開源社區(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)沒有像預想的那樣成為像Windows一樣的替代品。
日本Tron操作系統(tǒng)的發(fā)展受到美國政府的打壓,,導致其沒有在人機交互的場景上繼續(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è)公司在半導體存儲領(lǐng)域,,被日本人追著打,然后被反超,,被驅(qū)離王座,,半導體芯片領(lǐng)域(當時主要是半導體存儲占據(jù)主流)成為日本企業(yè)后花園?!保ㄕ浴澳цF的世界”的《30多年前,,日本是如何輸?shù)粜酒瑧?zhàn)爭》)
日本的芯片實力已經(jīng)開始碾壓以美國為首的西方世界了,這個時候如果軟件也取得突破性進展,,那西方世界的科技市場將面臨全面碾壓,。日本彼時提出的Tron系統(tǒng),對美國來講是完全不可接受的,,也因此在美國對日本實施的超級301法案中明確要求,,不允許Tron系統(tǒng)安裝在學校中。因為,,它很有可能帶來另外一個版本的Unix發(fā)展史,。
現(xiàn)在來看,美國對日本芯片和軟件兩方面的打壓,,是不是和當前華為被禁止使用美國芯片,、軟件是一樣的套路呢?
我想,,這也是華為公司未雨綢繆地布局鴻蒙系統(tǒng)開發(fā)的主因,。
單純的操作系統(tǒng)技術(shù),相信國內(nèi)是有能力了解并吃透的,。但是如何在開辟新系統(tǒng)的同時,,又能持續(xù)保住曾經(jī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ā)展拭目以待,。
文 | 鄭清正