陸首群:“基于開源”為操作系統開發帶來機遇
開發成功的操作系統的艱巨性
操作系統開發是一項非常艱難的工作。開發一個成功的操作系統,必須組織一支具有很強實力和豐富經驗的專業團隊,還要有很大的資金投入。舉微軟開發Windows Vista操作系統為例,微軟組織了5000人的開發隊伍,投入90億美元,歷時6年,開發并不成功,連微軟自己都承認發布了一個失敗的版本;上世紀八十年代,IBM在開發OS-2操作系統時也摔過筋斗,無疾而終。
國內某些單位低估操作系統開發的復雜性和艱巨性,他們憑借幾十人或一、二百人的開發隊伍(技術力量薄弱,沒有什么經驗),投入更是少得可憐,花二、三年功夫,便推出自稱是“完全自主研發”的操作系統,有人更揚言要“甩掉開源搞自創”,他們獲得成功的可信度很低。
“基于開源”為操作系統開發帶來機遇
開源為開發操作系統提供機遇。透明、公開的開源操作系統問世,使得對操作系統內部架構無知(也無法去深入了解)的開發人員,獲得了了解操作系統體系架構的機遇,也使他們在這方面的知識產生飛躍;基于開源的操作系統可為開發工作節約大量人力、物力、財力和時間,可使操作系統的開發者們得以站在巨人肩膀上前進。因此開發基于開源的操作系統無疑是一條正確的開發路線。
近年來,很多基于Linux內核的操作系統相繼問世,如Android、WebOS、MeeGo等,便是采取了基于Linux內核的技術發展路線。
接受國家核高基專項費用資助的前提是,該項基礎軟件必須是自主開發的;如上述,國內目前開發操作系統宜采用基于開源的方式;有人質疑:開源與自主是否對立?!要弄清楚并處理好這個問題,須從分析操作系統體系架構出發。
操作系統的體系架構
操作系統的體系架構,由其底層(Base Layer)、中間件層(Middle Ware Layer)、用戶體驗層(User Experience Layer)以及獨立配置的軟件模塊,如安全模塊(Secarity Module)所構成。
底層主要是其內核(Kernel);對中間件層,從開發者角度看,主要指開發環境和運行環境(Development Environment and Runtime Environment),從用戶角度看,主要指各種功能模塊(Functional Modules)或應用架構(Application Framework);用戶體驗層(UE=UI+Applicaions),由用戶界面和各種應用程序所構成。所以,操作系統是一個多層架構、多元協議、許多構件構成的系統。
主干通用內核與分支專用內核
很多操作系統是基于Linux內核來開發的。Linux基金會(Linux社區)負責“Linux內核”官方(Official)或主干的各款通用版本的開發、發行和維護工作。對基于Linux內核的操作系統的開發者來說,可選擇某款Linux內核版本作為自己操作系統的內核,如果要對主干版本進行修改以形成自己的分支內核版本時,必須將其修改部分及時反饋給主干版本的維護管理者,取得他們對修改的認可,并在主干Linux內核中登記注冊,最終使這個分支內核版本成為Linux內核大家庭中一員。
Android是基于Linux內核的操作系統。谷歌Android開發團隊在開發Android操作系統過程中,曾將配置在Linux內核中的一些驅動模塊轉移到Linux內核之外,他們還重新定義、增設某些功能模塊(如電源管理模塊等),修改后一度引起了Linux社區與谷歌Android開發團隊之間的意見沖突,但最終還是通過協商取得了一致。上述案例表明,谷歌修改主干 “Linux內核”變成自己分支“Android內核”時,必須取得主干Linux內核維護管理者的認可,并在其中登記注冊,使“Android內核”成為“Linux內核”的一部分。
在中間件中的部分自創
中間件層次中的開發環境主要包括:(1)編輯器、編譯器、動態運行庫,(2)圖形界面開發工具和圖形庫,(3)多語言環境支持,(4)通信協議棧,(5)數據庫及其支持工具,(6)多種實用程序庫,(7)測試、遷移、發布等工具鏈等。中間件層次中的各種功能模塊或應用架構,如各種通信(Comms)類、互聯網服務(Internet SVCS)類、視頻服務(Visual SVCS)類、媒體服務(Media SVCS)類、數據管理(Data Mgmt)類、設備服務(Device SVCS)類、個性化服務(Rersonal SVCS)類等。
Android操作系統平臺由185個軟件構件以及它們分別遵守的19個開源許可協議所組成,而在全部開源許可協議中,以中間件平臺所遵守的Apach2開源許可協議為主體,另外是由開源促進協會(OSI)官方批準的開源許可協議,以及由民間協商簽訂的限制性互惠開源許可協議(Reciprocal)。
必須指出,如果要開發基于Android的操作系統,在對Android內核不作修改的情況下,Android開發團隊應該允許開發者對獨立的安全模塊、用戶體驗(包括用戶界面和各種應用程序)進行自創性開發,允許用戶定制,除此之外,也應允許開發者在“中間件”層次中對其中某些功能模塊(以及開發環境)進行自創性開發。這些自創性開發部分(可能是小部分)可和操作系統中引入的開源部分(可能是大部分)融合在一起;正因為在操作系統中具有自創性開發部分(可以是開源的也可是閉源的),開發者可以在其開發的操作系統中保持自主、可控性。在用戶體驗和中間件層中(或定制)的自創開發部分,可看作為對Android原創開源軟件的修改,這些修改不必向Android開發團隊反饋登記。
擴大在用戶體驗中的自創
不同的移動終端設備各有不同的用戶體驗。為了防止Android版本過多且散亂,Google曾經要求搭載Android操作系統的移動設備在其高端應用上統一用戶界面,但隨后因遭到大家反對未能實行。現在Google向搭載Android3.0/3.1(蜂巢,Honey Comb)的平板電腦31家制造商(合作伙伴)開放源代碼,并不再要求統一用戶界面。這些移動設備制造商可以開發自創的用戶界面和各種應用程序,并各自進行用戶體驗。
MeeGo——Linux操作系統的生命力
MeeGo操作系統本來是在Intel Moblin和Nokia Maemo整合基礎上由Linux基金會領導開發的。MeeGo在發展中遇到的挫折是Nokia調頭轉向棄它而去,可是MeeGo沒有倒下,繼續在拼搏。
MeeGo有哪些優勢呢?
1、MeeGo是開源的。
MeeGo與Android都是基于Linux內核的開源操作系統,但MeeGo更是一個Linux開發項目,是一款Linux操作系統。“Android內核”與“Linux內核”是有區別的,“MeeGo內核”就是“Linux內核”;“Android內核”是分支內核,“MeeGo內核”是主干內核。MeeGo代表Linux主流,其開發自然受到Linux社區和全球Linux志愿開發者鼎力支持。
2、Qt是MeeGo的開發環境和開發架構
Qt是一個十分優秀而豐富的開發工具包,實行LGPL授權方式而成為自由軟件。Qt雖然隸屬于Nokia的一家子公司,但自Intel與Nokia在MeeGo合作上分裂以來,Qt支持MeeGo的開發基本上未受到影響。
3、MeeGo的開發平臺運行效率高
如與Android平臺比,A平臺上有Java虛擬層,Java影響運行效率。
4、擁有強大的開發隊伍
Linux社區開發人員約3萬人,其中很多人可投向MeeGo的開發,Intel與MeeGo有關的開發人員約2000-3000人,Qt支持MeeGo的開發人員至今還有200人。
5、集成了很多先進技術
MeeGo目前存在的主要問題
1、急需建設、擴大生態系統
Intel(MeeGo)當前缺少重量級的合作伙伴登臺亮相,傳說中的LG、中國移動、中興通訊(還有聯想)不時傳出一些撲朔迷離的信息。
2、要加快推出高性能低功耗移動芯片
移動終端產品的市場競爭也與其軟硬件匹配優化有關,看來Intel已經加快了推出高性能低功耗低成本移動芯片的步伐,但真正見效恐怕要到明年。
我鼓勵國人與MeeGo合作,開發基于Linux內核的操作系統,追求開源與自主在新款操作系統中取得***融合。
原文:http://blog.sina.com.cn/s/blog_4b8a02690100sctk.html
【編輯推薦】