在讨论开源的嵌入式操作系统(简称嵌入式OS)之前,我们先把开源软件搞清楚。“开源软件”目前并没有明确定义,也没有标准许可证。许多公司采用开放源代码一词,大概有这样两种情况。第一,开源软件的许可条款是一个组合条款,并不都是GPL。比如Android里面就有多种许可证(GPL、Apache和BSD)[1]。我们知道Linux 内核是采用GPL,用户任何修改必须开源给社区。Android 的许可可以让用户为自己的应用制作专用软件(遵循Apache和BSD许可)。第二,一些商业软件称自己是开源软件,其实它们只是开放源代码给用户或者大众,让大家免费评估和试用,如果你真正的使用在商业项目了,需要技术服务了,那对不起,他们要收费了。这样的开源软件不属于我们本篇讨论的范围。
Linux
由Linus Torvalds在1991年发表的Linux开放操作系统,是由在互联网上的志愿者们开发的,吸引了许许多多忠实的追随者,自1999年稳定的2.2 版本发布以来,Linux早已经在服务器和台式机上取得了巨大的成功,正在嵌入式系统中大放异彩。许多人认为Linux可以获得在嵌入式市场上的认可,真正的关键的原因是得益于Linux高质量和其生命力,当然可以给Linux开发人员提供了灵活性和开放源码选择,不收取运行时许可使用费也是开发者选择Linux的理由。与商业软件授权方式不同的是,开发者可以自由修改的Linux,以满足他们的应用需要。在技术上,因为基于UNIX技术,Linux提供广泛的功能强大的操作系统功能,包括内存保护、进程和线程,以及丰富的网络协议,Linux与POSIX标准兼容,从而提高了应用的可移植性。Linux支持多种微处理器,总线架构和设备,通常情况下,芯片公司的驱动程序,应用相关的中间件,工具和应用程序都是先为Linux开发的,后来移植到其他OS平台,这些特性都非常适合于嵌入式系统应用。
Montavista Linux
谈到嵌入式Linux,MontaVista是一定要提到的,它对于Linux在嵌入式系统商业应用起到重要的作用,MontaVista创始人和首席执行官正是第3篇里面讲到的Jim Ready,他是公认的商业操作系统的先驱,有超过25年在嵌入式软件行业的经验。当他还在Ready System时候,他就关注Linux的发展,93年他曾下载过0.98版本Linux并尝试运行起来,他预见到Linux将成为未来影响嵌入式市场的一个重要因素。1999年在Alloy创业投资公司的支持下,Jim开始建立一个嵌入式Linux软件工程师的公司,目标是开发一个嵌入式Linux 软件平台,也就是Hard Hat Linux。如图1戴帽子的企鹅的宣传画。2001年Hard Hat Linux 2.0 版本发布之后,在Red hat(红帽)公司一再要求下,产品改名为Montavista Linux,之后陆续发布了2.1/3.0/3.1/4.0和后来5.0 版本。从技术上看,Montavista Linux不只是一个通用的Linux发行版,它更是为嵌入式系统所需的可靠性和实时性(通过对2.4内核加入实时补丁)而精心设计,支持高端嵌入式系统使用的处理器架构x86、ARM、PowerPC 和MIPS 、一系列的驱动程序和板级支持包。它有一整套的开发工具,闪存和固态存储文件系统,还有可以很容易地监视系统的完整性和性能的各种工具[2]。
图1: Hard hat Linux戴帽子企鹅的宣传画
Montavista创建以后的10年间,借助开源软件之势,迅速发展,并成功的将其Montavista Linux应用在通信基础设备,智能手机,数字电视机和机顶盒等各种嵌入式系统中,国际顶级的设备制造商纷纷采用它的技术和产品,比如NEC、Motorola和三星电子。Montavista Linux 的出现对于传统的商业RTOS 是很大的冲击,客户逐渐认识到开源软件的价值,纷纷转向开源,遵循开源规则的Montavista就是最好的选择之一,虽然期间也有几个竞争对手,比如1995年在匹斯堡成立的timesys,虽然也有着不错的产品,但是毕竟远离硅谷又不熟悉嵌入式软件运作模式,所以没有形成对Montavista 威胁,真正的威胁还是传统的RTOS巨头,当他们认识到开源软件潮流已经到来的时候,市场的竞争才真正到来了。经历几轮的风险投资,Montavista 没有能够实现盈利预期,再经过2008年金融危机的冲击,2009年Montavista被半导体公司Cavium收购。
Red Hat的eCos
eCos全称是Embedded Configurable Operating System,它出生于1997年,可以说是嵌入式领域的一个后来者,相对其他的系统来说,它非常年轻,在设计理念上面是比较新颖的,eCos绝大多数代码使用C++写作完成。eCos最早是Cygnus公司开发(该公司成立于1989年,大家一定知道Cygwin吧,就是他们开发的),1999年被RedHat收购,2002年RedHat因为财务上的原因放弃了RedHat项目,解雇了eCos的开发人员,2004年在eCos开发者的呼吁下,RedHat 同意把eCos版权转给开源软件基金会。之后,eCos主要开发人员组建了一个新的eCosCentric公司,继续进行eCos的开发和技术支持。
eCos 最大的特点是模块化,内核可配置。如果说嵌入式Linux太庞大了,那么eCos可能就能够满足你的要求。它是一个针对16/32/64位处理器的可移植开放源代码的嵌入式RTOS。和Linux不同,它是由专门设计嵌入式系统的工程师设计的。eCos提供的Linux兼容的API能让开发人员轻松的将Linux应用移植到eCos。 eCos 的核心具备一般OS功能,如驱动和内存管理、异常和中断处理、线程的支持,还具备RTOS的特点,如可抢占、最小中断延迟、线程同步等。eCos支持大量外设、通讯协议和中间件,比如以太网、USB、 IPv4/IPv6、SNMP、HTTP等。
eCos的专利受eCos 许可证所保护,这是一个GPL 许可证的修改版,其准许开发者在其上开发的应用程序(即eCos 以外自行撰写的部分)可以不用跟着GPL 一起发布。应用程序开发者可免費的取得其完整的源码,并针对其作任意的修改与在其上开发自己的应用程序并发布,唯一的限制只是若有修改到eCos 本身,其需将修改的源码回报給eCos 开发小組。当开发者将其当为产品时,也不需支付版税。
许多公司都在使用eCos,并先后成功推出了使用eCos的嵌入式产品,比如
Brother网络彩色激光打印机、DelphiCommuiport车载信息处理系统、IomegaHipZip数字音频播放器、Ikendi指纹识别系统、3Glab移动电话、GPS卫星地面设备等。[3、4]
Android
Android是谷歌公司开发的针对高端智能手机的一个操作系统(OS),其实Android不仅仅是一个OS,也是一个软件平台,可以应用在更加广泛的设备中。在实际应用中,Android是一个在Linux上的应用架构,优势是能够帮助开发者快速地布置应用软件。Android成功的关键是它的授权方式,它是一个开源软件,主要的源代码的授权方式是Apache,该授权允许使用者在Android源代码上增加自己的知识产权,而不一定要公开源代码。
直到今天,Android 的开发主要还是集中在移动终端上,这是谷歌的主要目标市场,相关软件IP和开发工具也都是针对这个市场设计和配置的,在这个市场上Android已经成为智能手机市场占有率最大的OS。在其他的市场上Android也的潜力巨大,一般来说,任何有复杂的软件需求的地方,一个封装好的有连接和用户界面的设备,比如车载信息系统(IVT),智能电视,Android 都会有用武之地。消费电子,通信,汽车电子,医疗仪器和智能家居应用都是Android 潜在的应用目标,但是Android 要从移动终端应用真正的走出来,确实很有挑战[5],目前我们看到的是在平板电脑和智能电视上Android 有不错的表现,基于Android 照相机、智能手表和电视盒已经出现,更多的应用也在开发之中。 见图2 。
图2:各种基于Android 非手机的产品
结语
除了上面介绍的Linux、Montavista、eCos、Android这些开源OS已经在嵌入式系统中大量使用外,还有在军事工业和航空航天上应用的RTEM[6],来自日本基于ITRON技术规范的Toppers,二者都基于GPL 许可证。Toppers还要求如果应用已经嵌入到设备里,需要报告给Toppers协会[7]。此外现在可以看到的商业嵌入式Linux 还有Windriver Linux、Enea Linux等产品。开源嵌入式OS有一些开源社区和组织,他们对于开源软件在嵌入式系统的发展和应用起到重要的作用, 目前比较活跃的有Linaro,它是由ARM、飞思卡尔、三星等公司合资成立的,致力于为ARM架构开发开源软件的非盈利性组织[8]。GENIVI联盟已经在全球拥有170家成员,它通过提出一个基于开源 Linux平台,希望改变车载信息娱乐软件的开发和使用方式[9、10]。关于GENIVI我们在后面有关汽车电子的嵌入式OS文章中还会谈到。
参考资料:
[1]何小庆,Linux和Android:哪个是你下一个设计的正确选择?https://www.eefocus.com/allenhe/blog/13-03/292378_84176.html
[2] https://www.mvista.com/
[3] https://www.rtems.net/Documnet/eCosIntro.htm eCos 简介
[4]Anthony Massa 著 颜若麟等译《嵌入式可配置实时操作系统eCos软件开发》北京航空航天大学出版社。
[5]Colin Wall 著 何小庆等译《嵌入式软件开发精解》机械工业出版社
[6]https://www.rtems.org/
[7]https://www.toppers.jp/cn/index.html
[8] https://www.linaro.org/
[9] https://www.genivi.org/
[10] 明导:GENIVI联盟保持开源车载信息娱乐开发的领导地位https://www.prnasia.com/story/archive/prna_086_1306316_1
与非网原创内容,未经许可,不得转载
摘要:对嵌入式操作系统的定义,国内外专家学者和企业界人士的理解都不尽相同,具有代表性的意见有两种;一种是说嵌入式系统就是嵌入式的计算机系统,另外一种认为嵌入式系统是一种机电结合、软硬结合执行某种特殊功能的系统……
摘要:摩托罗拉自1974年发布第一款MC6800 --8位微处理器到1979发布的MC68000(简称68K)-16/32位CPU之后,其芯片因为即可以使用在计算机系统中,也可以使用在嵌入式系统,很快成为当时行业的标准。最早开发嵌入式OS的公司,许多都是借助摩托罗拉的市场起家的……
摘要:除了上一篇提到的OS-9以外,最早出现的嵌入式操作系统(简称为嵌入式OS)当属VRTX,因其在技术上创新性,得到用户和嵌入式系统公司的广泛支持,VRTX可称为商业嵌入式OS的开拓和领导者……
摘要:过去30年间,风河和VxWorks在嵌入式OS领域一直处在领先地位,在航空航天、通信、工业控制等行业有着广泛的应用,在业内被称为嵌入式OS的常青树……
摘要:手机属于嵌入式设备,手机软件平台使用的操作系统属于嵌入式OS的范畴。传统的功能手机(Feature Phone)使用了实时多任务操作系统(RTOS)为基础的手机软件平台。入门级的智能手机采用了半开放的嵌入式OS(比如Symbian),而今天高端的智能手机多采用Android和IOS这样的通用型的OS……
摘要:为你介绍那些开源的操作系统,Android以及它的竞争对手们的整个OS产业生态……
摘要:根据IEEE 2009年2月的报告,豪华级别的汽车的软件代码长度将超过1亿行,如此巨大的代码量不使用嵌入式操作系统(以下简称嵌入式OS)和软件平台架构是不可想象的,以此联动产生的软件研发、测试和维护成本也是巨大的,带给汽车的安全性和可靠性隐患更是无法预估的。由此也成为嵌入式Os逐鹿的新战场……
摘要:嵌入式OS发展到今天已经有30多年历史了,未来的嵌入式OS 会是什么样的?技术会有哪些变化?商业还会蓬勃发展,还是逐渐消亡呢?笔者在撰写《嵌入式操作系统史话》专栏期间,恰逢美国的CES2014,我参观了LG,三星、SONY,奥迪等大企业展位,看到Intel、恩智浦和TI等半导体公司最新芯片解决方案,了解到国外嵌入式OS最新发展的一些情况……