系统,即若干部分相互联系、相互作用,形成的具有某些功能的整体。
目前我们生活中接触最多的就是操作系统,操作系统(OperatingSystem,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,它是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。换句话说,操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其他应用软件提供支持等,以使计算机系统所有资源最大限度地发挥作用。现代操作系统提供了各种形式的用户界面,使得用户可以拥有一个好的工作环境,并且为其他软件的开发提供必要的服务和相应的接口。而提到操作系统又不得不说两大分支:嵌入式系统和桌面通用系统。
从20世纪80年代开始,出现了一些商用嵌入式操作系统,它们大部分都是为专有系统而开发的。随着嵌入式领域的发展,各种各样的嵌入式操作系统会相继问世。有许多商用嵌入式操作系统,也有大量开放源代码的嵌入式操作系统。其中著名的嵌入式操作系统有Linux、μC/OS、WindowsCE、VxWorks和QNX等,下面主要介绍使用最广泛的Linux嵌入式系统。
嵌入式Linux的队伍越来越庞大,在通信、信息、数字家庭、工业控制等领域,随处都能见到嵌入式Linux的身影。究竟是什么原因让嵌入式Linux发展如此迅速呢?又究竟是什么原因让它能与强劲的VxWorks、WindowsCE相抗衡呢?这一切还是要归根于Linux。可以说,嵌入式Linux正是继承和发展了Linux的诱人之处才能够走到今天,而Linux也正是有了嵌入式Linux的广泛应用才更加引人注目。以下就从Linux的发端开始,一层层揭开嵌入式Linux的面纱。
20世纪60年代时,大部分计算机都是采用批处理的方式(也就是说,当作业积累到一定数量的时候,计算机才会处理)。
1969年2月,贝尔实验室(Belllabs)决定退出这个项目。当时贝尔实验室有个工程师叫KenThompson,他为MULTICS写了一个叫“SpaceTravel”的游戏,当时他发现游戏运行的速度很慢。为了这个游戏能玩,他找来了一位天才工程师DennisRitchie,他们用汇编语言写了一个简单的操作系统Unics,这就是后来的UNIX的原型。
1973年,KenThompson和DennisRitchie发现用汇编语言移植过于困难,后来他们先后用B语言、C语言重写了UNIX。
1974年,UNIX首次和外界接触,引起了学术界的广泛兴趣。因此,UNIX从第5版本以“仅用于教育目的”协议,提供给各大学作为教学之用。UNIX开始广泛流行。
1978年,伯克利大学在UNIX上进行改进,推出了自己的UNIX版本——BerkeleySoftworeDistribution,即BSD。同时,AT&T公司成立了USG(UNIXSupportGroup)组织,将UNIX变成了商业化的产品。AT&T的这种商业态度让当时许许多多的UNIX的爱好者和软件开发者们感到相当的痛心和忧虑,他们认为商业化的种种限制并不利于产品的发展,相反还会导致出现诸多的问题。
此时,一个名叫RichardStallman的领军人物出现了,他认为UNIX是一个相当好的操作系统,如果大家都能够将自己所学贡献出来,那么这个系统将会更加的优异!他倡导OpenSource的概念。为了这个理想,RichardStallman于1984年创立了GNU,计划开发一套与UNIX相互兼容的软件。1985年RichardStallman又创立了自由软件基金会(FreeSoftwareFoundation,FSF)来为GNU计划提供技术、法律以及财政支持。尽管GNU计划大部分时候是由个人自愿无偿贡献的,但FSF有时还是会聘请程序员帮助编写。当GNU计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。
自20世纪90年代发起这个计划以来,GNU开始大量地产生或收集各种系统所必备的组件,如函数库(Libraries)、编译器(Compilers)、调试工具(Debuggers)、文本编辑器(TextEditors)、网站服务器(WebServer),以及一个UNIX的使用者接口(UNIXShell)等。但由于种种原因,GNU一直没有开发操作系统的内核(Kernel)。正当RichardStallman在为操作系统内核伤脑筋的时候,Linux出现了。
1991年,芬兰赫尔辛基大学的学生LinusTorvals为了能在家里的PC上使用与学校一样的操作系统,开始编写自己的类UNIX操作系统。
1991年8月25日,Linus就在comp.os.minix新闻组中首次发布了Linux内核的第一个公共版本。
最初Linus编写的程序只适用于Intel386处理器,且不能移植。由于人们的鼓励,Torvals继续编写可移植的Linux系统。
之后,就有越来越多的计算机爱好者、程序员通过网络,包括通过社区、邮件列表、论坛、Wiki等参与到Linux系统的不断完善之中。
Linux系统的发展过程可以看出,Linux从最开始就是一个开放的系统,并且它始终遵循着开放源代码的原则,是一个成熟而稳定的网络操作系统。Linux作为嵌入式操作系统的优势如下。
1.低成本开发系统
Linux的源码开放性允许任何人可以获取并修改Linux的源码。这样一方面大大降低了开发的成本,另一方面又可以提高开发产品的效率,并且还可以在Linux社区中获得支持,用户只需向邮件列表发一封邮件,即可获得作者的支持。
2.可应用于多种硬件平台
3.可定制的内核
Linux具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入或移出内核,并能根据嵌入式设备的个性需要量体裁衣。经裁剪的Linux内核最小可达到150KB以下,尤其适合嵌入式领域中资源受限的实际情况。在2.6内核中加入了许多嵌入式友好特性,如构建用于不需要用户界面的设备的小占板面积内核选项。
4.性能优异
Linux系统内核精简、高效和稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。在个人计算机上使用Linux时,可以将它作为工作站。它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。
5.良好的网络支持
Linux是首先实现TCP/IP协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括10吉比特、100吉比特及1000吉比特的以太网,还有无线网络、TokenRing(令牌环)和光纤甚至卫星的支持。这对现在依赖于网络的嵌入式设备来说无疑是很好的选择。
在桌面通用系统上,微软Windows系列基本上控制了整个市场,而MACOSX系列的界面表现极为出色,Linux和它的发行版共同组成了自由软件组织(开源,免费),目前国内对于Linux发行版的硬件支持越来越完善。从应用环境来看,桌面通用系统面向复杂多变的各类应用,比如使用CAD、EDA、PS等等应用。
Windows操作系统采用了GUI图形化操作模式,比起从前的指令操作系统如DOS更为人性化。
MAC操作系统是美国苹果计算机公司设计的操作系统,在出版、印刷、影视制作和教育领域有着广泛的应用。
Linux是当今电脑界一个耀眼的名字,是目前全球最大的一个自由免费软件,其本身是一个功能可与Unix和Windows相媲美的操作系统。
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。
从上面的定义我们可以知道,嵌入式系统也是一个计算机系统。下面我们就看看嵌入式系统和桌面通用系统的区别。
(1)嵌入式系统是面向特定系统应用的。嵌入式处理器大多数是专门为特定应用设计的,具有功耗低、体积小、集成度高等特点,一般是包含各种外围设备接口的片上系统。
(2)嵌入式系统涉及计算机技术、微电子技术、电子技术、通信、软件等各行各业。它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
(3)嵌入式系统的硬件和软件都必须具备高度可定制性,只有这样才能适应嵌入式系统应用的需要,在产品价格、性能等方面具备竞争力。
(4)嵌入式系统的生命周期相当长。当嵌入式系统应用到产品以后,还可以进行软件升级,它的生命周期与产品的生命周期几乎一样长。
(5)嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开发工具和环境。
在计算机后PC技术时代,嵌入式系统将拥有庞大的市场。计算机和网络已经全面渗透到日常生活的每一个角落。各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机,任何一个普通人都可能拥有从小到大的各种使用嵌入式技术的电子产品,小到机顶盒、智能手机、照相机等微型数字化产品,大到智能家居、智能农业、智能交通等等。而在工业和服务领域中,使用嵌入式技术的数字机床、智能工具、工业机器人、服务机器人也将逐渐改变传统的工业和服务方式。