基于开源的操作系统
基于开源的操作系统
(评国内开发操作系统走向何方)
中国开源软件推进联盟主席 陆首群
开发成功的操作系统的艰巨性
操作系统开发是一项非常艰难的工作。开发一个成功的操作系统,必须组织一支具有很强实力和丰富经验的专业团队,还要有很大的资金投入。举微软开发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?tj=1
- 19楼 yanweimin5 前天 23:48发表 [回复]
![]()
- 除非国家下决心搞个os,否则国内难出现自主的。。
- 18楼 f413933206 5天前 17:49发表 [回复]
![]()
- 不知啥时候本土才能有杰出的OS出现~
- 17楼 arm9linuxpp 2011-08-17 17:02发表 [回复]
![]()
- 一切等待时间来考量,暂时android领先,但很可能是来也匆匆,去也冲冲。呵呵
- 15楼 hearrt 2011-07-27 15:55发表 [回复]
![]()
-
- public void main(String[] args){
- }
public void main(String[] args){ }
- 14楼 kelvin9926 2011-07-25 00:08发表 [回复]
![]()
- 在国外一个工程师可以安安心心做几十年的技术,在中国过了3、40就没法继续软件工作了,环境造成的。
- Re: lm2302293 2011-08-20 00:54发表 [回复]
![]()
- 回复kelvin9926:你听谁说的国外的软件工程师都可以做几十年,我在上海,到处都是外国人,天天见面说话,我怎么不知道有这回事?
- 13楼 coolmelon1 2011-07-20 17:29发表 [回复]
![]()
- 国人与meego合作的前提时能挣到钱啊。。。meego先后被Nokia和Intel抛弃 名声差了不少。。。看看android在最近的官司风波里能胜出不 要是失败了 估计meego会有机会
- 12楼 z1988316 2011-07-15 20:30发表 [回复]
![]()
- 国内软件太浮躁,谁愿意花几年时间,几十亿元去搞一个产品,除了你不生活了。没有人坐得住,必须要快速的生产产品变成现金才能生存。这是现实,中国不是没有技术人员能搞,主要是没有那个公司愿意搞,军方用的操作系统部分是自主产的,因为他们不担心下一顿有没有饭吃!
- 11楼 hugerat 2011-07-14 15:41发表 [回复]
![]()
严重同意。我主要是做硬件的。但工作上也要写软件(不是小软件哟),四围的硬件工程师的确有些固步自封,不愿了解软件技术。做软件的,则基本没有软件工程的概念。写出的软件,不仅别人无法修改,维护,自已都无法修改维护。
- 10楼 zhaofengzhizi 2011-07-08 19:46发表 [回复]
![]()
- 中国在现有的条件下不发生意外,大家就只有幻想的份儿!没有人可以搞起来的,能搞起来的人也是不愿意搞的
- 9楼 lmx1989219 2011-07-06 09:21发表 [回复]
![]()
- 一切皆有可能,用中文开发一个操作系统吧
- 8楼 bluesky321 2011-07-04 21:44发表 [回复]
![]()
- 中国要搞纯自己的系统,估计得从零开始。慢慢来。。。
- 7楼 unituniverse2 2011-06-30 03:47发表 [回复]
![]()
- 国内的现状是:搞软件的和搞硬件的对着干,搞软件的不懂硬件,搞硬件的不愿了解软件技术(虽然他们也写一些小软件),而搞软件的总是沉迷于挖掘细节、编程技巧,却不愿意好好吃透软件工程、编译原理、操作系统等原理性的东西。
- 6楼 unituniverse2 2011-06-30 03:40发表 [回复]
![]()
- 希望看到区别于win/unix和linux
尤其是linux架构的操作系统的出现,最好是微内核的
另外一个“好”的操作系统意味着和和优质硬件厂商的
合作,否则系统性能无法充分发挥出来。很难想象没有好的硬件支持的系统能做得有多好
- 5楼 liuxinbo_1984 2011-06-29 17:52发表 [回复]
![]()
- MeeGo何去何从。。。
- 4楼 zhaofengzhizi 2011-06-25 19:08发表 [回复]
![]()
- 中国搞不出PC系统的!
- Re: icansaymyabc 2011-07-01 14:55发表 [回复]
![]()
- 回复 zhaofengzhizi:这个得看是什么人来领导。如果你给我90亿美元,我也能拉起一支队伍搞出操作系统来。10年时间,不敢说像win7那样好用,起码不能比今天的Linux差了。当然远远比不上10年以后的windows和linux是肯定的,毕竟人家领跑了那么多年了,咱从零开始。
- Re: sinkiang 2011-07-22 16:28发表 [回复]
![]()
- 回复icansaymyabc:别吹大牛了! 给你90亿,10年时间,你能搞个XP出来?
微软花了30年多时间,才有今天的成就。咱们国家才刚刚有自己的所谓CPU,就这已经落后了人家几十年,还操作系统呢!都多少年了,你连人家微软的内核源码还没看几条呢,还搞这搞那说起来简单。这东西真的很难,不是光靠几十亿的钱,不是光靠嘴上说说,光靠把linux修改修改,就声称搞出来自主知识产权的操作系统!扯呢!
- 3楼 malochj 2011-06-23 23:52发表 [回复]
![]()
- 有得有道理。。。 开发操作系统 office等大型基础软件 走开源路线是可取的 但关键是如何吃透和研究透开源的代码。。。。 这也同样是要花很多人力物力的事情。。。。。
- Re: unituniverse2 2011-06-30 04:06发表 [回复]
![]()
- 回复 malochj:linux在国内外普及不起来的原因就是因为那些国外主流硬件大厂不肯提供充分的支持。而他的菜鸟不友好性则导致了普通用户难以接受。
搞操作系统光靠雄心壮志是远远不够的
- Re: unituniverse2 2011-06-30 04:06发表 [回复]
![]()
- 回复 malochj:需要很多人合作才能完成。最后提供上层部件只能靠庞大的团队了。写个操作系统不是你大学做毕业设计那么简单的,设计个内核跑起来就完事了?充其量只是个玩具而已。最重要的一点是:你开发的操作系统需要主流硬件厂商的投入。他们不肯投入,你辛辛苦苦搞出来的系统就丑陋而性能低下。
- Re: unituniverse2 2011-06-30 04:05发表 [回复]
![]()
- 回复 malochj:你说的这个只是冰山一角。首先设计系统架构:怎样的架构最合理?这是个很大的问题,只有对硬件和软件都很了解的人才能搞出来。然后实现架构:大量的数据结构、编译系统、原生api原型的设计、策略和安全设计,这个不仅是智力、也是体力活,
- Re: lmx1989219 2011-07-06 09:20发表 [回复]
![]()
- 一切皆有可能,用中文开发一个操作系统吧
- 2楼 randyjiawenjie 2011-06-23 23:12发表 [回复]
![]()
- Linux社区开发人员约3万人,这帮人平时开发什么项目?
- Re: unituniverse2 2011-06-30 03:50发表 [回复]
![]()
- 回复 randyjiawenjie:“这帮人”多数都有自己的工作,甚至不是搞软件这一行的,利用业余时间写的linux组件。搞成这样已经很不错了
posted on 2011-08-28 22:24 compilerTech 阅读(472) 评论(0) 收藏 举报
浙公网安备 33010602011771号