一直以來,國產操作系統都是網絡上某些人攻擊和非議的對象,力圖用這個領域的例子來證明,中國科學技術水平和工程應用水平低下。
比如,最常用的一個例子是,雖然在軍事、科研等特殊領域,國內不乏自己的操作系統,但在通用操作系統上,不要說尋常百姓的家用電腦,即使是很多黨政機關和企事業單位,依舊在使用微軟的Windows操作系統。
開發一個中國自己的通用操作系統,為什么這么難?到底難在哪里?
庫叔告訴你,開發國產操作系統,要面對的是9座大山。
1、工作量巨大
開發一個操作系統工作量非常大。
最能直觀體現這一工作量的指標,就是代碼的行數。
舉例來說,微軟的Windows XP系統有4000萬行代碼,Windows Vista和Windows 7 則達到了5000萬行;開源系統Linux這邊,3.6版本的Linux內核代碼有1590萬行,而Linux的發行版Debian系統代碼行數更是多達恐怖的6500萬行。這還是經過軟件廠商反復精簡的結果。
幾千萬行代碼的工作量是個什么概念?舉個參照系吧,很多人在用的金山辦公軟件WPS代碼行數約150萬行,而金山軟件公司重寫這個級別的WPS,用了3年時間。
當然,操作系統代碼行數并非越多越好,而是在保障相同功能的情況下,代碼越精簡越好,像塞班系統代碼行數突破3500萬行,卻因代碼臃腫,對代碼的維護性和擴展性造成了負面影響。
所以,寫完代碼后,如何反復精簡代碼,保證系統功能的最優化,又是一個巨大的費時費力的工作。
2、需要深厚技術積累和持續迭代演進
開發操作系統最難的工作就是做一個自己的內核,而系統內核分成很多模塊,每個模塊的劃分、協調不僅要考慮有效性、效率高低、可擴展性、可維護性,還要注重代碼控制、算法效率、項目管理、多任務調度算法、軟件架構設計等方面,是非常復雜的一項工作,技術門檻也比較高,需要有非常深厚的技術積累。
現在我們耳熟能詳的操作系統,都是幾十年技術積累和站在巨人肩膀上的產物,而非憑空冒出來的。
舉例來說,手機上用的最多的谷歌安卓系統是基于Linux的二次開發,小清新奉為圭臬的蘋果iOS則是基于FreeBSD/Unix的二次開發,Linux和iOS追根溯源都是Unix。
下圖是各個操作系統的發展圖譜,可以看出從最初的Unix,發展到后面各分支的操作系統,經歷了一個多么錯綜復雜、一步步積累的過程。
當然,開發操作系統在技術上也并非絕對的高不可攀,相對于需要復雜的矩陣運算、高階偏微分方程等比較高深的數學知識才能勝任開發的軟件,比如和軍用關系密切的地理信息系統軟件以及一些圖形處理軟件,操作系統核心模塊的開發技術門檻還是略低一些,有一定數據結構知識和硬件知識就可以勝任,并不需要復雜的數學推導和運算。
操作系統的開發周期長,而且是一個迭代演進的過程。
微軟在1985年推出Windows1.0后,經過Windows2.0、Windows3.0、Windows3.1、Windows NT、Windows95、Windows98、Windows2000等操作系統演進迭代,才于2001年推出一代經典的操作系統Windows XP。
Linux、FreeBSD也是以Unix為基礎,經過幾十年的開發和更新,才發展到現今的水平,而谷歌和蘋果以Linux、FreeBSD為基礎,他們的操作系統也是一代代發展的。
因此,在缺課太多,差距過大的情況下,需要的是循序漸進和厚積薄發,試圖在短時間內實現趕超,妄圖一口吃成胖子的科技大躍進顯然是不可能的。
3、國內軟件產業既胖且虛
除了技術上的難題,開發國產操作系統還面臨大量產業和行業性問題。比如中國軟件產業整體大而不強的現實狀況。
軟件產業強大與否,并不是取決于該國程序員數量,更不取決于軟件產業創造的GDP,而在于產業標準制定權以及是否擁有核心技術。
標準方面,人人都知道,一流企業做標準,二流企業做品牌,三流企業做產品,掌握了標準的制定權就能獲取高額利潤并立于不敗之地。
而國內軟件業從教學到產業,基本上跟著西方的技術標準走,沒有自己的一套技術標準。像程序員常用的編程語言、編譯器、軟件開發工具,基本上用的都是國外產品。
軟件產業大而不強的另一個表現就是產品缺乏核心技術。以我們每天都用的手機和瀏覽器來說,國內各家公司推出了不少瀏覽器,但基本上是國外瀏覽器的“馬甲”,所謂的國產瀏覽器都沒有國人自己編寫的瀏覽器內核。
手機操作系統也是如此,雖然很多國產手機都有諸如Emtion、nubia之類的系統,但撥開現象看本質,這些還都是安卓操作系統的馬甲,只能算是一個UI(系統界面)。
類似的例子還有很多,某家以殺毒軟件起家的互聯網公司,其殺毒軟件的用的是羅馬尼亞的BitDefender引擎;不少廠商隔三差五就會出現于媒體聚光燈下的云解決方案,其實上也是國外開源軟件(Openstack/Xen)的馬甲,有些廠商雖然也貢獻了少量代碼,但含金量遠不及宣傳中那么足。
在linux,KVM,Xen,OpenStack,HADOOP,Docker,Mysql,OpenJDK等基礎軟件的代碼貢獻量方面,中國龐大的程序員數量和中國相對有限的代碼貢獻量極不相稱。
因此,雖然中國軟件產業和互聯網企業創造了海量的GDP,演繹了一批造富神話,吸納了大批就業崗位,但依附于西方技術標準、沒有自己編程語言和軟件開發工具、應用軟件強而基礎軟件弱已成為中國軟件產業的內傷。
4、高端技術人才相對匱乏
“一流人才漂洋過海,二流人才北京上海”,雖然很多懷有理想的志士依舊留在國內做科研,但中國高端技術人才流失是不爭的事實——中國早已成為美國最大的人才輸出國。
在高端技術人才大批量流失的同時,國內大學和公司的人才培養卻不盡如人意。
在標準制定上的缺失使中國軟件業基本依附于西方的技術體系,國外巨頭和中國各個大學堪稱典范的“合作”關系下,使得我們大多數的學生只是在學習如何在西方搭好的技術框架下做“填空題”。
此外,中國軟件產業還有相當大一部分程序員在從事外包服務,簡單地說就是國外程序員不愿意做的,認為是簡單重復勞動的低端工作,大多數都是中國的程序員在做。
一些久經磨礪的資深程序員雖然技術精湛,但在國家和國內軟件巨頭沒有標準制定的頂層設計的情況下,單憑自己或小群體的力量無力制定標準,基本上是跟著國外技術體系走,國外出一個新技術、新標準,就一窩蜂去學。
至于構建自己的技術體系,這項技能基本淪為“屠龍之技”(國內基本用不到),大部分學校在教學上根本不重視,即使巧遇良師或自學成才,國內除軍工企業、國防院校、科研院所之外,也很難有用武之地。
因此,中國程序員雖然數量龐大,其中更是不乏精英人才,但相當大一部分程序員技術水平有限。國內非常多做手機APP、網游、頁游的程序員,你讓他們在國外技術框架下寫能在X86、ARM芯片上跑的APP、網游、頁游程序,他們沒問題。但你讓他們脫離國外技術框架去給走自主路線的龍芯、申威開發軟件,很可能就抓瞎了。
另外,國內軟件業的行業環境也加劇了高端技術人才匱乏的狀況。
國外程序員一般情況下,職業生涯只做一方面的技術,學習掌握該技術,下半輩子基本上就寫程序了。
國內程序員因為企業經常跟著項目走,要會很多方面的技術,技能多而不精。此外,國內程序員普遍有一個共識——就是不能寫一輩子程序,必須向管理層轉型,最后的目標就是做項目經理之類的職務。轉為管理層后,就不再從事或者很少從事一線開發。
這些現狀使國內軟件產業很難培養出技術精湛的程序員,培養磨礪出來的資深程序員卻因為轉向管理層不再或很少從事一線開放,進一步加劇了技術人才匱乏的現狀。
5、操作系統領域人才捉襟見肘
軟件產業整體的高端技術人才缺乏,再具體到操作系統領域,人力資源方面就更捉襟見肘了。
一般來說,國內操作系統公司的開發人員,大一些的有三、五百人,小的甚至不足百人。
體制內的科研院所、國防院校、軍工企業中確實有很多人才,而且都是中國高考體制下層層選拔脫穎而出的佼佼者,技術能力很強,但各自的科研任務負擔都非常重,國防和信息安全任務已經把他們壓的喘不過氣來,根本沒有多余的精力去解決民用方面的技術問題。
此外,有一部分體制內單位還存在人才流失問題。體制內很多人都是懷著理想和信念在奮斗,但隨著年紀的增長,家庭、生活壓力越來越大,很難抵御跳槽后收入翻倍的誘惑。
形成鮮明對比的是微軟,一個公司就有將近10萬員工,當年有Windows95、Windows98等系統的技術積累的情況下,依舊集中了5000余名程序員開發Windows XP。
Linux雖然不靠任何一個商業公司支持,但是由于目前已經被廣泛應用和認可,不但已經得到全世界程序員共同維護,紅帽公司、英特爾、IBM、甲骨文、微軟等國際巨頭也積極參與其中,同樣具備很強的持續研發能力。
6、研發資金相對不足
在資金方面,一個成熟的操作系統的開發往往延續數年,比如微軟在2014年的研發成本超過100億美元,在開發Windows Vista所花費的研發費用更是超過了200億美元。Linux內核開發根據人員投入的規模測算,也耗資數十億美元。
而與Windows Vista、Fedora9大約處于同一歷史時期的國產銀河麒麟操作系統,其在內核方面的自主技術的比例算是比較高了,但研發經費也僅為4000萬人民幣,當時的匯率還是1美元等值8元人民幣。
由國防科大領銜研制銀河麒麟,經費尚且如此窘迫,國內其他小公司的經費支持就可想而知了。
更糟糕的是,在與國外巨頭人力和財力資源差距如同鴻溝的狀況下,國內各家研發操作系統的公司依舊在各自為戰,技術路線并不統一。
目前,國內有10多家做操作系統的公司,但每家公司各有各的打算,始終無法形成產業聯盟。雖然基本上都是基于Linux的二次開發,但有的是走紅帽技術路線,有的走Debian技術路線。這使得人力資源和財力資源原本就非常有限的情況下,研發力量被進一步分散削弱了。
7、趨利避害使企業避重就輕
對于企業而言,市場經濟時代商業利益至上,對于國內某些商業巨頭而言,承擔社會責任,做一個獨立自主、安全可控的操作系統并不是他們追求的目標。
因此,國內巨頭有做HMOS金融系統的動力,因為在給場外配資的金融游戲中,HMOS簡直就是印鈔機。
此外,在技術層面上,自主技術越多,那么和現有的軟件體系兼容性就越差;反之,兼容性就越好。在以市場化運營為導向的標準下,自然要能兼容現有的軟件體系。那么,這樣的操作系統就自然不可能有太多自己的東西。
舉例來說,國內除體制內單位外,軟件技術實力最強的就要屬BAT等互聯網巨頭以及華為、中興、東軟等廠商了。
雖然華為和中興居2014年中國軟件收入排行榜第一和第二位,但技術長于通信領域,開發通用操作系統非其所長,在商業利益的驅使下,華為和中興手機的操作系統其實就是一個基于安卓的UI。
BAT等互聯網巨頭推出的操作系統,則主要是為了跑馬圈地,搶端口,賺快錢,而不是為了實現信息安全和自主可控,自然不可能選擇長周期、高投入、高技術門檻的自主研發之路,基于安卓的二次開發就成為理所當然的選擇,編寫的代碼僅限于重寫了虛擬機。
商業上的趨利避害還加劇了國內應用軟件強,而基礎軟件弱的現狀,比如中國寫Java的程序員有上百萬人,寫JavaScript的程序員也有上百萬人,寫QT的也很多,但Java虛擬機、JavaScript引擎、QT庫卻沒多少人干。
8、有系統無應用,軟件生態難構筑
單單有一個操作系統而沒有軟件生態是沒有意義的。
操作系統僅僅是一個平臺,豐富的軟件生態才是操作系統的活力之源。
什么是軟件生態呢?比如即時通信軟件、網絡支付軟件、瀏覽器、Office辦公軟件、Flash、各種游戲等等。沒有這些軟件,用戶就無法網絡聊天、上網、辦公、看視頻、玩游戲,只能對著“我的電腦”桌面圖標發呆。
軟件生態的構建需要軟件廠商的配合,而軟件廠商不是“活雷鋒”,只有當某個操作系統市場占有率達到一定程度時,軟件廠商才會幫忙適配軟件,這樣就形成了一個悖論——軟件生態貧乏,導致操作系統用戶數量很少,而市場占有率小的情況下,軟件廠商不會主動幫忙適配軟件。
以微軟這個桌面操作系統霸主為例,因為Windows系統手機的市場份額非常小,導致國內外軟件廠商大多不愿意給它開發手機APP,而軟件方面的不足又使更多的用戶拋棄Windows手機。
微軟的財力和技術不可謂不雄厚,但因錯過發展機遇期,要在別人已經占據的市場分一杯羹,也是艱難無比。
因此,要構建自己的軟件生態,最好是在無人涉足的新領域,比如當年谷歌和蘋果涉足的智能手機領域,或者現在正興起的物聯網領域。
要在已經被外商占據的領域,發展出自己的軟件生態,就只有花錢請軟件廠商來幫忙了,而資金和人才恰恰是國內廠商的兩大短板,根本沒有財力去這樣燒錢。這無異于陷入一個死循環。
9、市場推廣難度大
即使是有了成熟的操作系統和一定軟件生態的積累,要市場推廣依舊不容易。主要有以下幾個難點:
1、用戶粘性制約市場推廣。操作系統有一種屬性——用戶粘性,當用戶習慣了某一個操作系統后,讓用戶換一種操作系統,甚至同一個操作系統換一個版本都會產生諸多的不方便。
舉例來說,從Windows XP升級到Windows 7,很多原本習以為常的操作全部改變了,都要從新學起,很多人就覺得很麻煩,這也是為什么微軟已經發展到Windows 10了,Windows XP在中國依舊有龐大的市場占有率。
2、更換平臺成本大。有一定歷史的公司和單位都積累了大量的數據和資料和應用系統,這些數據和資料和應用轉移到新的平臺,不僅需要花費不菲的金錢,還有一定的技術風險——是否會造成數據和資料的損毀和丟失,這是誰都不敢打包票的事情。
3、預裝國產操作系統的計算機無法被用戶接受。因為Windows在桌面市場的霸主地位,像聯想這樣的PC整機制造商基本上預裝Windows系統,即使某些廠商預裝了國產操作系統,但在銷售過程中,零售商往往將預裝國產操作系統的電腦安裝盜版Windows系統出售。
4、盜版猖獗。其實國產操作系統最大的對手不是微軟,而是盜版。盜版猖獗的情況下,哪怕國產操作系統免費使用,在市場中也很難推廣出去。
形成鮮明對比的是金山軟件的WPS,在國內曾經被盜版軟件殺得潰不成軍,但在知識產權保護較好的日本,金山以低于微軟Office軟件的售價,與微軟的Office軟件相當的功能,不僅占據了一定市場份額,還實現了盈利。
「 支持烏有之鄉!」
您的打賞將用于網站日常運行與維護。
幫助我們辦好網站,宣傳紅色文化!