首页
学习
活动
专区
工具
TVP
发布

什么是嵌入式Linux?嵌入式工程师为什么一定要学嵌入式Linux?

一、什么是嵌入式linux?

Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式操作系统领域内也获得了飞速发展。嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。嵌入式Linux既继承了intelnet上无限的开放原代码资源,又具有嵌入式操作系统的特性。

二、嵌入式Linux的特点

版权费:免费;

购买费用:媒介成本;

技术支持:全世界的自由软件开发者提供支持;

网络特性:免费而且性能优异;

软件移植:容易,代码开放,有许多应用软件支持;

应用产品开发周期:短,新产品上市迅速,因为有许多公开的代码可以参考和移植;

实时性能:RT_Linux,hardhat Linux 等嵌入式Linux支持实时性能;

稳定性:好;

安全性:好。

三、嵌入式Linux的市场前景和商业机会

嵌入式Linux有巨大的市场前景和商业机会,出现了大量的专业公司和产品,如Montavista、Lineo、Emi等。有行业协会,如Embedded Linux Consortum等。得到世界著名计算机公司和oem板级厂商的支持,例如IBM、Motorola、Intel等 。传统的嵌入式系统厂商也采用了Linux策略 如Lynxworks 、Windriver、QNX等。还有intelnet上的大量嵌入式Linux爱好者的支持。嵌入式Linux支持几乎所有的嵌入式cpu和被移植到几乎所有的嵌入式oem板。

四、嵌入式Linux的应用领域

嵌入式Linux的应用领域非常广泛,主要的应用领域有,信息家电:PDA,STB-Set-stopbox,Digital Telephone,Answering Machine,Screen Phone、数据网络:Ethernet switches,Router,Bridge,Hub,Remote access servers,ATM,Frame relay、远程通信、医疗电子、交通运输、计算机外设、工业控制、航空领域等。

五、嵌入式linux的优势

嵌入式Linux的开发和研究是操作系统领域中的一个热点,目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。Linux之所以能在嵌入式系统市场上取得如此辉煌的成果,与其自身的优良特性是分不开的。

1、广泛的硬件支持

Linux能够支持x86、ARM、MIPS、ALPHA、PowerPC等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的CPU上。Linux有着异常丰富的驱动程序资源,支持各种主流硬件设备和新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。

2、内核高效稳定

Linux内核的高效和稳定已经在各个领域内得到了大量事实的验证,Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。

3、开放源码,软件丰富

Linux是开放源代码的自由操作系统,它为用户提供了大限度的自由度,由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。Linux的软件资源十分丰富,每一种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。在Linux上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件做为原型,在其上进行二次开发。

4、优秀的开发工具

开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In-Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能够非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常昂贵,而且只适合做非常底层的调试,如果使用的是嵌入式Linux,一旦软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),它利用GNU的gcc做编译器,用gdb、kgdb、xgdb做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。

5、完善的网络通信和文件管理机制

Linux至诞生之日起就与Internet密不可分,支持所有标准的Internet网络协议,并且很容易移植到嵌入式系统当中。此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,这些都为开发嵌入式系统应用打下了很好的基础。

六、嵌入式Linux的挑战

目前,嵌入式Linux系统的研发热潮正在蓬勃兴起,并且占据了很大的市场份额,除了一些传统的Linux公司(如RedHat、MontaVista等)正在从事嵌入式Linux的开发和应用之外,IBM、Intel、Motorola等著名企业也开始进行嵌入式Linux的研究。虽然前景一片灿烂,但就目前而言,嵌入式Linux的研究成果与市场的真正要求仍有一段差距,要开发出真正成熟的嵌入式Linux系统,还需要从以下几个方面做出努力。

1、提高系统实时性

Linux虽然已经被成功地应用到了PDA、移动电话、车载电视、机顶盒、网络微波炉等各种嵌入式设备上,但在医疗、航空、交通、工业控制等对实时性要求非常严格的场合中还无法直接应用,原因在于现有的Linux是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,并且符合POSIX 1003.1b标准,但从本质上来说并不是一个嵌入式实时操作系统。Linux的内核调度策略基本上是沿用UNIX系统的,将它直接应用于嵌入式实时环境会有许多缺陷,如在运行内核线程时中断被关闭,分时调度策略存在时间上的不确定性,以及缺乏高精度的计时器等等。正因如此,利用Linux作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,是现在日益流行的解决方案。

2、改善内核结构

Linux内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这样虽然能够使系统的各个部分直接沟通,有效地缩短任务之间的切换时间,提高系统响应速度,但与嵌入式系统存储容量小、资源有限的特点不相符合。嵌入式系统经常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际需要进行取舍。Microkernel的执行效率虽然比不上Monolithic,但却大大减小了内核的体积,便于维护和移植,更能满足嵌入式系统的要求。可以考虑将Linux内核部分改造成Microkernel,使Linux在具有很高性能的同时,又能满足嵌入式系统体积小的要求。

3、完善集成开发平台

引入嵌入式Linux系统集成开发平台,是嵌入式Linux进一步发展和应用的内在要求。传统上的嵌入式系统都是面向具体应用场合的,软件和硬件之间必须紧密配合,但随着嵌入式系统规模的不断扩大和应用领域的不断扩展,嵌入式操作系统的出现就成了一种必然,因为只有这样才能促成嵌入式系统朝层次化和模块化的方向发展。

很显然,嵌入式集成开发平台也是符合上述发展趋势的,一个优秀的嵌入式集成开发环境能够提供比较完备的仿真功能,可以实现嵌入式应用软件和嵌入式硬件的同步开发,从而摆脱了"嵌入式应用软件的开发依赖于嵌入式硬件的开发,并且以嵌入式硬件的开发为前提"的不利局面。一个完整的嵌入式集成开发平台通常包括编译器、连接器、调试器、跟踪器、优化器和集成用户界面,目前Linux在基于图形界面的特定系统定制平台的研究上,与Windows CE等商业嵌入式操作系统相比还有很大差距,整体集成开发环境有待提高和完善。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190829A0JXR100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券