對國產操作系統發展的一些思考

跟行業內的朋友交流,對國產操作系統的開發和推廣,有一些個人的觀點,分享出來,歡迎朋友們批評和討論。

以下是我個人的一些思考,基於個人對行業的粗淺理解,以及個人在推動物聯網操作系統時遇到的問題的總結。觀點不一定準確,有的甚至有些偏激,目的在於交流碰撞,“拋磚引玉”,以形成更好的思路,把我國的基礎軟件事業做得更好。

物聯網是一個絕好的機會點

個人PC電腦,智能手機,已經形成穩固的壟斷局面,並形成了相對完善的產業鏈和生態系統,按照Gartner的Hype Cycle技術曲線,個人電腦和智能手機已進入穩定成熟的產品化應用階段,切入的成本會非常高,而且成功的概率非常低,因此不建議發展該領域的操作系統,而是採取研究和微創新的原則,把現有的成熟操作系統(Windows,Linux,Android等)理解透,具備內核級的定製能力。同時結合具體應用,在某一個核心點上進行加強,比如安全和可靠性等。

而物聯網則屬新興行業,其特徵尚不明朗,存在巨大的機會。縱觀系統軟件的發展歷史,可以看出任何一款成功的操作系統,必然是在一個硬件(或應用)轉折點上發展起來。最初的大型計算機,促成了UNIX的發展壯大,而以文件服務器爲核心的局域網時代,則促成了NetWare的發展和壯大。再後來到了個人計算機時代,強調簡便易用和圖形處理,於是Windows發展起來了。接下來就是移動互聯網及處理器技術大發展,智能手機具備了基礎的應用環境,於是iOS和Android發展壯大了。所有這些機會,中國都沒有抓住。這與當時的經濟水平和國內整體軟件水平也有關係。

現在到了物聯網這個轉折點上,歷史又給中國的系統軟件事業創造了一個千載難逢的機會。首先,物聯網所具備的特徵(硬件碎片化,本地交互協同,智能硬件具備自學習能力等),傳統操作系統無法滿足。就連Linux的創始人Linus也承認,Linux無法適應物聯網這種碎片化的應用環境,需要尋找另外的替代方案。其次,我國的經濟已經發展到足以支撐在基礎軟件領域大有作爲的水平,整體行業的認知,國內的消費和應用,都爲操作系統提供了堅實的應用環境。最後,經過十幾年的學習,實踐和積累,中國已經具備了很高水平的基礎軟開發和理解能力,尤其是操作系統,在技術上已沒有太多的門檻。如果能夠有效地整合起包括民間和國家層面的開源力量,必然能夠開發出非常優秀的操作系統。

在這樣一個“天時,地利,人和”具備的機會點上,如果我們能夠抓住,那麼很可能會做出“兩彈一星”,“中國航天”,“電信高鐵”等一樣的水平,爲中國民族的復興做出可以銘記的貢獻。

堅持自主創新,自主開發,代碼開源

操作系統本身就是一堆程序,本身的價值不大。但是它卻凝聚了對行業的理解和沉澱。因此,要開發自主操作系統,必須對操作系統應用的行業,要有一個深切深入的理解,或者對行業未來的準確判斷。把對行業的理解和判斷,以代碼的形式表現出來,沉澱到操作系統當中。這樣逐步積累,修訂,完善,改進,最終就會達到質變的臨界點。

而要做到這一步,唯一的手段就是創新。通過與行業進行廣泛深入的交流,綜合,提煉,抽象,形成共性的觀點,架構,算法。然後把這些東西固化爲代碼,就形成了具備靈魂的操作系統。這就是創新。只有在這些創新成果的支撐下,操作系統之間才能形成差異化和競爭力,纔會逐漸的凝聚上下游的合作伙伴,最終形成一個生態鏈。

而這部分基於創新的開發工作,是無現有成果可以借鑑的,而且這部分開發工作,也是佔操作系統開發比重最大的部分。

對於成熟模塊的開發,比如內核,關鍵的硬件驅動程序,文件系統,GUI等,個人的觀點是儘量不要借用開源實現,而是自行從頭開發。主要有下列考慮因素:

1.    雖然這些模塊的功能相似性非常大,但是在迎合一些關鍵需求的時候,還是會表現出巨大差異。如果借用開源實現,很可能會出現與應用無法調和的矛盾;

2.    尤其是內核,當前行業已經形成了一種印象,只要是借用成熟內核(比如Linux),就不是自主開發的,哪怕自主開發的代碼大大超過了內核本身。相反,如果自主開發一個內核,在此基礎上,移植業界已有的外圍模塊的實現,哪怕內核代碼佔比微不足道,也會被認爲是自主開發。因此,自主開發內核,儘量借用已有外圍實現,是一種可行的策略;

3.    基礎模塊的開發成本和難度都不會太大。一個功能完善的內核,其代碼量不會超過100萬行。這樣的工作量,對大多數有志於操作系統開發的單位或公司,都是可以接受的。

 

當前開源文化已深入人心,通過開源,可以充分調動大量的開源力量投入進來,一起完善和優化操作系統。雖然真正能夠貢獻核心代碼的支援力量非常少(按照我個人的統計,大約200:1),但是大量的使用者和測試者,可以幫助快速發現問題,幫助產品快速完善成熟。

內部可以保留一份非開源版本,在安全上進行深入優化,迎合一些對安全需求苛刻的應用場合。

產業鏈的構築非常關鍵,但是也沒有想象的那麼難

廣泛的產業鏈支持是操作系統成功的關鍵,包括應用程序層面的產業鏈,以及硬件支持方面的產業鏈。對於個人計算機操作系統,以及智能手機操作系統,應用產業鏈是核心,其重要性遠遠大於硬件產業鏈。但是對物聯網這種應用場景,主要瞄準的是機器與機器之間的交互,機器與人之間的交互需求大大降低,因此應用層面的產業鏈反而不是非常關鍵,但是硬件產業鏈卻非常重要。

要得到產業鏈的支持,尤其是硬件廠商的支持,根據我個人的經驗,開發的工作量不是很大。譬如一個網卡廠商,爲一個新的OS適配一個驅動程序,一個熟練的工程師,一個星期基本可以搞定。這點成本是微乎其微的。

但最大的門檻,還是“認同”。如果自主研發的操作系統具備核心價值,這種核心價值能夠得到認同,那麼自然就會有越來越多的廠商靠攏過來,逐漸就會形成一個產業鏈。因此,歸根結底,操作系統成功的要素,仍然是“選中應用場景,做出核心價值”。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章