开发成功的操作系统的艰巨性
操作系统开发是一项非常艰难的工作。开发一个成功的操作系统,必须组织一支具有很强实力和丰富经验的专业团队,还要有很大的资金投入。举微软开发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
【编辑推荐】