开发成功的操作系统的艰巨性
操作系统开发是一项非常艰难的工作。开发一个成功的操作系统,必须组织一支具有很强实力和丰富经验的专业团队,还要有很大的资金投入。举微软开发 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 已经加快了推出高性能低功耗低成本移动芯片的步伐,但真正见效恐怕要到明年。