成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

“自主”操作系統——為什么及如何

移動開發 Android
近一個月是個多事之秋(2012年9月),IT 和互聯網領域也不平靜。阿里云操作系統受到谷歌的打壓,華為任正非提出要開發自己的操作系統,中興也宣布今年第四季度將發布自己的操作系統。

[[94461]]

1 引言

近一個月是個多事之秋(2012年9月),IT 和互聯網領域也不平靜。阿里云操作系統受到谷歌的打壓,華為任正非提出要開發自己的操作系統,中興也宣布今年第四季度將發布自己的操作系統。一時間,微博 上有關自主知識產權操作系統的討論如火如荼。這樣的討論,就如同“水木清華”某些板面上的“月經貼”一樣,每隔一段時間就要火一次。但大部分討論其實討論 不到點子上,就如同“瞎子摸象”一般,大家基本上只是站在自己的立場,基于自己的經驗在判斷孰是孰非。這樣的討論效率低下,本人認為有必要寫一篇科普性的 文章,從政治、技術、工程、法律等幾個方面給“自主”操作系統來一個比較清晰的定義,并嘗試給出一些技術、工程等方面的建議。

1.1 作者的資格

為了說明本人有足夠的資格來寫這篇文章,給大家介紹一下本人的經歷。本人碼農出身,1993到1998年期間主要在微軟平臺上做程序開發,曾編寫過 DOS、Win32、MFC 程序,期間涉及 C/C++ 語言,SQL 數據庫、網站后臺等。從 1998 年底開始專注于 Linux 和嵌入式系統。主要作品為大名鼎鼎的 MiniGUI。在創辦飛漫軟件的近十年時間里,作為企業創始人和研發負責人,組織研發團隊持續開發 MiniGUI,開發了多個版本的嵌入式瀏覽器產品,也曾和美國公司合作,開發過類似 Android 這樣的移動操作系統,還將 Android 運行在了 MeeGO 上(也就是國際上有點名氣的 ACL,飛漫是主要開發者)。除了極其豐富的軟件開發、管理經驗之外,本人還編寫過幾本操作系統相關的書籍,不過比較老了,比較出名的是本人主持翻譯的 《Linux 設備驅動程序》第二版、第三版。有這些經歷和相關經驗做基礎,我相信本文所述將是比較客觀和完備的。希望本文對政策制定者、大型企業的決策者、自主操作系 統的開發管理者,以及一般的碼農們或多或少有一些幫助。

1.2 限制和定義

操作系統的類型很多,粗粗算起來,從小到大,有針對嵌入式系統的實時操作系統,比如 VxWorks、Nucleus 等;有現在大家熟知的針對移動終端的 Android、iOS、Windows Phone 等;有 Windows、Ubuntu Linux 等針對 PC 的操作系統;還有針對服務器的操作系統,比如 Windows NT 等。

從技術上講,操作系統的概念可大可小。小的話,一個內核就可以稱為一個操作系統,比如 Linux 內核、BSD 內核、Minix 內核等;大的話,則通常指的是整個軟件平臺,比如 Android、iOS、Windows Phone,有時還會將軟件商店、開發社區等包含在內,從而外延到整個生態系統。

本文所指“操作系統”,以及大家近期討論的操作系統,其實基本上被限制在移動終端領域當中,就是指能夠和 Android、iOS、Windows Phone 等相提并論的操作系統,主要用于智能手機、平板電腦,而不是實時操作系統、操作系統內核或者服務器操作系統——準確講,應該是指一個針對智能手機和/或平 板電腦的軟件平臺以及對應的生態系統。不過,我們當前還是把它稱為“操作系統(OS)”吧。#p#

2 到底要不要“自主”操作系統

對此問題,不同的人有不同看法,但其實都很偏頗。碼農,尤其是喜歡 Google 的碼農,通常會說,Android 是完全開源的,沒有必要重復造輪子;企業決策者或者政策制定者,則往往會認為必須有自主的操作系統。其實兩者都有道理,但兩者都沒有看到事物的本質。

2.1 “自主”操作系統的不必要性

在談“自主”操作系統的必要性之前,筆者先談談“自主”操作系統的不必要性。

在開源軟件大行其道的今天,操作系統不再那么神秘,任何有足夠財力的企業,依賴現有的開源軟件,都可以比較容易地推出一個能夠運行的操作系統。出于 此觀點,很多人認為有 Android 這樣的開源操作系統,就沒有必要再開發一個自己的操作系統了,到底誰擁有開源操作系統的知識產權,是無所謂的事情。

這個說法是有一定道理的。

從法律(指開源軟件許可證)和技術上講,就算 Google 不打算開源新的 Android 版本,不允許某些廠商使用 Android,我們一樣可以在已經開源的 Android 之上繼續發展自己的 Android 系統——只要遵循已經開源的 Android 的許可證約束即可,而 Android 系統主要使用的開源軟件許可證有 GPL(Linux 內核)、LGPL(各種運行時函數庫)、Apache(Dalvik 虛擬機及 Java 類庫),其實是非常寬松的。

這個說法的不足之處在于,未考慮到可能的專利(軟件相關的專利通常和實現無關,就是說,你重寫一段代碼,并不表示你可以規避對應的專利),以及是否有能力自行發展 Android 的問題。

前者非常要害。谷歌在開發 Android,尤其是 Dalvik 虛擬機以及 Java 類庫的過程中,肯定積累了大量專利,而這些專利是凌駕于軟件的著作權和許可證之上的。也就是說,如果你基于現有的 Android 派生了一個分支,要想將運行有這個 Android 派生版本的軟件放到自己的手機里邊銷售,谷歌馬上可以拿出專利大棒來限制你。當前,谷歌尚未拿出專利大棒來限制各種派生于 Android 的系統。拿阿里云 OS 和谷歌最近的爭論當中來看,谷歌也只是說阿里云 OS 導致 Android 不兼容。但一旦有廠商真的使用了阿里云 OS,谷歌馬上就會拿出專利大棒,這將毫無疑問。

至于有沒有能力來自行發展 Android 的問題,在中國有大量碼農基數的基礎上,只要有源代碼,就可以在短時間內組織團隊自行發展 Android。

2.2 “自主”操作系統的必要性

強調需要“自主”操作系統的主要有兩類人:政府中的政策制定者以及大型企業的決策者。

對政策制定者來講,面向未來由中美兩國主導的國際環境,作為兩極世界中的中國,有沒有自主的芯片、有沒有自主的操作系統,關系到兩個層面的東西,一 個是國家安全,一個是面子。在這樣的認識下,“核高基”的出現自然而然,其目的是支持國內企業發展核心電子器件、高端通用芯片及基礎軟件產品。我們暫且不 談核高基項目在實施過程中存在的制度性問題,它表明的國家是在戰略上的一種布局,是一種國家意志,涉及到政治領域。

作為企業決策者,沒有自主的操作系統,他將在很多方面受制于人。就拿阿里云和谷歌的爭議事件來看,宏碁受到了來自谷歌的壓力,然后就乖乖投降了。這 里邊有兩個值得思考的地方:(1) 既然 Android 這么好,為什么宏碁還要和阿里 OS 合作?后者肯定沒有 Android 成熟啊。(2) 為什么谷歌一施壓,宏碁就放棄了和阿里 OS 的合作呢?顯然,宏碁有動機選擇另一個 OS 給自己的智能手機,可能的原因無外乎兩種:阿里給錢了或者宏碁不希望被谷歌控制;另外,宏碁又那么容易地被谷歌搞定,說明谷歌能帶給宏碁的利益遠遠大于阿 里。

另外聯想到微軟向 Android 廠商收取專利許可費的事情,像宏碁這樣的廠商,肯定也會被微軟勒索,也包括中興、華為等國際化的 Android 手機廠商,無一例外。對企業決策者來講,這很難受——給別人做嫁衣啊,有時候還兩頭受氣!所以,小的廠商需要投靠大樹來庇護自己(大多數乖乖就范于谷歌或 微軟),大的廠商就要考慮是不是開發一個“自主”的操作系統來抗衡了。

這樣的思路下,華為、中興等大的智能手機廠商,開發“自主”操作系統的動機非常強。

像阿里這樣的公司,開發OS,其目的是要復制 Google 的商業模式,加上阿里 OS 又沒有撇清和 Android 的關系,受到 Google 的打壓就在情理之中了。

2.3 “自主”應強調在“有效知識產權保護下的自己主導”

根據上面的分析,看來我們還真的需要有“自主”的操作系統。但是,“自主”到底是自主什么呢?

在功能手機和實時嵌入式系統領域,我們不是沒有“自主”的操作系統,比如 MTK 或者展訊的操作系統,以及諸如早期的 Hopen、道系統等。在通用操作系統領域,國家也長期支持了諸如麒麟操作系統、紅旗 Linux、中標 Linux、新華 Linux 等多家本土操作系統廠商。但市場表明,國家支持的這些操作系統都將消亡或者正在消亡。

本人認為,國家支持下進行“自主”操作系統的開發有合理之處,畢竟開發操作系統是一件比較困難的事情。但是,這里邊有一個重要的誤區和制度設計上的錯誤,就是只強調了“自有知識產權”,而沒有強調“自己主導”。

在強調“自由知識產權”的情況下,政府對受資助企業的“自主”操作系統進行考核時,大部分情況下考核的是企業有沒有獲得對應的知識產權,就是軟件的 著作權和/或對應的專利,而并沒有考核能否主導一個產業鏈。就如同 Google 那樣可以控制這個產業鏈一樣,受資助的企業,能不能做到讓別人用了你的操作系統,就沒法不繼續用?在這樣的思路下,政府需要在更長的周期內,考核受資助企 業的市場份額是否有擴大,是否建立了良好的生態系統,讓使用者、開發者欲罷不能,而不是簡單的著作權證書和專利數量,或者是否達到了一個給定的出貨量(因 為出貨量是可以作假的)。

也就是說,我們應該重新定義“自主”這兩個字,從“自有知識產權”向“有效知識產權保護下的自己主導”轉移。

為什么這里強調“有效知識產權”呢?這是因為,在開源軟件成為趨勢的情況下,構建一個自己的操作系統,可以使用很多已有的開源軟件,我們沒有必要所 有代碼都自己編寫,而且越底層的代碼就越沒有必要自己重寫一遍。這如同一只桃子,好吃的是果肉,而不是果核。像內核、基礎庫、常用運行時函數庫等等,都不 必自己重新開發。而且這么做幾乎沒有任何潛在的法律問題,當然,前提是你要告訴大家你用了哪些開源軟件,而且你也尊重了這些開源軟件的許可證。這樣下來, 一個操作系統的軟件著作權已經不再重要,重要的是相關的專利、自己獨有的創新以及圍繞操作系統建立起來的生態系統。#p#

3 “自主”操作系統應該具備的特征

那么,“自主”操作系統應該張什么樣?要回答這個問題,我們先看看假的“自主”操作系統張什么樣。所謂假的“自主”操作系統,就是那些號稱“自主”操作系統,但其實:

  • 只是在已有的開源操作系統之上加了一層皮。比如各種基于 Android 的第三方 ROM,比如 MIUI、Flemy 等。這種操作系統僅僅在 UI/UE 上做了一些工作,就如同一個人換了一身衣服那樣,實質上這個人不會因為換了一身衣服而從張三改叫成李四。
  • 修改了已有開源操作系統的內部代碼,做了一些優化或者去掉了別人的一些東西,添加了一些自己的內容。比如阿里 OS 就屬于這種,或者哪些號稱深度定制的 Android 系統也屬此類。這種做法如同整容,的確動了些刀子,甚至改變了性別,但人還是那人,改了名字或性別也還是那人。

這么類比下來,讀者應該就知道了,真的“自主”操作系統,必須要有自己的靈魂,只有這樣,不管換什么衣服、是不是經過了整容,那人還是那人;通俗一點講,只有換了腦袋的才能是一個全新的個體。

那么在操作系統當中,什么東西是靈魂?這個問題回答起來蠻難的。我們先看看哪些東西肯定不屬于靈魂:

  • 無法形成有效知識產權的軟件組件,或者說,滿世界有很多(開源的)實現的軟件組件。比如內核、基礎函數庫、網絡協議、圖形庫、瀏覽器引擎等等。這 些東西可以看成是形成一個智能動物(比如“人”)的骨架或者軀體、甚至心臟,但遠遠算不上腦袋或者靈魂。這也是為什么筆者主張在“自主”操作系統中要盡量 使用現有的成熟開源軟件、而且不建議再行發明此類輪子的原因。

要知道哪些東西是靈魂,我們分析下 Google 在和阿里 OS 爭論的過程中主要維護的是什么東西:

  • Google 的說法:阿里 OS 采用了 Android 的虛擬機和 Framework,但又不兼容 Android,破壞了 Android 的生態系統。這個說法可能還不是 Google 打壓阿里 OS 的最關鍵原因,但起碼說出了他們的擔憂:阿里 OS 是想借 Android 打造自己的一個生態系統!另外,Google 對那些只換衣服的 Android 系統采取聽之任之的態度,和他們一貫以來標榜的“只要兼容,我們歡迎”的態度一致——也就是說,這些系統沒有從根本上動搖 Google 的生態系統。

所以,真正的“自主”操作系統的靈魂,就是那個背后的、無形的生態系統,一個看似開放但其實封閉的生態系統。一旦加入這個生態系統,你就很難下來——正所謂“上了賊船下不來”。

這就是我的回答:一個真正“自主”的操作系統,必須建立自己的生態系統,一個開放的,但在某種程度上又封閉的生態系統。

操作系統生態系統?這名詞大家說了很多年了,一個生態系統具體應該是什么樣子?筆者從如下幾個方面解釋一下:

  • 技術層面。操作系統必須通過某種技術將自己和其他的操作系統區隔開來。比如 Android 采用 Java 語言,但使用了不同于 Sun(現在是 Oracle) JDK 的 API;iOS 采用了 Object C 語言,為應用程序提供的接口和框架甚至有別于蘋果自己的 Mac OS X;Windows Phone 采用了 C# 語言,在 .Net 框架下進行開發。為什么這些操作系統不使用 C/C++ 這類語言呢,C/C++ 尤其是 C 可是這些操作系統內核的編程語言啊!?這里有如下幾個原因:
    1. 操作系統開發者不希望普通的應用程序通過使用比較低級的編程語言來控制系統或設備,畢竟操作系統是給智能手機、平板電腦這種消費類的電子設備使用的。
    2. 通過采用更加高級的語言來簡化編程和開發人員的學習難度。
    3. 通過對看起來非常復雜的框架的持續演進,達到牽著開發者和廠商鼻子走的效果。
    4. 便于形成依附于某個操作系統的獨有的開發者社區和文化。
  • 法律層面。操作系統必須通過創建自己的有效知識產權體系來保護自己。前面已經說過,越底層的軟件組件越沒有市場價值(碼農們可能不喜歡聽這話,但 現實就是這樣的)。通過建立全新的、包裹在底層操作系統之上的框架、編程接口、編程語言等基礎設施,操作系統開發商才有可能建立起有別于他人的有效的知識 產權保護體系。也就是說,如果連框架、編程語言、編程接口等都抄襲他人(就算是開源的、許可證允許的),那永遠也無法形成一個可以有效保護自己的知識產權 體系。
  • 市場層面。通過和上下游企業的合作,建立某種聯盟或者許可、授權機制,讓操作系統的用戶(芯片廠商、手機廠商、平板廠商)能夠從中獲益。比如 Android 開放聯盟,做的就是這個事情。
  • 開發者社區。一個好的操作系統之生態系統,要充分照顧開發者的利益,具體有如下幾點:
    1. 要有好的開發工具,便于開發者學習、開發和調試軟件。
    2. 要有好的文檔或者教程,幫助開發者迅速掌握相關開發技巧。
    3. 最重要的,要能夠讓開發者賺到錢。

看到這里,相信大家都會意識到:這也太難了吧!的確,這非常難,這也是為什么 Moblin、MeeGo、Bada、WebOS 等操作系統相繼失敗,而到目前,只有 iOS、Android、Windows Phone 這三種操作系統的原因。

但是,世上無難事只怕有心人。接下來我告訴你如何搭建一個真正的“自主”操作系統。#p#

4 如何開發“自主”操作系統

4.1 開發“自主”操作系統的兩種目的和策略

開發“自主”操作系統的主要目的有兩種:一種是想再造一個類似 Android、iOS 的操作系統,并作為其競爭者;一種僅僅是為了在商務談判和合作中獲得一個比較好的籌碼。當然,還有一種目的就是騙取政府的財政支持,對這類不良目的,不屬本文討論范圍。

我們先猜度一下國內外這幾年出現的一些“自主”操作系統,其目的是什么:

  • 中國移動通過博思通訊開發的 OMS。本質上 OMS 是 Android 的一個派生系統。很明顯,中國移動開發 OMS 的目的屬于前一種。中國移動希望利用自己強大的市場地位來左右手機供應商的 OS 選擇,并建立起類似蘋果那樣的全封閉的平臺和生態系統。可惜的是,OMS 并沒有取得預期效果,在來自聯通、電信的強大市場壓力下,中國移動不得不允許 TD 手機使用正統的 Android 系統;OMS 也正在被市場淡忘。這里有個比較有意思的現象,Google 從來沒有公開質疑過 OMS 系統,阿里 OS 的做法和 OMS 類似,卻遭到了打壓。這里有兩個原因,一個是中國移動的市場地位擺在那里(加上還是巨型國企),Google 不敢輕舉妄動,另外一個是 OMS 采用的是 Android 早期版本,那時候 Android 的市場地位還沒有這么強。
  • 中國聯通所謂的 UniPlus。可惜的是,UniPlus 似乎從來沒有面過世,也許中國聯通只是放了一個煙霧彈而已。要是真開發,目的自然應該和中國移動的 OMS 類似。
  • 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,就是要復制 Google 在移動互聯網的商業模式,進而在移動互聯網領域推廣阿里體系的服務和內容。可惜的是,馬云貌似不太懂技術,也沒個明白人給他做參謀,結果被人害了,花了錢 還被人捏住了七寸。最新的傳言,說阿里 OS 要換將,繼續再投個 2 億搞。馬云同志啊,光有錢是不行的,你身邊還得有個把技術大牛幫你把關、出謀劃策才行啊。

好,面對這兩種開發“自主”操作系統的目的,應該有什么樣的策略呢?其實策略很簡單,不管你是真心還是假意,都應該按照本文第 3 章給出的“自主”操作系統之特征進行開發,除此之外,別無他法。任何期望找捷徑的方法,都不可能獲得成功。這里所說的找捷徑的方法具體有:

  • 給 Android 整容。如 OMS、阿里 OS。
  • 忽略操作系統之生態系統的重要性,在 Linux 或其他開源操作系統內核、系統庫等基礎上包裹一個簡單的框架而形成的操作系統。這種操作系統,其復雜度和 Linux 發行版相當,離本人定義的真正“自主”操作系統還差十萬八千里。讀者可能會問,這樣的系統做備胎不是還行嗎?為什么也得按照真做那樣開發呢?你要知道的 是,對手也不是傻子,人家看你的架勢,就知道你不是真做——你起碼得拉出真做的架勢來,人家才能怕你啊!

順便談談我對基于瀏覽器技術的 web 操作系統之看法。

理論上講,瀏覽器可以做很多事情,甚至可以替代 PC 機上的通用操作系統。但是,最新的瀏覽器技術(HTML5/CSS3等),還存在一些技術上的問題。主要的問題有如下兩個:

  1. 瀏覽器主要采用的 JavaScript 編程語言,本質上是一種難于管理(源代碼保護、無法進行有效的軟件架構設計、難于調試等等)的編程語言,同時內存消耗巨大,性能不佳。最新的說法 是,Facebook 創始人直言全面采用 HTML5 的策略是個失誤,正在向操作系統的原生應用轉移。也就是說,JavaScript 語言難以承載一個良性發展的生態系統。
  2. 因為許多原因(主要是利益和政治因素),HTML5 相關的標準有分裂的跡象,同時進展緩慢。

HTML5 技術作為原生應用的一種補充,可以起到很好的作用,但是,如果要想在瀏覽器技術上建立一個真正可以和 Android 等競爭的操作系統,恐怕還需要很長的時間(技術上必須有突破)。要不然,Google 現在主推的應該是 ChromeOS,而不是 Android。

現在回答剛才提到的問題:“為什么 FirefoxOS 可以比 webOS 的生命力更加長久些呢?”主要的原因是,FirefoxOS 是開源的,有比較強大的企業在主導其發展,作為一個脫胎于開源基金會的企業(Mozilla公司),也能獲得合作伙伴的一些好感;相反,因為 webOS 是封閉,HP 又沒有能力像蘋果那樣打造一個完全封閉的平臺和生態系統,所以最終的命運是被人拋棄了。雖然后來 webOS 也走上了開源的道路,但大勢已去,HP 不親自帶頭搞,光靠開源社區是搞不成的。

4.2 技術層面上的考慮

假定你是一名“自主”操作系統項目的技術管理者,你第一步要考慮的問題是什么?許多人的回答可能是:先選操作系統內核、基礎庫什么的。其實錯了,第一步要考慮的應該是你打算選擇什么編程語言作為原生應用的編程語言。

世界上的編程語言有很多種,有些語言貼近機器,比如匯編語言、C語言,有些語言貼近人,比如 Basic、Java,還有些語言用于特定領域,比如網頁服務器端使用的 PHP,有些適合做不同軟件之間的粘合劑,比如 Perl、Python。本文第 3 章已經解釋了編程語言以及圍繞編程語言形成的運行環境、框架是將操作系統區隔于其他操作系統的主要技術特征。因此,我們必須慎重選擇一種編程語言。而且一 旦選定了一種編程語言,“自主”操作系統在開發者看來長什么樣,其實就基本上定了。

選擇編程語言要考慮如下因素:

  • 這種編程語言是否易于學習和掌握?是否有龐大的開發者在使用它?
  • 這種編程語言是否具有高級語言的基本特征,比如,支持面向對象編程?
  • 這種編程語言是否是編譯執行的?
  • 這種編程語言是否利于保護開發者的知識產權?
  • 這種編程語言是否有完整的工具鏈支持?
  • 這種編程語言是否有集成開發環境的支持?
  • 這種編程語言是否易于保護整個操作系統不會被惡意代碼輕易破壞?
  • 如此等等。

其實很多讀者看到這里,都會想到 Java 語言。是的,Java 語言或其派生語言如 C# 是構架“自主”操作系統的最佳編程語言。可惜,已經被 Android 和 Windows Phone 給捷足先登了。

如此一來,你可以考慮重新設計一門類似 Java 的語言,也可以通過其他手段,讓你使用 Java 語言構建的操作系統有別于其他操作系統。比如,構建自己的虛擬機,如 Android 使用的 Dalvik 那樣(Dalvik 和 Oracle 的 JDK 標準虛擬機有很大不同,從而讓 Oracle 還挺難告贏 Google 的);你也可以用 Dalvik,但讓類庫、運行環境和 Android 不同(這樣做的法律風險要大一些)。總之,你需要有自己的創新,全部抄襲是不行的。

確定了編程語言,接下來的工作其實就比較直接了,從上而下設計就是了。主要有:

  1. 定義和實現提供給原生應用程序的基礎 API 和/或虛擬機。
  2. 在應用程序基礎 API、標準 C/C++ 函數庫和相關組件(通常都是開源軟件)的基礎上構建操作系統的運行環境和框架。主要涉及系統服務、模塊之間的通訊機制,包括圖形界面、瀏覽器引擎、OpenGL ES 支持接口等等。
  3. 同時選擇操作系統內核,通常也就是 Linux,要與眾不同,用 BSD 也行。
  4. 搞定集成開發環境和模擬器,讓開發者可以在 PC 機上為你的操作系統開發應用程序。
  5. 讓你的操作系統運行在真實硬件上,為開發者提供應用樣例和文檔。
  6. 持續迭代,讓你的“自主”操作系統不停往前發展。

上面的第一點和第二點,是“自主”操作系統有別于其他操作系統,且支撐你可以和其他人競爭的關鍵點。往下的東西都不是構成“自主”操作系統真正競爭力的東西。

這么看來,其實也挺簡單的。不是嗎?貌似有錢、有個把技術上的明白人就能做到。技術上沒問題了,市場、法律等方面的事情,請專業人員幫忙,中國這類人才還是蠻多的,缺的,其實還是技術人員以及懂系統工程和軟件開發的管理人員。

4.3 快速搭建一個“自主”操作系統

這里給大家介紹筆者早先和美國一家公司合作,嘗試搭建的一個操作系統,其實在當年這些東西的基礎上,搭建出來一個有別于 Android 的開源“自主”操作系統還是非常快的。

這個系統使用了 Linux 內核和標準的 C/C++ 函數庫,以及一些和 Android 體系結構類似的 C/C++ 運行庫,使用了筆者公司的開源軟件 MiniGUI、WebKit 瀏覽器核心引擎等等。基礎的東西就這些。之上是開源的 Kaffe JVM(后來改成了 Cacao JVM),和符合 J2SE 規范的類庫實現,再往上就是運行環境和框架了。見下圖:

mpeer.png

可惜的是,真正具有核心價值的運行環境和框架,是美國合作方自己開發的,我手里沒有源代碼。相信讀者也能明白,美國合作方掌握的才是精華。

如果要在這套系統基礎之上快速開發一個“自主”的操作系統,我們需要:

  • 重新定義類庫,也就是基礎 API,讓我們的系統從靈魂上有別于其他系統。必要的話,優化或替代開源的虛擬機(淘寶最近開源了一個 JDK 虛擬機,不過是針對 J2EE 的)。
  • 全新設計和實現適合于智能手機的運行環境、框架。
  • 全新設計基本的智能手機應用軟件。
  • 開發模擬器,并集成到 Eclipse 集成開發環境中。
  • 還有,這個系統是 2006 年開發的,我們還需要將底層的內核、基礎函數庫等更新到比較新的版本。

要做的工作還是蠻多的,但這個系統在 2007 年的時候,就已經可以運行在主頻在200M Hz 左右的手機上了。

當然,這個系統離本人定義的真正“自主”的操作系統還有很大的距離。但是,起碼技術上的方向是基本正確的,要知道,這個系統幾乎是和 Android 同時發起的。后來在 2007 年,Google 宣布開源 Android 后,美國合作方敏銳感覺到了 Android 將是未來的趨勢,就直接轉向了 Android 平臺,項目也就終止了。#p#

5 給相關人員的建議

5.1 給政策制定者

這里所說“政策制定者”主要指的是“核高基”等政府資助項目的決策人。其實前面已經說過了,這里重申一下:

政府需要在更長的周期內(至少五年),考核受資助企業的市場份額是否有擴大,是否建立了良好的生態系統,讓使用者、開發者欲罷不能,而不是簡單的著 作權證書和專利數量,或者是否達到了一個給定的出貨量(因為出貨量是可以作假的)。也就是說,我們應該重新定義“自主”這兩個字,從“自有知識產權”向 “有效知識產權保護下的自己主導”轉移;在知識產權方面,要強調有效專利數量,而不是著作權;甚至應該要求受資助企業按某種許可證條款開放源代碼。

政策制定者甚至可以參照本文 3 章給出的“自主”操作系統之定義,將整個“自主”操作系統的研發和推廣分為三個部分:

  1. 科研類,兩到三年為周期,以研究新的編程語言及其相關設施(如虛擬機及其優化技術)為主。
  2. 工程類,兩到三年為周期,圍繞指定的編程語言發展外圍工具鏈(編譯器、調試器)、開發工具、運行環境、框架等。
  3. 法律類,半年到一年為周期,研究和分析采納已有編程語言面臨的知識產權風險,如何規避等等。

政策制定者切忌急功近利,要按照客觀規律辦事,將科研類的課題交給研究機構,將工程類以及市場推廣等方面的課題交給企業,將法律類的課題交給大專院校。只有這樣,才能首先讓方法正確,方法上正確,加上合理的考核制度,才能讓錢產生真正的效益。

在花錢方面,在一盤大棋下的統一部署下,初期讓多一些的企業或機構參與,一年一驗收,逐步淘汰那些不合格的,最后剩下來一、兩個企業就好。十億美金,外加企業自籌部分,我看基本夠了。

5.2 給大型企業決策者

有意開發“自主”操作系統的大型企業決策者首先要明白,開發“自主”操作系統是一個長期、艱巨的系統工程。甚至,你需要準備一大筆錢來和已有的巨頭打官司(微軟賠付給 Sun幾十億美金之后,才讓自己的 C# 和 .Net 平臺成為“干凈”的語言和平臺)。

另外,如前所述,不管是真心還是假意,都要拿出十足的架勢來真做,而且,對內、對外都要強調這點。要知道,你期望得100分,下屬大多數情況下只能給你 80 分;你期望得 1000 分,下屬也許就可以給你500分。這樣才能超出決策者自己的預期,才能收到更好的效果。

5.3 給“自主”操作系統的技術負責人

這事兒如果恰好讓你負責,那簡直是,怎么說呢,是個“揚名立萬”的機會啊!你要知道的是,這事兒和制造“兩彈一星”差不多。

首先你要掂量掂量,你有沒有這個本事。所謂“沒有金剛鉆,不攬瓷器活”,說的就是這個道理。有興趣的也別來找我,我做點小項目可以,真要我負責,我沒這個本事。

另外一方面,你要是違背知識分子的良知,幫助一些不良人員騙取國家的資助款項,就更不應該了。這可是要被人戳脊梁骨的;有沒有錢拿永遠是小事,昧了自己的良心可是大事。

5.4 工程上的建議

在具體的研發實施過程當中,開發負責人必須特別注意工程方面的問題:

  • 先做什么、后做什么,或者那些可以并行做。
  • 不同的軟件模塊,應采取不同的軟件開發管理模型。API 設計、框架等的開發,適合采用瀑布法模型;應用軟件或者小型模塊的開發,適合采用敏捷開發模型。但整個系統,應要不停迭代,所以版本控制非常重要。
  • 特別要注意代碼的質量控制以及文檔的全面、完備、簡潔和邏輯性。

這方面,如果需要幫助,本人可盡微薄之力。

責任編輯:佚名 來源: FMSoft.CN
相關推薦

2009-12-14 18:27:21

Linux操作系統

2010-01-05 17:16:51

2010-01-06 15:41:07

Linux操作系統

2012-06-08 09:16:16

操作系統

2010-03-03 08:47:23

朝鮮操作系統

2012-09-26 11:10:05

自主開發移動操作系統

2023-04-13 08:09:35

操作系統虛擬地址內存

2025-01-06 08:28:45

C語言操作系統程序

2022-06-26 00:24:57

C語言操作系統語言

2014-09-02 11:43:42

國產操作系統

2014-08-25 09:19:17

國產操作系統

2019-12-20 10:32:12

操作系統Android 數據

2020-12-17 18:30:44

華為鴻蒙智能手機操作系統

2022-01-17 11:53:39

操作系統計算機來

2018-12-19 12:03:02

操作系統WindowsLinux

2011-11-07 09:04:56

2021-07-19 09:00:24

微軟Windows 11Windows

2014-12-30 10:05:42

操作系統

2022-07-29 10:42:51

Linux隱私

2014-02-19 14:33:17

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产免费让你躁在线视频 | 久久久久久亚洲 | 91精品国产综合久久国产大片 | 日韩一区二区三区在线 | 国产免费看 | 久久久久久色 | 91天堂| 网黄在线| 久久久久久国产精品 | 日韩理论电影在线观看 | 精品视频在线免费观看 | 日韩在线观看中文字幕 | 婷婷久久综合 | 亚洲精品电影 | 在线免费观看毛片 | 狠狠综合久久av一区二区小说 | 日本久久精品视频 | 国产精品中文字幕在线播放 | 久久久久无码国产精品一区 | 免费观看一级特黄欧美大片 | 日韩免费高清视频 | 日韩精品一区二区三区第95 | 精品国产区 | 精品欧美乱码久久久久久1区2区 | 久久久久久国产一区二区三区 | 国产在线a视频 | 色婷婷综合久久久中文字幕 | zzzwww在线看片免费 | 亚洲国产精品一区二区三区 | 97免费在线观看视频 | 国产精品一区二区三区四区 | 成年网站在线观看 | 日日爱夜夜操 | 久久久久精 | 亚洲在线一区二区 | 欧美一区二区三区在线观看 | 免费黄色网址视频 | 日韩欧美国产一区二区 | 国产91久久久久久 | 国产伦一区二区三区久久 | 老子午夜影院 |