Android 台灣中文網
標題: “自主”手機操作系統:如何判定及怎麼做 (下) [打印本頁]
作者: 游幃翔 時間: 2012-9-25 13:38
標題: “自主”手機操作系統:如何判定及怎麼做 (下)
四、如何開發“自主”操作系統:目的、策略和方法
目的
開發“自主”操作系統的主要目的有兩種:一種是想再造一個類似Android、iOS的操作系統,並作為其競爭者;一種僅僅是為了在商務談判和合作中獲得一個比較好的籌碼。當然,還有一種目的就是騙取政府的財政支持,對這類不良目的,不屬本文討論範圍。
我們先猜度一下國內外這幾年出現的一些“自主”操作系統,其目的是什麼:
Firefox OS:這是Mozilla公司推出的純粹基于HTML5/CSS3/JavaScript等網頁前端開發技術推出的操作系統,和HP收購自Palm的webOS有類似的軟件架構。HP收購了webOS之後的半年,即宣告放棄webOS,而Mozilla卻希望通過類似技術的Firefox OS成為Android的競爭者。一會兒我們分析下為什麼Firefox OS要比webOS有更強一些的生命力。
華為提出要開發的“自主”操作系統:作為一個智者,任正非不可能不知道一個真正“自主”的操作系統應該是什麼樣子的。華為就算再有錢,再有人才,短時間內也是搞不定一個“自主”操作系統的(如前所述,主要是建立對應的生態系統太難了)。這麼說來,華為開發“自主”操作系統,其目的其實就是做一個“備胎”,以便在和Android、Windows Phone等合作時能夠有一個可以討價還價的砝碼。也就是說,華為並不是真的要做“自主”的操作系統;或者這麼說,支持團隊去做,做成Android那樣最好,做不成Android那樣,如果真有一天打起架來可以湊合用也行。
阿里雲OS:馬雲同志的野心很大,他做阿里OS,就是要複制谷歌在移動互聯網的商業模式,進而在移動互聯網領域推廣阿里體系的服務和內容。可惜的是,馬雲貌似不太懂技術,也沒個明白人給他做參謀,結果花了錢還被人捏住了七寸。最新的消息,阿里雲OS獨立運行,再投個2億美金繼續搞。馬雲同志啊,光有錢是不行的,你身邊還得有個把技術大牛幫你把關、出謀劃策才行啊。
策略
好,面對這兩種開發“自主”操作系統的目的,應該有什麼樣的策略呢?其實策略很簡單,不管你是真心還是假意,都應該按照本文第三章給出的“自主”操作系統之特征進行開發,除此之外,別無他法。任何期望找捷徑的方法,都不可能獲得成功。這里所說的找捷徑的方法具體有:
‧給Android整容。如OMS、阿里OS。
‧忽略操作系統中生態系統的重要性,在Linux或其他開源操作系統內核、系統庫等基礎上包裹一個簡單的框架而形成的操作系統。這種操作系統,其複雜度和Linux發行版相當,離本人定義的真正“自主”操作系統還差十萬八千里。讀者可能會問,這樣的系統做備胎不是還行嗎?為什麼也得按照真做那樣開發呢?你要知道的是,對手也不是傻子,人家看你的架勢,就知道你不是真做──你起碼得拉出真做的架勢來,人家才能怕你啊!
順便談談我對基于瀏覽器技術的web操作系統的看法。
理論上講,瀏覽器可以做很多事情,甚至可以替代PC機上的通用操作系統。但是,最新的瀏覽器技術(HTML5/CSS3等),還存在一些技術上的問題。主要的問題有如下兩個:
‧瀏覽器主要採用的JavaScript編程語言,本質上是一種難于管理(源代碼保護、無法進行有效的軟件架構設計、難于調試等等)的編程語言,同時內存消耗巨大,性能不佳。最新的說法是,Facebook創始人直言全面採用HTML5的策略是個失誤,正在向操作系統的原生應用轉移。也就是說,JavaScript語言難以承載一個良性發展的生態系統。
‧因為許多原因(主要是利益和政治因素),HTML5相關的標准有分裂的跡象,同時進展緩慢。
HTML5技術作為原生應用的一種補充,可以起到很好的作用,但是,如果要想在瀏覽器技術上建立一個真正可以和Android等競爭的操作系統,恐怕還需要很長的時間(技術上必須有突破)。要不然,谷歌現在主推的應該是ChromeOS,而不是Android。
現在回答剛才提到的問題:為什麼Firefox OS可以比webOS的生命力更長久些?主要的原因是,Firefox OS是開源的,有比較強大的企業在主導其發展,作為一個脫胎于開源基金會的企業(Mozilla公司),也能獲得合作伙伴的一些好感;相反,因為webOS是封閉,HP又沒有能力像蘋果那樣打造一個完全封閉的平台和生態系統,所以最終的命運是被人拋棄了。雖然後來webOS也走上了開源的道路,但大勢已去,HP不親自帶頭搞,光靠開源社區是搞不成的。
方法
假定你是一名“自主”操作系統項目的技術管理者,你第一步要考慮的問題是什麼?許多人的回答可能是:先選操作系統內核、基礎庫什麼的。其實錯了,第一步要考慮的應該是你打算選擇什麼編程語言作為原生應用的編程語言。
世界上的編程語言有很多種,有些語言貼近機器,比如匯編語言、C語言,有些語言貼近人,比如Basic、Java,還有些語言用于特定領域,比如網頁服務器端使用的PHP,有些適合做不同軟件之間的粘合劑,比如Perl、Python。本文第三章已經解釋了編程語言以及圍繞編程語言形成的運行環境、框架是將操作系統區隔于其他操作系統的主要技術特征。因此,我們必須慎重選擇一種編程語言。而且一旦選定了一種編程語言,“自主”操作系統在開發者看來長什麼樣,其實就基本上定了。
選擇編程語言要考慮如下因素:這種編程語言是否易于學習和掌握?是否有龐大的開發者在使用它?這種編程語言是否具有高級語言的基本特征,比如,支持面向對象編程?這種編程語言是否是編譯執行的?這種編程語言是否利于保護開發者的知識產權?這種編程語言是否有完整的工具鏈支持?這種編程語言是否有集成開發環境的支持?這種編程語言是否易于保護整個操作系統不會被惡意代碼輕易破壞?如此等等。