“自主”手機(jī)操作系統(tǒng):如何判定及怎么做
四、如何開發(fā)“自主”操作系統(tǒng):目的、策略和方法
本文引用地址:http://www.ex-cimer.com/article/139576.htm目的
開發(fā)“自主”操作系統(tǒng)的主要目的有兩種:一種是想再造一個(gè)類似Android、iOS的操作系統(tǒng),并作為其競爭者;一種僅僅是為了在商務(wù)談判和合作中獲得一個(gè)比較好的籌碼。當(dāng)然,還有一種目的就是騙取政府的財(cái)政支持,對這類不良目的,不屬本文討論范圍。
我們先猜度一下國內(nèi)外這幾年出現(xiàn)的一些“自主”操作系統(tǒng),其目的是什么:
Firefox OS:這是Mozilla公司推出的純粹基于HTML5/CSS3/JavaScript等網(wǎng)頁前端開發(fā)技術(shù)推出的操作系統(tǒng),和HP收購自Palm的webOS有類似的軟件架構(gòu)。HP收購了webOS之后的半年,即宣告放棄webOS,而Mozilla卻希望通過類似技術(shù)的Firefox OS成為Android的競爭者。一會兒我們分析下為什么Firefox OS要比webOS有更強(qiáng)一些的生命力。
華為提出要開發(fā)的“自主”操作系統(tǒng):作為一個(gè)智者,任正非不可能不知道一個(gè)真正“自主”的操作系統(tǒng)應(yīng)該是什么樣子的。華為就算再有錢,再有人才,短時(shí)間內(nèi)也是搞不定一個(gè)“自主”操作系統(tǒng)的(如前所述,主要是建立對應(yīng)的生態(tài)系統(tǒng)太難了)。這么說來,華為開發(fā)“自主”操作系統(tǒng),其目的其實(shí)就是做一個(gè)“備胎”,以便在和Android、Windows Phone等合作時(shí)能夠有一個(gè)可以討價(jià)還價(jià)的砝碼。也就是說,華為并不是真的要做“自主”的操作系統(tǒng);或者這么說,支持團(tuán)隊(duì)去做,做成Android那樣最好,做不成Android那樣,如果真有一天打起架來可以湊合用也行。
阿里云OS:馬云同志的野心很大,他做阿里OS,就是要復(fù)制谷歌在移動互聯(lián)網(wǎng)的商業(yè)模式,進(jìn)而在移動互聯(lián)網(wǎng)領(lǐng)域推廣阿里體系的服務(wù)和內(nèi)容??上У氖牵R云貌似不太懂技術(shù),也沒個(gè)明白人給他做參謀,結(jié)果花了錢還被人捏住了七寸。最新的消息,阿里云OS獨(dú)立運(yùn)行,再投個(gè)2億美金繼續(xù)搞。馬云同志啊,光有錢是不行的,你身邊還得有個(gè)把技術(shù)大牛幫你把關(guān)、出謀劃策才行啊。
策略
好,面對這兩種開發(fā)“自主”操作系統(tǒng)的目的,應(yīng)該有什么樣的策略呢?其實(shí)策略很簡單,不管你是真心還是假意,都應(yīng)該按照本文第三章給出的“自主”操作系統(tǒng)之特征進(jìn)行開發(fā),除此之外,別無他法。任何期望找捷徑的方法,都不可能獲得成功。這里所說的找捷徑的方法具體有:
·給Android整容。如OMS、阿里OS。
·忽略操作系統(tǒng)中生態(tài)系統(tǒng)的重要性,在Linux或其他開源操作系統(tǒng)內(nèi)核、系統(tǒng)庫等基礎(chǔ)上包裹一個(gè)簡單的框架而形成的操作系統(tǒng)。這種操作系統(tǒng),其復(fù)雜度和Linux發(fā)行版相當(dāng),離本人定義的真正“自主”操作系統(tǒng)還差十萬八千里。讀者可能會問,這樣的系統(tǒng)做備胎不是還行嗎?為什么也得按照真做那樣開發(fā)呢?你要知道的是,對手也不是傻子,人家看你的架勢,就知道你不是真做——你起碼得拉出真做的架勢來,人家才能怕你啊!
順便談?wù)勎覍跒g覽器技術(shù)的web操作系統(tǒng)的看法。
理論上講,瀏覽器可以做很多事情,甚至可以替代PC機(jī)上的通用操作系統(tǒng)。但是,最新的瀏覽器技術(shù)(HTML5/CSS3等),還存在一些技術(shù)上的問題。主要的問題有如下兩個(gè):
·瀏覽器主要采用的JavaScript編程語言,本質(zhì)上是一種難于管理(源代碼保護(hù)、無法進(jìn)行有效的軟件架構(gòu)設(shè)計(jì)、難于調(diào)試等等)的編程語言,同時(shí)內(nèi)存消耗巨大,性能不佳。最新的說法是,F(xiàn)acebook創(chuàng)始人直言全面采用HTML5的策略是個(gè)失誤,正在向操作系統(tǒng)的原生應(yīng)用轉(zhuǎn)移。也就是說,JavaScript語言難以承載一個(gè)良性發(fā)展的生態(tài)系統(tǒng)。
·因?yàn)樵S多原因(主要是利益和政治因素),HTML5相關(guān)的標(biāo)準(zhǔn)有分裂的跡象,同時(shí)進(jìn)展緩慢。
HTML5技術(shù)作為原生應(yīng)用的一種補(bǔ)充,可以起到很好的作用,但是,如果要想在瀏覽器技術(shù)上建立一個(gè)真正可以和Android等競爭的操作系統(tǒng),恐怕還需要很長的時(shí)間(技術(shù)上必須有突破)。要不然,谷歌現(xiàn)在主推的應(yīng)該是ChromeOS,而不是Android。
現(xiàn)在回答剛才提到的問題:為什么Firefox OS可以比webOS的生命力更長久些?主要的原因是,F(xiàn)irefox OS是開源的,有比較強(qiáng)大的企業(yè)在主導(dǎo)其發(fā)展,作為一個(gè)脫胎于開源基金會的企業(yè)(Mozilla公司),也能獲得合作伙伴的一些好感;相反,因?yàn)閣ebOS是封閉,HP又沒有能力像蘋果那樣打造一個(gè)完全封閉的平臺和生態(tài)系統(tǒng),所以最終的命運(yùn)是被人拋棄了。雖然后來webOS也走上了開源的道路,但大勢已去,HP不親自帶頭搞,光靠開源社區(qū)是搞不成的。
方法
假定你是一名“自主”操作系統(tǒng)項(xiàng)目的技術(shù)管理者,你第一步要考慮的問題是什么?許多人的回答可能是:先選操作系統(tǒng)內(nèi)核、基礎(chǔ)庫什么的。其實(shí)錯(cuò)了,第一步要考慮的應(yīng)該是你打算選擇什么編程語言作為原生應(yīng)用的編程語言。
世界上的編程語言有很多種,有些語言貼近機(jī)器,比如匯編語言、C語言,有些語言貼近人,比如Basic、Java,還有些語言用于特定領(lǐng)域,比如網(wǎng)頁服務(wù)器端使用的PHP,有些適合做不同軟件之間的粘合劑,比如Perl、Python。本文第三章已經(jīng)解釋了編程語言以及圍繞編程語言形成的運(yùn)行環(huán)境、框架是將操作系統(tǒng)區(qū)隔于其他操作系統(tǒng)的主要技術(shù)特征。因此,我們必須慎重選擇一種編程語言。而且一旦選定了一種編程語言,“自主”操作系統(tǒng)在開發(fā)者看來長什么樣,其實(shí)就基本上定了。
選擇編程語言要考慮如下因素:這種編程語言是否易于學(xué)習(xí)和掌握?是否有龐大的開發(fā)者在使用它?這種編程語言是否具有高級語言的基本特征,比如,支持面向?qū)ο缶幊?這種編程語言是否是編譯執(zhí)行的?這種編程語言是否利于保護(hù)開發(fā)者的知識產(chǎn)權(quán)?這種編程語言是否有完整的工具鏈支持?這種編程語言是否有集成開發(fā)環(huán)境的支持?這種編程語言是否易于保護(hù)整個(gè)操作系統(tǒng)不會被惡意代碼輕易破壞?如此等等。
其實(shí)很多讀者看到這里,都會想到Java語言。是的,Java語言或其派生語言如C#是構(gòu)架“自主”操作系統(tǒng)的最佳編程語言。可惜,已經(jīng)被Android和Windows Phone給捷足先登了。
如此一來,你可以考慮重新設(shè)計(jì)一門類似Java的語言,也可以通過其他手段,讓你使用Java語言構(gòu)建的操作系統(tǒng)有別于其他操作系統(tǒng)。比如,構(gòu)建自己的虛擬機(jī),如Android使用的Dalvik那樣(Dalvik和Oracle的JDK標(biāo)準(zhǔn)虛擬機(jī)有很大不同,從而讓Oracle還挺難告贏谷歌的);你也可以用Dalvik,但讓類庫、運(yùn)行環(huán)境和Android不同(這樣做的法律風(fēng)險(xiǎn)要大一些)。總之,你需要有自己的創(chuàng)新,全部抄襲是不行的。
確定了編程語言,接下來的工作其實(shí)就比較直接了,從上而下設(shè)計(jì)就是了。主要有:
1、定義和實(shí)現(xiàn)提供給原生應(yīng)用程序的基礎(chǔ)API和/或虛擬機(jī)。
2、在應(yīng)用程序基礎(chǔ)API、標(biāo)準(zhǔn)C/C++函數(shù)庫和相關(guān)組件(通常都是開源軟件)的基礎(chǔ)上構(gòu)建操作系統(tǒng)的運(yùn)行環(huán)境和框架。主要涉及系統(tǒng)服務(wù)、模塊之間的通訊機(jī)制,包括圖形界面、瀏覽器引擎、OpenGL ES支持接口等等。
3、同時(shí)選擇操作系統(tǒng)內(nèi)核,通常也就是Linux,要與眾不同,用BSD也行。
4、搞定集成開發(fā)環(huán)境和模擬器,讓開發(fā)者可以在PC機(jī)上為你的操作系統(tǒng)開發(fā)應(yīng)用程序。
5、讓你的操作系統(tǒng)運(yùn)行在真實(shí)硬件上,為開發(fā)者提供應(yīng)用樣例和文檔。
6、持續(xù)迭代,讓你的“自主”操作系統(tǒng)不停往前發(fā)展。
上面的第一點(diǎn)和第二點(diǎn),是“自主”操作系統(tǒng)有別于其他操作系統(tǒng),且支撐你可以和其他人競爭的關(guān)鍵點(diǎn)。往下的東西都不是構(gòu)成“自主”操作系統(tǒng)真正競爭力的東西。
這么看來,其實(shí)也挺簡單的。不是嗎?貌似有錢、有個(gè)把技術(shù)上的明白人就能做到。技術(shù)上沒問題了,市場、法律等方面的事情,請專業(yè)人員幫忙,中國這類人才還是蠻多的,缺的,其實(shí)還是技術(shù)人員以及懂系統(tǒng)工程和軟件開發(fā)的管理人員。
評論