文章目录
嵌入式应用软件
当设计一个简单的应用程序时,可以不使用操作系统,并且当设计较复杂的程序时嵌入式linux操作系统原理,可能就须要一个操作系统(OS)来管理、控制显存、多任务、周边资源等等。根据系统所提供的程序界面来编撰应用程序,可以大大的降低应用程序员的负担。
嵌入式系统软件的层次结构
对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构通常包含三个层面:设备驱动层、实时操作系统(RTOS)、实际应用程序层。因为硬件电路的可裁减性和嵌入式系统本身的特性,其软件部份也是可裁减的。
对于功能简单仅包括应用程序的嵌入式系统通常不使用操作系统,仅有应用程序和设备驱动程序。现代高性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势。
操作系统如:Windows、Unix、Linux等,它们的运行平台在通用计算机上都是标准的。但嵌入式系统不然,嵌入式处理器多种多样,目前不下几百种,虽然同一种体系的嵌入式处理器,它们的配置仍有不同。操作系统提供商为了屏蔽那些硬件平台的差别,仅仅用标准C语言把操作系统不依赖于具体硬件的共性部份实现了,而把依赖于硬件的部份(如储存器种类、外部设备的配置、地址分配等)留给用户编撰,而操作系统仅仅规定了一个标准的规范。
用户编撰的这部份代码为用户的具体硬件和标准化的操作系统之间提供了一个插口和支持平台,这部份代码称为板级支持包(BoardSupportPackage,BSP)或硬件具象层(HardwareAbstractionLayer,HAL)。
经过不断地发展,嵌入式系统原有的3层结构逐渐演变成为4层结构。
嵌入式系统的详尽结构
因为引入了一个中间层,屏蔽了底层硬件的多样性,操作系统不再面对具体的硬件环境,而是面对由这个中间层次所代表的、逻辑上的硬件环境,为此linux版qq,把中间层次称作硬件具象层(HardwareAbstractionLayer,HAL)。
HAL的引入大大促进了嵌入式实时系统的通用化,进而为嵌入式系统的广泛应用提供了可能。
硬件具象层
板级支持包(BoardSupportPackage,BSP)是现有的大多数商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件具象层的一种实现。
BSP隔离了所支持的嵌入式操作系统与底层硬件平台之间的相关性,是嵌入式操作系统才能通用与BPS所支持的硬件平台,进而实现嵌入式操作系统的可移植性和跨平台性,以及嵌入式操作系统的通用性、复用性。
BSP是相对于操作系统而言的,不同的操作系统对应于不同定义方式的BSP。
比如,对应同一个CPU来说,要实现同样的功能,VxWorks的BSP和Linux的BSP的写法和插口定义却完全不同。
为此,BSP一定要根据具体操作系统BSP的定义方式来写(BSP的编程过程大多数是在某一个成形的BSP模板上进行更改),这样就能与下层操作系统保持正确的插口,良好地支持下层操作系统。
嵌入式操作系统
目前流行的嵌入式操作系统可以分为两类:
嵌入式操作系统——WinCE
WindowsCE是谷歌开发的一个开放的、可升级的32位嵌入式操作系统,是一个基于掌上型笔记本类的电子设备的操作系统。
嵌入式操作系统——VxWorks
VxWorks操作系统是俄罗斯WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢抢占着一席之地。
VxWorks所具有的明显特征是:
以其良好的可靠性和卓越的实时性被广泛地应用在通讯、军事、航空航天等高精尖技术及实时性要求极高的领域中,如火星侦测器(1997年7月4日登录火星表面)。
嵌入式操作系统——Linux
Linux是一个类似于Unix的操作系统。它起源于美国一个名为LinusTorvalds的业余爱好,然而如今早已是最为流行的一款开放源代码的操作系统。
Linux从1991年问世到如今,短短10几年的时间内已发展成为一个功能强悍、设计建立的操作系统,伴随网路技术进步而发展上去的LinuxOS已成为Microsoft公司Windows的强劲对手。
Linux系统除了才能运行于PC平台,还在嵌入式系统方面大放光芒,在各类嵌入式LinuxOS
迅速发展的状况下,LinuxOS渐渐产生了可与WindowsCE等EOS进行匹敌的局面。目前正在开发的嵌入式系统中,50%以上的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。Linux是开放源码和免费使用的,遍及全球的诸多Linux爱好者又是Linux开发的强悍技术后盾。
嵌入式Linux(EmbeddedLinux)是指对Linux经过大型化剪裁后,才能固化在容量只有几百K字节或几兆字节的储存器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究是目前操作系统领域的一个热点。主要有RTLinux和μCLinux
嵌入式LinuxOS的特征
精简的内核,性能高、稳定,多任务。
良好的可移植性,致使它可以适用于不同的CPU,支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等。
才能提供建立的嵌入式GUI以及嵌入式X-Windows。
提供嵌入式浏览器、邮件程序、MP3播放器、MPEG播放器、记事本等多种应用。
提供完整的开发工具和SDK,同时提供PC上的开发版本。
非实时专用,要想用于实时性要求高的场合须要添加实时处理模块,进行实时化处理。
用户可订制,可提供图形化的订制和配置工具。
支持常用嵌入式芯片的驱动,支持大量的周边硬件设备,驱动丰富。
针对嵌入式的储存方案,提供实时版本和建立的嵌入式解决方案。
建立的英文支持,强悍的技术支持,完整的文档。
开放源码,丰富的软件资源,广泛的软件开发者的支持,价钱低廉,结构灵活,适用面广。
μClinux
μClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。uClinux从Linux2.0/2.4内核派生而至,沿用了主流Linux的绝大部份特点。它是专门针对没有MMU的CPU,而且为嵌入式系统做了许多大型化的工作。适用于没有虚拟显存或显存管理单元(MMU)的处理器,比如ARM7TDMI。它一般用于具有极少显存或Flash的嵌入式系统。它保留了Linux的大部份优点:稳定、良好的移植性、优秀的网路功能、完备的对各类文件系统的支持、以及标准丰富的API等。
嵌入式操作系统——uCOS
μC/OS—MicroControllerOS
μC/OS简介
日本人JeanLabrosse1992年完成红旗linux操作系统,1998年μC/OS-II,目前的版本μC/OS-IIV2.61。应用面覆盖了众多领域,如拍照机、医疗器械、音响设备、发动机控制、高速道路电话系统、自动取款机,甚至民航领域。
是一个源码公开、可移植、可裁减、占用资源少、抢先式的实时多任务操作系统。其绝大部份源码采用ANSIC写的,移植性好。院校教学可免费使用。
嵌入式操作系统——PalmOS
PalmOS是知名的网路设备制造商3COM旗下的PalmComputing掌上笔记本公司的产品。
PalmOS是一套专门为掌上笔记本编撰的操作系统,充分考虑到了掌上笔记本显存相对较小的情况,所以Palm操作系统本身所占的显存很小,基于Palm操作系统编撰的应用程序所占的空间也很小,一般只有几十KB,因而基于Palm操作系统的掌上笔记本似乎只有几兆显存却可以运行诸多的应用程序。
PalmOS在PDA市场上占有很大的市场份额,目前主要与WINCE进行激烈竞争。
代表性的产品有Palmm505、Palmm500、PalmIII等。
其他嵌入式操作系统
QNX的QNXOS、ISI的pSOS、电子科技学院嵌入式实时教研室和科银公司联合研发开发的DeltaOS、凯思集团自主研发开发的HopenOS等等。
华为鸿蒙系统
鸿蒙OS(英语:HarmonyOS)。在2019年8月9日,华为在广州召开华为开发者会议,即将发布操作系统鸿蒙OS。
鸿蒙OS是一款“面向未来”的操作系统,一款基于微内核的面向全场景的分布式操作系统,它将适配手机、平板、电视、智能车辆、可穿戴设备等多终端设备。
发展历程
2012年,华为开始规划自有操作系统“鸿蒙”。
2019年5月24日,国家知识产权局商标局网站显示,华为已申请“华为鸿蒙”商标,申请日期是
2018年8月24日,注册公告日期是2019年5月14日嵌入式linux操作系统原理,专用权责令是从2019年5月14日到2029年5月13日。
2019年5月17日,由某院士领导的华为操作系统团队开发了自主产权操作系统——鸿蒙。[9]
2019年8月9日,华为即将发布鸿蒙系统。同时余承东也表示,鸿蒙OS推行开源。
2019年8月10日,荣耀即将发布荣耀智慧屏、荣耀智慧屏Pro,搭载鸿蒙操作系统。
鸿蒙OS实现模块化耦合,对应不同设备可弹性布署,鸿蒙OS有三层构架,第一层是内核,第二层是基础服务,第三层是程序框架。可用于大屏、PC、汽车等各类不同的设备上。还可以随时用在手机上,但暂时华为手机端仍然优先使用安卓。
自打鸿蒙操作系统注册以来,始终有种说法,觉得它是安卓系统的一个分支。这是一个误会。中芯国际创始人张汝京博士剖析过,鸿蒙不是安卓系统的分支或更改而至的。它是一种全新
的、独立的操作系统。是面向未来5G物联网开发的。
微软也有一款面向5G物联网的Fuchsia系统。但鸿蒙基于emui9.1版本的方舟编译器的优化版本,在性能上,要比安卓原生编译器快好多。
安卓系统是用Java语言编的,这些语言简单易学。可它却有个缺点,即不能直接和系统的底层直接通讯。只能在所谓的虚拟机上运行。直白地说虚拟机相当于扣球手,先把安卓的应用程序装在虚拟机上,由虚拟机再传给机器的底层。
扣球手出问题如何办?表现在安卓系统就是手机软件卡顿。这么,不要这个扣球手是否可以直接和机器的底层直接通讯呢?
苹果手机用上去为何不卡顿,就是它没有哪个扣球手,直接为机器底层写代码,苹果手机的软件跑上去就比安卓手机顺畅得多。
鸿蒙系统加方舟编译器,就取代了虚拟机这个副攻手。
构建一个操作系统说难不难,基于Linux内核的话,好多学院生都可以订制一个操作系统下来,并且塑造适应新时代、满足自身业务需求而且有良好生态的操作系统就没这么容易了,数六年来倒在这条路上的国外公司太多了,没有一个还能撑起一片天的。
华为做系统多年前就在进行了,她们挖来了全球操作系统领域的一个大牛,并且是顶尖大牛来领导OS系统内核团队。
这个人就是北京师大的陈海波院士,尽管还是个年青的90后院士,但陈海波院士在操作系统领域的突破太过闪耀了,用他自己的话说就是——截至2010年末,欧洲学者40年来在SOSP(操作系统原理会议,组建于1967年)上独立发表研究论文的数量一直为零,2011年陈院长的论文被SOSP接纳,实现了中国乃至欧洲的突破。
系统界的奥斯卡--OSDI与SOSP
OSDI是系统领域和SOSP并驾齐驱的两个顶尖大会之一。第一届OSDI在1994年在Menterey,CA举行。OSDI上仍然不乏中国学术工作者的身影,但国外院校始终没有太强的影响力。直至2016年,国外院校有三篇论文同时被OSDI投档,其中复旦学院两篇,北京师大一篇。
SOSP相比OSDI创立的更早,第一届在1967年举办。上科大的陈海波老师是国外院校第一篇SOSP的论文作者(完成工作时是在清华学院)。北京师大在2015,2017年的SOSP也各中了一篇。OSDI和SOSP每届只投档20~30篇论文,平均每位方向3~4篇。