“自主”手機操作系統:如何判定及怎么做
二、“自主”考核政策之殤:生態系統才是活下去的關鍵
本文引用地址:http://www.104case.com/article/139576.htm根據上面的分析,看來我們還真的需要有“自主”的操作系統。但是,“自主”到底是自主什么呢?
在功能手機和實時嵌入式系統領域,我們不是沒有“自主”的操作系統,比如MTK或者展訊的操作系統,以及諸如早期的Hopen、道系統等。在通用操作系統領域,國家也長期支持了諸如麒麟操作系統、紅旗Linux、中標Linux、新華Linux等多家本土操作系統廠商。但市場表明,國家支持的這些操作系統都將消亡或者正在消亡。
本人認為,國家支持下進行“自主”操作系統開發的確有合理之處,畢竟開發操作系統是一件比較困難的事情。但是,這里邊有一個重要的誤區和制度設計上的錯誤,就是只強調了“自有知識產權”,而沒有強調“自己主導”。
在強調“自由知識產權”的情況下,政府對受資助企業的“自主”操作系統進行考核時,大部分情況下考核的是企業有沒有獲得對應的知識產權,就是軟件的著作權和/或對應的專利,而并沒有考核能否主導一個產業鏈。受資助的企業,能否類似谷歌控制產業鏈一樣,做到讓別人用了你的操作系統,就沒法不繼續用下去?在這樣的思路下,政府需要在更長的周期內,考核受資助企業的市場份額是否有擴大,是否建立了良好的生態系統,讓使用者、開發者欲罷不能,而不是簡單的著作權證書和專利數量,或者是否達到了一個給定的出貨量(因為出貨量是可以作假的)。
也就是說,我們應該重新定義“自主”這兩個字,從“自有知識產權”向“有效知識產權保護下的自己主導”轉移。
為什么這里強調“有效知識產權”呢?這是因為,在開源軟件成為趨勢的情況下,構建一個自己的操作系統,可以使用很多已有的開源軟件,我們沒有必要所有代碼都自己編寫,而且越底層的代碼就越沒有必要自己重寫一遍。這如同一只桃子,好吃的是果肉,而不是果核。像內核、基礎庫、常用運行時函數庫等等,都不必自己重新開發。而且這么做幾乎沒有任何潛在的法律問題,當然,前提是你要告訴大家你用了哪些開源軟件,而且你也尊重了這些開源軟件的許可證。這樣下來,一個操作系統的軟件著作權已經不再重要,重要的是相關的專利、自己獨有的創新以及圍繞操作系統建立起來的生態系統。

三、如何判定一個操作系統是否“自主”:阿里云算不算?
那么,“自主”操作系統應該長什么樣?要回答這個問題,我們先看看假的“自主”操作系統長什么樣。所謂假的“自主”操作系統,就是那些號稱“自主”操作系統,但其實:
·只是在已有的開源操作系統之上加了一層皮。比如各種基于Android的第三方ROM,比如MIUI、Flyme等。這種操作系統僅僅在UI/UE上做了一些工作,就如同一個人換了一身衣服那樣,實質上這個人不會因為換了一身衣服而從張三改叫成李四。
·修改了已有開源操作系統的內部代碼,做了一些優化或者去掉了別人的一些東西,添加了一些自己的內容。比如阿里OS就屬于這種,或者哪些號稱深度定制的Android系統也屬此類。這種做法如同整容,的確動了些刀子,甚至改變了性別,但人還是那人,改了名字或性別也還是那人。
這么類比下來,讀者應該就知道了,真的“自主”操作系統,必須要有自己的靈魂,通俗一點講,不是換衣服或者整容,只有換了腦袋的才能是一個全新的個體。
那么在操作系統當中,什么東西是靈魂?這個問題回答起來蠻難的。我們先看看哪些東西肯定不屬于靈魂:
無法形成有效知識產權的軟件組件,或者說,滿世界有很多(開源的)實現的軟件組件。比如內核、基礎函數庫、網絡協議、圖形庫、瀏覽器引擎等等。這些東西可以看成是形成一個智能動物(比如“人”)的骨架或者軀體、甚至心臟,但遠遠算不上腦袋或者靈魂。這也是為什么筆者主張在“自主”操作系統中要盡量使用現有的成熟開源軟件、而且不建議再行發明此類輪子的原因。
要知道哪些東西是靈魂,我們分析下谷歌在和阿里OS爭論的過程中主要維護的是什么東西:
谷歌的說法:阿里云OS采用了Android的虛擬機和Framework,但又不兼容Android,破壞了Android的生態系統。這個說法可能還不是谷歌打壓阿里OS的最關鍵原因,但起碼說出了他們的擔憂:阿里OS是想借Android打造自己的一個生態系統!但除此之外,谷歌對那些只換衣服的Android系統則采取聽之任之的態度,和他們一貫以來標榜的“只要兼容,我們歡迎”的態度一致——也就是說,這些系統沒有從根本上動搖谷歌的生態系統。
所以,真正的“自主”操作系統的靈魂,就是那個背后的、無形的生態系統,一個看似開放但其實封閉的生態系統。一旦加入這個生態系統,你就很難下來——正所謂“上了賊船下不來”。
這就是我的回答:一個真正“自主”的操作系統,必須建立自己的生態系統,一個開放的,但在某種程度上又封閉的生態系統。
操作系統生態系統?這名詞大家說了很多年了,一個生態系統具體應該是什么樣子?筆者從如下幾個方面解釋一下:
技術層面。操作系統必須通過某種技術將自己和其他的操作系統區隔開來。比如Android采用Java語言,但使用了不同于Sun(現在是Oracle)JDK的API;iOS采用了ObjectC語言,為應用程序提供的接口和框架甚至有別于蘋果自己的Mac OS X;Windows Phone采用了C#語言,在.Net框架下進行開發。為什么這些操作系統不使用C/C++這類語言呢,C/C++尤其是C可是這些操作系統內核的編程語言啊!?這里有如下幾個原因:
操作系統開發者不希望普通的應用程序通過使用比較低級的編程語言來控制系統或設備,畢竟操作系統是給智能手機、平板電腦這種消費類的電子設備使用的;通過采用更加高級的語言來簡化編程和開發人員的學習難度;通過對看起來非常復雜的框架的持續演進,達到牽著開發者和廠商鼻子走的效果;便于形成依附于某個操作系統的獨有的開發者社區和文化。
法律層面。操作系統必須通過創建自己的有效知識產權體系來保護自己。前面已經說過,越底層的軟件組件越沒有市場價值(碼農們可能不喜歡聽這話,但現實就是這樣的)。通過建立全新的、包裹在底層操作系統之上的框架、編程接口、編程語言等基礎設施,操作系統開發商才有可能建立起有別于他人的有效的知識產權保護體系。也就是說,如果連框架、編程語言、編程接口等都抄襲他人(就算是開源的、許可證允許的),那永遠也無法形成一個可以有效保護自己的知識產權體系。
市場層面。通過和上下游企業的合作,建立某種聯盟或者許可、授權機制,讓操作系統的用戶(芯片廠商、手機廠商、平板廠商)能夠從中獲益。比如Android開放聯盟,做的就是這個事情。
開發者社區。一個好的操作系統之生態系統,要充分照顧開發者的利益,具體有如下幾點:要有好的開發工具,便于開發者學習、開發和調試軟件;要有好的文檔或者教程,幫助開發者迅速掌握相關開發技巧;最重要的,要能夠讓開發者賺到錢。
看到這里,相信大家都會意識到:這也太難了吧!的確,這非常難,這也是為什么Moblin、MeeGo、Bada、webOS等操作系統相繼失敗,而到目前,只有iOS、Android、Windows Phone這三種操作系統的原因。
但是,世上無難事只怕有心人。接下來我告訴你如何搭建一個真正的“自主”操作系統。

評論