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

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

最近最熱門的新聞之一,就是由於各種原因,美國重新激活了對中興公司核心部件的禁運。作爲一個在電信行業混跡了快二十年的老鳥,對禁運可能對中興造成的後果,相對還是比較清楚的。雖不能說是一劍封喉,但足以把中興逼迫到了沒有任何退路的牆角。作爲同行,個人心中對中興的遭遇深深感到同情和可惜,真誠希望她能夠儘快找到解決方案,度過難關。

正是因爲這件事,引發了全社會比較熱烈的關於IT行業核心部件的討論。其中討論最多的,就是CPU和操作系統的國產化。同樣地,作爲一個在自主操作系統開發和推廣領域(如果這也算是一個領域的話)混跡了近二十年的老鳥,對如何發展國產操作系統也有一些個人的看法,在這裏分享出來,供業界同行批評討論。

最近讓我非常欣慰的一件事,就是妹妹結婚了。隨着年齡的不斷增大,妹妹的婚事一直是全家人記掛和頭疼的事情。看到妹妹身穿漂亮的衣服,被新郎家簇擁着走出家門的時候,心中的感動和喜悅無法抑制,居然不知不覺的留下了眼淚。同時,看着從小長大的妹妹,在這一刻變成了別人家的媳婦,心中也有一種說不出的不捨和惆悵。我個人是認同早婚早育理念的,因爲早一點組成一個家庭,自己平時努力工作或學習的結果會逐漸積累到家庭中,進而沉澱到後代身上,所謂“三代而出貴族”。

操作系統的發展同樣如此,需要形成一個“能夠積累各方成果”的平臺,這樣不斷積累下來,最終形成質變。通過不斷的累加這種質變,最終會形成具備自己風格,有自己的應用場景的操作系統平臺。現在國內有很多從事操作系統開發的公司,也有很多從事開源操作系統開發的團隊和個人。但大部分都是聚焦於嵌入式操作系統的開發。我個人認爲,嵌入式操作系統是比較難以形成氣候的,主要原因就是“不能構築起積累各方成果”的平臺。而造成這個原因的原因(不要介意我的繞口令),主要有以下幾點:

  1. 嵌入式操作系統功能比較單一,實現方案和技術細節都已比較成熟。無非是在實時性上加強一下,在資源佔用(包括內存和Flash等)上加強一下,很少有新的功能需求。這樣就缺少“功能來源”,導致嵌入式操作系統內核功能欠豐富。說是“無源之水”有些誇張,但也有一定的道理;

  2. 嵌入式操作系統面對的硬件呈現高度碎片化特點,這導致操作系統開發者把大量的精力都分散在了適配硬件平臺所做的移植和適配工作上,而在強化和豐富內核上投入較少。比如,應用於嵌入式領域的CPU,有幾十種之多,外圍接口芯片(比如GPIO/SPI等等)更是不勝枚舉。如果你打開業界最著名的嵌入式操作系統FreeRTOS的源代碼,就會發現80%以上的代碼都是適配CPU平臺和外圍硬件的代碼,真正的內核,才幾個文件,不超過數千行代碼。做一個比較“功利和庸俗”的比喻,好比一個屌絲,今天認識了路人甲,明天認識了路人乙,後天又認識了路人丙,這樣下去,你一直是個屌絲。因爲你總是把自己的時間,分散在認識“路人X”上面。生態的構築,必須建立在內核的深度和豐富的基礎上,而且不應該是內核開發人員自己去構築。Windows最開始的時候,只支持IntelCPULinux最開始的時候,也是基於x86開發。AndroidiOS操作系統,也以支持ARM爲主,這些主流的操作系統,從來不會主動去適應碎片化的硬件,而是聚焦一個硬件平臺,把功能做厚,到了一定的程度,自然會有各種各樣的碎片化硬件主動過來適配。個人認爲,這纔是操作系統成功發展的路線;

總之,嵌入式操作系統的這些特點,使之類似一個低緩的斜坡,向兩邊平緩而無限的延伸,無法形成一座挺拔的高聳入雲的山峯。這就是國內很多自主操作系統開發無法成爲規模的原因。

當然,這只是個人的觀點,可能有些偏激。不過我個人心中,對操作系統和系統軟件的開發者,從來都是充滿敬仰和尊重的。他們爲了自己的理想和情懷,在系統軟件或者嵌入式開發領域賺取微薄的薪水,艱難的堅持着。像我這種“更有甚者”,不但不賺錢,而且還要貼錢進去的“業餘愛好者”,更是不容易。不過每當你看到一段代碼順利編譯通過,看到一個小的模塊順利鏈接到內核,看到一個功能順利運行,看到一個應用順利上線並連續工作數個星期的時候,內心的成就和滿足,是無法用語言形容的。這種感覺會讓你藐視和看低其它的困難,內心充滿自信。而這種成就感或者自信,以及從系統軟件開發中獲取的對軟件和計算機的理解,會讓你把其它的事情做好。我想,這也是真正的開源踐行者能夠堅持的原因吧。

要避免這些問題,形成有競爭力的操作系統,必須選擇一個功能豐富的應用場景,從這個場景切入,逐漸把操作系統內核做厚,即所謂的“形成有效積累”。因爲功能豐富,對內核功能的要求必然會多,衆多的功能疊加到一起,會對操作系統內核的架構提出很大挑戰,比如可擴展性,性能,安全性,穩定性,等等。能夠應付這些挑戰了,說明內核已具備一定的規模和成熟度,具備了適應其它複雜場景的基礎。這時候,即使具備了適應其它應用場景的能力,也不要急於分散精力去開發,而是要長時間聚焦初始場景做深入耕耘。其它場景的移植和適配,是由其他人做的,絕不是由最初場景開發人員去做。

敲一下黑板:這是我們的第一個結論,即要把操作系統做好,必須要形成“可持續積累各方成果”的系統內核(或者平臺)。而要達到這種效果,必須選擇功能豐富的場景作爲切入,且要聚焦該場景持續深挖,不能分散精力。

下面進入我們的第二個觀點的介紹:在開發自主操作系統時,避免與主流操作系統平臺正面競爭。

在網上有一篇傳播很廣的文章,作者站在參與者的角度,討論了“方舟CPU和國產操作系統,以及永中Office”的失敗教訓。首先感謝文章分享作者,個人認爲其中的很多觀點,都是正確的。但對於系統軟件(包括操作系統和Office軟件)失敗的結論,歸結爲“沒有考慮用戶體驗”,我有些不同意見,至少這不是最根本的原因。我認爲失敗的根本原因,就是與當時的霸主Wintel進行了正面競爭。我是很佩服這種勇氣的,而且也真誠相信,當時的參與者們是懷着夢想與情懷的,通過噱頭騙取學術費用,畢竟是少數,大多數教授和學者,畢竟都是有理想有追求的人。所謂精神可嘉,結果慘烈,但成果(成果是這個過程的輸出,不等於結果)有價值。

回到正題,與主流操作系統及其生態正面競爭,從本質上說是一種破壞,試圖破壞一種已經建立起來,並有效運轉的社會機制。基於主流操作系統,人們已經形成了使用習慣,形成了共同語言和價值觀,這種共同的習慣和價值觀,會促進社會的發展。而與主流操作系統進行正面競爭,就是試圖破壞這種已經建立起來的機制。這種你死我活的競爭方式,不符合“人類命運共同體”的理念。從主流操作系統發展的過程來看,幾乎所有成功的操作系統,都是從開闢新的應用場景並深入挖掘開始的,比如Windows,瞄準了剛剛興起的PC機市場,最終成爲一代霸主。Linux則藉助開源文化,順應人們對開源的需求,而逐漸做大。即使做到今天,Linux也沒有與Windows正面競爭,而是瞄準服務器市場深入耕耘。Android操作系統就不用說了,瞄準近幾年興起的智能手機市場,以其良好的適應性和開放能力,贏得了最廣泛的手機市場。

我們可以得出這樣的結論:操作系統有強大的“不可替代性”,一旦其佔住某個硬件領域,佔住某個應用場景,想用新的操作系統來替代它,是很困難的,或者說是不可能的。其最終宿命,就是隨着這個領域或應用場景逐漸衰落,最終一起消亡。

基於這樣的分析,開發新的操作系統,最好的方式是從一個尚未形成“最優匹配模式”的場景入手,避免與已經形成最優匹配模式的主流操作系統競爭。這裏的最優匹配模式,指的是諸如Windows+ IntelAndroid+ARM等組合,使應用領域價值最大化的情形。隨着物聯網的發展,這樣尚未達到“最優匹配”的場景,是很多的。廣大操作系統開發者和企業,完全可以選擇出一個這樣的場景,來作爲切入點。

總結一下,觀點非常明確:對於操作系統開發來說,要選擇一個功能豐富的應用場景,深入持續把內核做厚。同時要避免與主流操作系統正面競爭。

這是個人總結的觀點,不一定正確,供對操作系統開發有興趣的朋友們參考。目標是明確的,就是通過諸多努力,能夠儘快開發出具有世界級水平的操作系統,能夠在某一個領域內得到廣泛應用,形成這個領域內的霸主地位。

最後,還是要對我們的開源操作系統項目HelloX進行一番宣傳。HelloX定位爲物聯網操作系統,當前選定物聯網網關爲應用場景,進行深入開發。物聯網網關功能複雜,其功能和模型也尚未形成廣泛共識,有巨大的挖掘空間。當前HelloX的軟件,已可以實現完整的家庭網關(物聯網網關功能包括家庭寬帶接入)功能,後續我們將製作一款專門的硬件,用於搭載HelloX。歡迎對操作系統有興趣的朋友們加入我們開發團隊,也歡迎物聯網企業與我們合作。


聯繫方式:QQ/微信:89007638 QQ羣:38467832


歡迎轉載該文章,但爲尊重原創版權,轉載時請註明作者和出處。




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