【条漫源码】【衡阳胡子源码】【源码安装scapy】qnx 源码分析

时间:2024-12-23 23:24:23 编辑:仿幸运拼源码 来源:溯源码科技

1.请问什么是码分嵌入式软件?
2.什么是系统
3.LINUX系统介绍

qnx 源码分析

请问什么是嵌入式软件?

       嵌入式系统的定义

       嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、码分定时器、码分微控制器、码分存储器、码分传感器等一系列微电子芯片与器件,码分条漫源码和嵌入在存储器中的码分微型操作系统、控制应用软件组成,码分共同实现诸如实时控制、码分监视、码分管理、码分移动计算、码分数据处理等各种自动化处理任务。码分嵌入式系统以应用为中心,码分以微电子技术、码分控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以满足系统对功能、成本、体积和功耗等要求。

       最简单的嵌入式系统仅有执行单一功能的控制能力,在唯一的ROM 中仅有实现单一功能的控制程序,无微型操作系统。复杂的嵌入式系统,例如个人数字助理(PDA)、手持电脑(HPC)等,具有与PC 几乎一样的功能。实质上与PC 的区别仅仅是将微型操作系统与应用软件嵌入在ROM、RAM 和/或FLASH 存储器中,而不是存贮于磁盘等载体中。很多复杂的嵌入式系统又是由若干个小型嵌入式系统组成的。

       嵌入式系统的硬件/软件特征

       嵌入式系统的硬件必须根据具体的应用任务,以功耗,成本,体积, 可靠性,处理能力等为指标来选择。嵌入式系统的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑,可靠,大多对实时性有严格要求。

       早期的嵌入式系统设计方法,通常是采用“硬件优先”原则。即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现。然后,在此硬件平台之上,再进行软件设计。

       因而很难达到充分利用硬件软件资源,取得最佳性能的效果。同时,一旦在测试时发现问题,需要对设计进行修改时,整个设计流程将重新进行,对成本和设计周期的影响很大。

       这种传统的设计方法只能改善硬件/软件各自的性能,在有限的设计空间不可能对系统做出较好的性能综合优化,在很大程度上依赖于设计者的衡阳胡子源码经验和反复实验。 年代以来随着电子系统功能的日益强大和微型化,系统设计所涉及的问题越来越多,难度也越来越大。同时硬件和软件也不再是截然分开的两个概念,而是紧密结合、相互影响的。因而出现了软硬件协同(codesign)设计方法,即使用统一的方法和工具对软,协同设计软硬件体系结构,以最大限度地挖掘系统软硬件能力,避免由于独立设计软硬件体系结构而带来的种种弊病,得到高性能低代价的优化设计方案。

       嵌入式操作系统

       目前流行的嵌入式操作系统可以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的Windows CE 及其新版本,SUN 公司的Java 操作系统,朗讯科技公司的Inferno,嵌入式Linux 等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应用软件资源。

       另一类是实时操作系统,如WindRiver 公司的VxWorks,ISI 的pSOS,QNX 系统软件公司的QNX,ATI 的Nucleus,中国科学院凯思集团的Hopen 嵌入式操作系统等,这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。

       Linux 是 年代以来逐渐成熟的一个开放源代码的操作系统。 PC 机上的Linux 版本在全球数以百万计爱好者的合力开发下,得到了非常迅速的发展。 年代末uClinux,RTLinux 等相继推出,在嵌入式领域得到了广泛的关注,它拥有大批的程序员和现成的应用程序,是我们研究开发工作的宝贵资源。

       学习嵌入式系统的意义

       从控制意义上说,嵌入式系统涉及系统最底层的,芯片级的信息处理与控制。在某种意义上,对这些“微观”世界的了解与驾驭正是控制的真正目的。嵌入式系统与通常意义上的控制系统在设计思路和总体架构方面有许多不同之处,而这些不同之处恰恰是传统控制学科教学中较少教给学生的。在当今信息化社会中,嵌入式系统在人们的日常工作和生活中所占的份额,可能已超过传统意义的控制系统,这就是为什么我们的学生感到学的没有用,而有用的又没有学的原因。在嵌入式系统及开发环境方面,目前仍有许多问题尚在研究发展之中,如,嵌入式系统的源码安装scapy硬件软件协同设计方法;面向多目标,多任务的微内核嵌入式操作系统;分布嵌入式系统的实时性问题,分布式计算,分布式信息交互与综合处理;以及嵌入式系统的多目标交叉编译和交叉调试工具的研究等。我们希望通过这本教材再配合我们的实验开发平台,学习嵌入式系统的一些基本理论和硬件软件综合设计的方法与技能,亲自动手,实现一个嵌入式系统的解决方案,为今后的深入研究打下一个初步基础。

       “嵌入式系统”作为自动化学科一门理论与实际密切结合的,知识与技术含量较高的综合性专业课程,必将随着信息产业的发展而逐渐趋于成熟。

       对于这种概念性强的词汇,建议多上上百度的百科

什么是系统

         系统是什么

       尽管系统一词频繁出现在社会生活和学术领域中,但不同的人在不同的场合往往赋予它不同的含义。长期以来,系统概念的定义和其特征的描述尚无统一规范的定论。一般我们采用如下的定义:系统是由一些相互联系、相互制约的若干组成部分结合而成的、具有特定功能的一个有机整体(集合)。

         

       我们可以从三个方面理解系统的概念:

       (1)系统是由若干要素(部分)组成的。这些要素可能是一些个体、元件、零件,也可能其本身就是一个系统(或称之为子系统)。如运算器、控制器、存储器、输入/输出设备组成了计算机的硬件系统,而硬件系统又是计算机系统的一个子系统。

         

       (2)系统有一定的结构。一个系统是其构成要素的集合,这些要素相互联系、相互制约。系统内部各要素之间相对稳定的****、组织秩序及失控关系的内在表现形式,就是系统的结构。例如钟表是由齿轮、发条、指针等零部件按一定的方式装配而成的,但一堆齿轮、发条、指针随意放在一起却不能构成钟表;人体由各个器官组成,单个各器官简单拼凑在一起不能成其为一个有行为能力的人。

         

       (3)系统有一定的功能,或者说系统要有一定的目的性。 系统的功能是指系统与外部环境相互联系和相互作用中表现出来的性质、能力、和功能。例如信息系统的功能是进行信息的收集、传递、储存、加工、维护和使用,辅助决策者进行决策,帮助企业实现目标。

         

       与此同时,bonnie++源码我们还要从以下几个方面对系统进行理解:系统由部件组成,部件处于运动之中;部件间存在着联系;系统各主量和的贡献大于各主量贡献的和,即常说的1+1〉2;系统的状态是可以转换、可以控制的。

       系统在实际应用中总是以特定系统出现的,如消化系统、生物系统、教育系统等,其前面的修饰词描述了研究对象的物质特点,即“物性”, 而“系统”一词则表征所述对象的整体性。

         对某一具体对象的研究,既离不开对其物性的描述,也离不开对其系统性的描述。系统科学研究将所有实体作为整体对象的特征,如整体与部分、结构与功能、稳定与演化等等。

       [编辑本段]计算机系统

       以下是有关现在关于操作系统的文章。

       我们常说的系统通常是指操作系统。

         

       一、计算机软件与操作系统

       功能强大的计算机自从走进了人类的生活就发挥着越来越重要的作用,随着时代的发展,计算机已与人们的日常生活息息相关。不能不说计算机软件日新月异的发展在此起着关键作用。可以这么说,离开了软件,计算机就成了废铜烂铁。

         

       计算机机软件大致可以分为两类:系统软件和应用软件。

       系统软件用于管理计算机资源,并为应用软件提供一个统一的平台。

       应用软件则在系统软件的基础上实现用户所需要的功能。

       而操作系统(Operating System,简称os)则是最基本的系统软件,它控制计算机的所有资源并提供应用程序开发的基础。

         

       二、操作系统诞生的原因

       计算机是由CPU、内存、磁盘、显卡、声卡等许许多多设备组成的,而且这些设备的厂商众多,品种繁多,而且不同厂商生产的同种设备虽然完成同种功能,但是具体细节却存在千差万别。

       为了正确地管理和使用这些设备来实现具体的应用,这样程序员就得了解和掌握各种设备的工作原理。

         而且对于同种设备,由于不同的硬件厂商在实现细节上的差异使得程序员再次陷入了复杂的硬件控制的深渊。

       必须找到一种方法使得程序员从苦海中脱离出来!多年的研究与发展终于使得这个愿望成为现实。这个解决方法就是在硬件的基础上加载一层软件来管理整个系统。

         这个软件通过设备驱动程序来与计算机硬件打交道,通过一系列的功能模块将整个计算机硬件系统抽象成为一个公共、统一、开放的bionic源码分析接口—虚拟机,从而使得程序员不必再陷入各种硬件系统的具体细节!

       这一层软件就是操作系统。

       三、什么是操作系统

       操作系统是一个大型的软件系统,其功能复杂,体系庞大。

         从不同的角度看的结果也不同,正是“横看成岭侧成峰”,下面我们通过最典型的两个角度来分析一下。

       1。从程序员的角度看

       正如前面所说的,如果没有操作系统,程序员在开发软件的时候就必须陷入复杂的硬件实现细节。程序员并不想涉足这个可怕的领域,而且大量的精力花费在这个重复的、没有创造性的工作上也使得程序员无法集中精力放在更具有创造性的程序设计工作中去。

         程序员需要的是一种简单的,高度抽象的可以与之打交道的设备。

       将硬件细节与程序员隔离开来,这当然就是操作系统。

       从这个角度看,操作系统的作用是为用户提供一台等价的扩展机器,也称虚拟机,它比底层硬件更容易编程。

       2。从使用者的角度看

       从使用者的角度来看,操作系统则用来管理一个复杂系统的各个部分。

         

       操作系统负责在相互竞争的程序之间有序地控制对CPU、内存及其它I/O接口设备的分配。

       比如说,假设在一台计算机上运行的三个程序试图同时在同一台打印机上输出计算结果。那么头几行可能是程序1的输出,下几行是程序2的输出,然后又是程序3的输出等等。

         最终结果将是一团糟。这时,操作系统采用将打印输出送到磁盘上的缓冲区的方法就可以避免这种混乱。在一个程序结束后,操作系统可以将暂存在磁盘上的文件送到打印机输出。

       从这种角度来看,操作系统则是系统的资源管理者。

       四、操作系统发展历史

       下面我们结合计算机的发展历史来回顾一下操作系统的发展历程。

         

       1。第一代计算机(-):真空管和插件板

       年代中期,美国哈佛大学、普林斯顿高等研究院、宾夕法尼亚大学的一些人使用数万个真空管,构建了世界上第一台电子计算机。开启计算机发展的历史。这个时期的机器需要一个小组专门设计、制造、编程、操作、维护每台机器。

         程序设计使用机器语言,通过插板上的硬连线来控制其基本功能。

       这个时候处于计算机发展的最初阶段,连程序设计语言都还没有出现,操作系统更是闻所未闻!

       2。第二代计算机(-):晶体管和批处理系统

       这个时期计算机越来越可靠,已从研究院中走出来,走进了商业应用。

         但这个时期的计算机主要完成各种科学计算,需要专门的操作人员维护,并且需要针对每次的计算任务进行编程。

       第二代计算机主要用于科学与工程计算。使用FORTRAN与汇编语言编写程序。在后期出现了操作系统的雏形:FMS(FORTRAN监控系统)和IBMSYS(IBM为机配备的操作系统)

       3。

         第三代计算机(-):集成电路芯片和多道程序

       年代初,计算机厂商根据不同的应用分成了两个计算机系列,一个针对科学计算,一个针对商业应用。

       随着计算机应用的深入,对统一两种应用的计算机需求出现了。这时IBM公司试图通过引入System/来解决这个问题。

         

       与这个计划配套,IBM公司组织了OS/操作系统的开发,然后复杂的需求,以及当时软件工程水平低下使得OS/的开发工作陷入了历史以来最可怕的“软件开发泥潭”,诞生了最著名的失败论著----《神秘的人月》。

       虽然这个开发计划失败了,但是这个愿望却成为了计算机厂商的目标。

         

       此时,MIT、Bell Lab(贝尔实验室)和通用电气公司决定开发一种“公用计算机服务系统”----MULTICS,希望其能同时支持数百名分时用户的一种机器。结果这个计划的研制难度超出了所有人的预料,最后这个系统也以失败结束。不过,MULTICS的思想却为后来的操作系统很多提示。

         

       年代未,一位贝尔实验室曾参加过MULTICS研制工作的计算机科学家Ken Thompson,在一台无人使用的PDP-7机器上开发出了一套简化的、单用户版的MULTICS。后来导致了UNIX操作系统的诞生。

       目前UNIX操作系统主导了小型机、工作站以及其他市场。

         也是至今最有影响力的操作系统之一,而Linux也是UNIX系统的一种衍生。

       4。第四代计算机(-今):个人计算机

       随着计算机技术的不断更新与发展,计算机神奇般地闯入了人们的生活,现在以低廉的价格就可以获得强大计算能力的计算机。

         

       价格不再是阻拦计算机普及的门槛时,降低计算机的易用性就显得十分重要!由于UNIX系统的本身特点,使得其不太适合于在运行在个人计算机上,这时就需要一种新的操作系统。

       在这一历史关键时候,IBM公司由于低估了PC机的市场,并未使用最大的力量角逐这一市场,这时Intel公司趁机进入,成为了当今微处理器的老大。

         同时善于抓住时机的微软公司的总裁比尔·盖茨适时地进入了这一领域,用购买来的CP/M摇身一变成为MS-DOS,并凭借其成为个人计算机操作系统领域的霸主。

       虽然是苹果公司在GUI方面先拔头筹,但由于苹果公司的不兼容、不开放的市场策略,未能扩大战果,这时微软又适时地进入了GUI方面,凭借WINDOWS系统再次称雄!

       五、操作系统构成

       一般来说,操作系统由以下几个部分组成:

       1)进程调度子系统:

       进程调度子系统决定哪个进程使用CPU,对进程进行调度、管理。

         

       2)进程间通信子系统:

       负责各个进程之间的通信。

       3)内存管理子系统:

       负责管理计算机内存。

       4)设备管理子系统:

       负责管理各种计算机外设,主要由设备驱动程序构成。

       5)文件子系统:

       负责管理磁盘上的各种文件、目录!

       6)网络子系统:

       负责处理各种与网络有关的东西。

         

       六、操作系统结构设计

       操作系统有多种实现方法与设计思路,下面仅选取最有代表性的三种做一简单的叙述。

       1。整体式系统结构设计

       这是最常用的一种组织方式,它常被誉为“大杂烩”,也可说,整体式系统结构就是“无结构”。

         

       这种结构方式下,开发人员为了构造最终的目标操作系统程序,首先将一些独立的过程,或包含过程的文件进行编译,然后用链接程序将它们链接成为一个单独的目标程序。

       Linux操作系统就是采用整体式的系统结构设计。但其在此基础上增加了一些形如动态模块加载等方法来提高整体的灵活性,弥补整体式系统结构设计的不足。

         

       2。层次式系统结构设计

       这种方式则是对系统进行严格的分层,使得整个系统层次分明,等级森严!这种系统学术味道较浓!实际完全按照这种结构进行设计的操作系统不多,也没有广泛的应用。

       可以这么说,现在的操作系统设计是在整体式系统结构与层次式系统结构设计中寻求平衡。

         

       3。微内核系统结构设计

       而微内核系统结构设计则是近几年来出现的一种新的设计理念,最有代表性的操作系统有Mach和QNX。

       微内核系统,顾名思义就是系统内核很小!比如说QNX的微内核只负责:

       ¨ 进程间的通信

       ¨ 低层的网络通信

       ¨ 进程调度

       ¨ 第一级中断处理

       七、操作系统横向比较

       计算机历史中出现了许许多多的操作系统,然后大浪淘沙,无情地淘汰了许多,只留下一些经历过市场考验的:

       1。

         桌面操作系统:

       1)MSDOS:Intel x系列的PC机上的最早的操作系统,微软公司产品,曾经统治了这个领域,现在已逐渐被自家兄弟WINDOWS 9x系列所代替,现在除了一些低档机外已不多见。

       2)Windows 9x:微软公司产品,从Windows 3。

         x发展而来,现在是基于Intel x系列的PC机上的主要操作系统,也是现然个人电脑中装机量最大的操作系统。面向桌面、面向个人用户。

       3)Mac OS:苹果公司所有,界面友好,性能优异,但由于只能运行在苹果公司自己的电脑上而发展有限。

         但由于苹果电脑独特的市场定位,现在仍存活良好。

       [1]4)linux:Linux是一种计算机操作系统和它的内核的名字。它也是自由软件和开放源代码发展中最著名的例子。

       严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统(也被称为GNU/Linux)。

         基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如 ),等等。

       2。

         服务器操作系统:

       1)UNIX系列:UNIX可以说是源远流长,是一个真正稳健、实用、强大的操作系统,但是由于众多厂商在其基础上开发了有自己特色的UNIX版本,所以影响了整体。在国外,UNIX系统可谓独树一帜,广泛应用于科研、学校、金融等关键领域。

         但由于中国的计算机发展较为落后,UNIX系统的应用水平与国外相比有一定的滞后。

       2)Windows NT系列:微软公司产品,其利用Windows的友好的用户界面的优势打进服务器操作系统市场。但其在整体性能、效率、稳定性上都与UNIX有一定差距,所以现在主要应用于中小企业市场。

         

       3)Novell Netware系列:Novell公司产品,其以极适合于中小网络而著称,在中国的证券行业市场占有率极高,而且其产品特点鲜明,仍然是服务器系统软件中的长青树。

       系统 xìtǒng [system]∶按一定的关系组成的同类事物

       [编辑本段]人体系统

       由各个器官按照一定的顺序排列在一起,完成一项或多项生理活动的结构叫系统。

         

       人体共有八大系统:运动系统、神经系统、内分泌系统、循环系统、呼吸系统、消化系统、泌尿系统、生殖系统。这些系统协调配合,使人体内各种复杂的生命活动能够正常进行。

       例如:口 - 咽 - 食管 - 胃 - 肠(小肠 - 大肠 - 直肠)- 肛门(其中包括:肝、胰和唾液腺等器官)

       系统:是指相互联系又相互作用着的对象的有机组合。

         

       系统:是由相互作用和相互依赖的若干组成部分结合而成的,具有特定功能的有机整体,而且这个有机整体又是它从属的更大系统的组成部分

       ★八大系统的作用:

       一、运动系统:运动系统由骨、软骨、关节和骨骼肌等构成。起支架、保护和运动的作用。

         

       二、神经系统:神经系统由神经元组成,是由中枢神经系统和遍布全身的周围神经系统而组成。在体内起主导作用;一方面它控制和调节个器官、系统的活动;另一方面通过神经系统的分析与综合,使人体对环境变化的刺激作出相应的反应,达到人体环境的统一。

       三、内分泌系统:内分泌系统由多种腺体组成。

         通过分泌不同的激素(雄性、雌性激素、胰岛素、肾上腺素)对整个人体的生长、发育、新陈代谢和生殖起到调节作用。

       四、循环系统:循环系统由心脏、血管和淋巴管组成。它将消化系统的吸收的营养物质和肺吸收的氧送到全身器官的组织和细胞,同时将他们的代谢产物及CO2运送到肾、肺、皮肤排出体外。

         以保证人体的新陈代谢不断。

       五、呼吸系统:由呼吸道和肺组成。吸入新鲜空气,通过肺泡内的气体交换,使血液得到氧并排除Co2。

       六、消化系统:有口腔、咽、食管、小肠、大肠等组成。是食物的消化和吸收的功能。供人体所需要的书屋和能量。

       七、泌尿系统:由肾脏、输尿管、膀胱、尿道等组成。

         排出体内多余的水分及代谢产物或毒素。

       八、生殖系统:产生生殖细胞,繁殖后代。

       [编辑本段]网络操作系统

       网络操作系统严格来说应称为软件平台,因为目前并非单一的网络操作系统一统天下,而是存在着多种网络操作系统并存的情况,这种情况是由以下两方面的原因造成的:

       1 。

         以目前常用的酶来说,主要有UNIX的系统,网络系统和Windows NT的系统。以推出的时间来说, UNIX的为最早,网络为第二, Windows NT的最晚。除去技术上的原因,依靠推出时间早的优势, UNIX的几乎独霸了最早具有连网需求的邮电,银行,铁路,军事等领域,而随着网络技术的发展,虽然出现了像视窗新技这样界面更友好的操作系统,但用户出于保护投资及使用习惯上的原因不情愿完全抛弃一种操作系统,从而导致了操作系统的共存与混用。

         

       2 。各种操作系统在网络应用方面都有各自的优势,而实际应用却千差万别,这种局面促使各种操作系统都极力提供跨平台的应用支持。由于以互联网的TCP / IP协议为基础,而的TCP / IP协议正是的UNIX的标准协议,互联网的高速发展自然就为的UNIX提供了极大的机遇,微软早在Windows 中里就提供了内嵌的TCP / IP的协议,其的Windows NT网络操作系统当然更是把对TCP / IP协议的支持作为其重要的开发策略;而随着视窗客户的日益增多,使得UNIX的,均提供对网络的Windows的支持。

         

LINUX系统介绍

       åµŒå…¥å¼Linux系统的设计与应用

       æ‘˜è¦ï¼šéšç€åµŒå…¥å¼Linux系统的迅速发展,嵌入式Linux已发展成为嵌入式操作系统的一个重要分支。本文介绍了嵌入式Linux的设计和几种流行的嵌入式Linux系统。

       å…³é”®è¯ï¼šåµŒå…¥å¼Linux

       ä¸€ã€å¼•è¨€

       åµŒå…¥å¼ç³»ç»Ÿ(Embedded Systems)是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现软件与硬件一体化的计算机系统。嵌入式系统出现于年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。嵌入式系统在数量上远远超过了各种通用计算机系统:计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过%应用于各类专用性很强的嵌入式系统。

       ä¸€èˆ¬çš„说,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。和通用的计算平台相比,嵌入式系统往往具有功能单一、体积小、功耗低、可靠性高、剪裁性好、软硬件集成度高、计算能力相对较低等特点。多年来,嵌入式设备中没有操作系统,其主要原因有二:首先,诸如洗衣机、微波炉、电冰箱这样的设备仅仅需要一道简单的控制程序,以管理数量有限的按钮和指示灯,没有使用操作系统的必要;其次,它往往只具有有限的硬件资源,不足以支持一个操作系统。

       ç„¶è€Œï¼Œéšç€ç¡¬ä»¶çš„发展,嵌入式系统变得越来越复杂,最初的控制程序中逐步的加入了许多功能,而这些功能中有很多可以由操作系统提供。于是,在年代末期出现了嵌入式操作系统(Embedded Operating Systems),它的出现大大简化了应用程序设计,并可以有效的保障软件质量和缩短开发周期。简单的ES一般并不使用操作系统,只包含一些控制流程,但是随着嵌入式操作系统在复杂性上的增长,简单的流程控制就不能满足系统的要求,这是就必须考虑使用操作系统做系统软件。因此,嵌入式操作系统就应运而生。

       éšç€EOS的广泛应用,业界已推出一些应用比较成功的EOS产品。归纳起来EOS应该具有以下几个特点:小巧、实时性、可装卸、固化代码、弱交互性、强稳定性和统一的接口。目前使用最多的EOS产品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(国内凯思集团公司自主研制开发)等。其中,Vxwork使用最为广泛、市场占有率最高,其突出特点是实时性强(采用优先级抢占和轮转调度等机制),除此之外,其可靠性和可剪裁性也相当不错。QNX是一种伸缩性极佳的系统,其核心加上实时POSIX环境和一个完整的窗口系统还不到一兆。相比之下,Microsoft WinCE的核心体积庞大,实时性能也差强人意,但由于Windows系列友好的用户界面和为程序员所熟悉的API,并捆绑IE、Office等应用程序,正逐渐获得更大的市场份额。而与这些商业化的操作系统相比,Linux已经越来越受到人们的注意。

       äºŒã€åµŒå…¥å¼Linux概述

       Linux是一个成熟而稳定的网络操作系统。将Linux植入嵌入式设备具有众多的优点。首先,Linux的源代码是开放的,任何人都可以获取并修改,用之开发自己的产品。其次,Lirmx是可以定制的,其系统内核最小只有约kB。一个带有中文系统和图形用户界面的核心程序也可以做到不足1MB,并且同样稳定。另外,它和多数Unix系统兼容,应用程序的开发和移植相当容易。同时,由于具有良好的可移植性,人们已成功使Linux运行于数百种硬件平台之上。

       ç„¶è€Œï¼ŒLinux并非专门为实时性应用而设计,因此如果想在对实时性要求较高的嵌入式系统中运行Linux,就必须为之添加实时软件模块。这些模块运行的内核空间正是操作系统实现进程调度、中断处理和程序执行的部分,因此错误的代码可能会破坏操作系统,进而影响整个系统的可靠性和稳定性。Linux的众多优点还是使它在嵌入式领域获得了广泛的应用,并出现了数量可观的嵌入式Linux系统。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用于在小型工业计算机,尤其是PC/模块。ThinLinux面向专用的照相机服务器、X-控制器、MP3播放器和其它类似的嵌入式应用。LOAF是Linux On A Floppy的缩略语,它运行在平台上。

       ä¸‰ã€Linux作为嵌入式操作系统的优势

       Linux作为嵌入式操作系统的优势主要有以下几点:

       1、 可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。Linux采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。Linux可以随意地配置,不需要任何的许可证或商家的合作关系,源代码可以免费得到。这使得采用Linux作为操作系统不会遇到任何关于版权的纠纷。毫无疑问,这会节省大量的开发费用。本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。Linux的高度模块化使添加部件非常容易。

       2、 Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X,Alpha、ARM和Motorola等现有的大部分芯片)等特性的一种通用操作系统。其程序源码全部公开,任何人可以修改并在GUN通用公共许可证(GNU General Public License)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。

       3、 Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X Windows)。其强大的语言编译器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。

       å››ã€åµŒå…¥å¼Linux的建立

       å®Œæ•´çš„嵌入式Linux解决方案应包括嵌入式Linux操作系统内核、运行环境、图形化界面和应用软件等。由于嵌入式设备的特殊要求,嵌入式Linux解决方案中的内核、环境、GUI等都与标准Linux有很大不同,其主要挑战是如何在狭小的FLASH、ROM和内存中实现高质量的任务实时调度、图形化显示、网络通信等功能。

       1、 精简内核

       Linux内核有自己的结构体系,其中进程管理、内存管理和文件系统是其最基本的3个子系统。图1简单表示了它的框架。用户进程可直接通过系统调用或者函数库来访问内核资源。正因为Linux内核具有这样的结构,因此修改内核时必须注意各个子系统之间的协调。

       åµŒå…¥å¼Linux内核一般由标准Linux内核裁剪而来。用户可根据需求配置系统,剔除不需的服务功能、文件系统和设备驱动。经过裁剪、压缩后的系统内核一般只有k左右,十分适合嵌入式设备。同标准Linux不同的是嵌入式Linux必须要实现从FLASH或ROM的启动。标准Linux启动代码实现了系统初始化和从软盘、硬盘O盘区引导内核。嵌入式Linux一般保存在FLASH或ROM中,标准LILO无法引导。在支持直接从FLASH设备引导的系统中,如华恒公司的uClinux,引导程序主要完成对硬件系统的初始化工作和操作系统的解压、移位工作。在不支持直接从FLASH引导的系统中,FLASH设备只能作为非引导磁盘使用。此时,可采用先从硬盘或软盘加载一个小操作系统,如嵌入式DOS,然后再执行"Loadlin"加载程序从FLASH引导嵌入式Linux。

       å¯¹æ ‡å‡†Linux的修改主要是虚拟内存和调度程序部分的改动。因为标准Linux系统使用虚拟内存管理的目的是为了能同时运行多个进程,但是这样每个待运行的进程所能分配的CPU时间片就受限制,资源的使用效率就低。这样对于实时性要求较高的嵌入式系统来说,实时任务往往要求CPU具有很高的突发处理能力,即在有些时候需要极高的处理效率,因此需要屏蔽内核的虚拟内存管理机制。对于无硬盘设备的嵌入式系统,不必采用虚存管理。强实时需求的嵌入式应用可以通过修改任务调度模块实现,主要是在内核和设备驱动程序中加入了许多切换点。在该点处,系统检测是否存在未处理的紧急中断,有则剥夺内核的运行,及时处理中断。实现实时性服务的一个较好的方法是在标准的Linux内核上增加一个实时内核,标准Linux内核作为一个任务运行于实时内核上,强实时性任务也直接运行在实时内核上,如RT-Linux等。

       æ–‡ä»¶ç³»ç»Ÿæ˜¯åµŒå…¥å¼Linux操作系统必不可少的。但标准Linux支持大量的文件系统,因此除了满足系统的正常运行需要而保留一种外,其它的全部可以删除,利用原有的设置选项可以移除。一般嵌入式设备文件系统主要使用RamDisk技术和网络文件系统技术。RamDisk可驻留于Flash,运行时加载到内存中。

       2、 精简运行环境

       Linux通常的运行环境指用户运行任何应用的基础设施,主要包括函数库和基本命令集等。标准Linux系统同时向用户提供了静态和动态函数库。静态函数库在生成应用时直接链接到用户应用中。动态库在应用运行时才链接。由于嵌入式系统应用一般都是在开发平台上预先生成的,因此嵌入式系统只需向应用提供动态函数库。Linux应用运行所需的函数库主要有C库、数学库、线程库、加密库、网络通信库等。其中最基本的是C语言的运行库glib。这个库主要完成基本的输入输出,内存访问,文件处理。一个标准的glib库大约要kB存储空间,考虑到嵌入式Linux内核往往很小,这种运行库实在太大,我们做了一些精简的工作,方法有两种:(1)、使用静态连接的方法,完全不使用运行库动态连接;(2)、对这个库的函数进行精简。

       åœ¨ä¸€ä¸ªæ¡Œé¢ç³»ç»Ÿä¸Šï¼Œä½¿ç”¨åŠ¨æ€è¿žæŽ¥å¯ä»¥å¸¦æ¥è®¸å¤šå¥½å¤„。使用动态连接库,可以让应用程序跟函数库的更新、升级分离,便于维护,可以让同时运行的多个程序共享一段代码。但是,在嵌入式系统中,很少有多个程序并行的可能,程序的维护,尤其是库函数的维护更新是不常见的。这时,使用静态连接的优势就极为明显。因为静态连接可以只将库中用到的部分连接进程序。在应用程序较少(小于5)的情况下,静态连接可以达到较好的结果。为了便于将来扩充的需要,我们也采用第二种方法,针对我们的需要,对库函数的内容进行精简,只保留一些基本功能,还有一种方法是采用其它的C语言运行库。但是这些库对兼容性影响很大。

       åŸºæœ¬å‘½ä»¤é›†åŒæ ·æ˜¯è¿è¡Œç”¨æˆ·åº”用的基础,主要包括初始化进程init,终端获取getty、Shell和基本命令等。嵌入式系统的启动过程可能与标准Linux不同,例如跳过登录过程直接启动GUI等。这就要求修改init,getty等。标准Linux命令集同样由于体积问题无法直接应用于嵌入式环境。目前,小命令集的解决方法主要有集成方法和汇编方法两种。集成方法采用集成公共部分减少命令集整体体积,用C实现,有较好的平台移植性;汇编方法则采用汇编编程减少每个命令的体积.这样可使体积很小但其平台移植性较差。

       3、 嵌入式Linux下的GUI

       GUI在嵌入式系统或者实时系统中的地位越来越重要,比如PDA、DVD播放机、WAP手机等,都需要一个完整.漂亮的图形用户界面。这些系统对GUI的基本要求包括:(1)、轻型、占用资源少;(2)、高性能;(3)、高可靠性;(4)、可配置。这些也成为评价嵌入式系统的重要指标。目前,嵌入式Linux上的GUI主要有winCE、Micro Window、紧缩的X Window、MiniGUI(国内做得较好的自由软件之一)。标准Linux的Xfree由于体积庞大,运行环境要求高,无法运行于嵌入式环境。嵌入式GUI主要通过削减功能,降低性能来实现体积小和占用资源少。目前嵌入式Linux上的GUI环境主要有两类:X类和win类。Xç±»GUI分为服务方和客户方两方。服务器方提供鼠标、键盘处理和显示功能,客户方是用户应用,服务方和客户方通过socket接口和X协议通信。采用该方式十分有利于远程网络图形化服务,客户方和服务方可通过网络实现X协议和图形显示。典型的Xç±»GUI有Micro Window、紧缩的X Window等。win类的GUI不存在客户方和服务方,每个任务都自成一体,任何任务间的切换、事件分发由专门的管理任务负责。如wiCE、MiniGUI就是类似于win类的GUI。

       äº”、当前流行的几种嵌入式Linux系统

       é™¤äº†æ™ºèƒ½æ•°å­—终端领域以外,Linux在移动计算平台、智能工业控制、金融业终端系统,甚至军事领域都有着广泛的应用前景。这些Linux被统称为"嵌入式Linux"。

       1、RT-Linux

       è¿™æ˜¯ç”±ç¾Žå›½å¢¨è¥¿å“¥ç†å·¥å­¦é™¢å¼€å‘的嵌入式Linux操作系统。到目前为止,RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛领域。RT-Linux开发者并没有针对实时操作系统的特性而重写Linux的内核,因为这样做的工作量非常大,而且要保证兼容性也非常困难。为此,RT-Linux提出了精巧的内核,并把标准的Linux核心作为实时核心的一个进程,同用户的实时进程一起调度。这样对Linux内核的改动非常小,并且充分利用了Linux下现有的丰富的软件资源。

       2、uClinux

       uCLinux是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit) 的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。uCLinux是一种优秀的嵌入式Linux版本,是micro-Conrol-Linux的缩写。它秉承了标准Linux的优良特性,经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式Linux。虽然它的体积很小,却仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API。它专为嵌入式系统做了许多小型化的工作,目前已支持多款CPU。其编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。

       3、Embedix

       Embedix是由嵌入式Linux行业主要厂商之一Luneo推出的,是根据嵌入式应用系统的特点重新设计的Linux发行版本。Embedix提供了超过种的Linux系统服务,包括Web服务器等。系统需要最小8MB内存,3MB ROM或快速闪存。Embedix基于Linux 2.2内核,并已经成功地移植到了Intel x和PowerPC处理器系列上。像其它的Linux版本一样,Embedix可以免费获得。Luneo还发布了另一个重要的软件产品,它可以让在Windows CE上运行的程序能够在Embedix上运行。Luneo还将计划推出Embedix的开发调试工具包、基于图形界面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案。

       4、Xlinux

       XLinux是由美国网虎公司推出,主要开发者是陈盈豪。他在加盟网虎几个月后便开发出了基于XLinux的、号称是世界上最小的嵌入式Linux系统,内核只有KB,而且还在不断减小。XLinux核心采用了"超字元集"专利技术,让Linux核心不仅可能与标准字符集相容,还含盖了1 2个国家和地区的字符集。因此,XLinux在推广Linux的国际应用方面有独特的优势。

       5、PoketLinux

       ç”±Agenda公司采用、作为其新产品"VR3PDA"的嵌入式Linux操作系统。它可以提供跨操作系统构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台。PoketLinux资源框架开放,使普通的软件结构可以为所有用户提供一致的服务。PoketLinux平台使用户的视线从设备、平台和网络上移开,由此引发了信息技术新时代的产生。在PoketLinux中,称之为用户化信息交换(CIE),也就是提供和访问为每个用户需求而定制的"主题"信息的能力,而不管正在使用的设备是什么。

       6、MidoriLinux

       ç”±Transmeta公司推出的MidoriLinux操作系统代码开放,在GUN普通公共许可(GPL)下发布,可以在上立即获得。该公司有个名为"MidoriLinux计划"。"MidoriLinux"这个名字来源于日本的"绿色"---Midori,用来反映其Linux操作系统的环保外观。

       7、红旗嵌入式Linux

       ç”±åŒ—京中科院红旗软件公司推出的嵌入式Linux是国内做得较好的一款嵌入式操作系统。目前,中科院计算所自行开发的开放源码的嵌入式操作系统---Easy Embedded OS(EEOS)也已经开始进入实用阶段了。该款嵌入式操作系统重点支持p-Java。系统目标一方面是小型化,另一方面能重用Linux的驱动和其它模块。由于有中科院计算所的强大科研力量做后盾,EEOS有望发展成为功能完善、稳定、可靠的国产嵌入式操作系统平台。

       å…­ã€ç»“束语

       ç”±äºŽLinux是一个内核源代码开放、具备一整套工具链、有强大的网络支持及成本低廉的操作系统,因此嵌入式Linux自诞生起就秉承了这众多独特优势,这使它正在并越来越多地受到人们的关注。据Even Data数据显示,期望使用嵌入式Linux的用户从年的%增到年%,而同期Vxwork只是从%到%,Win CE从9%到%。另外,在嵌入式Linux的各种应用市场中,通信(语音和数据)名列第一,年的销售额是万美元,而年预计将达到1.亿美元,可以预见,嵌入式Linux将在未来的通信用嵌入式操作系统中占据强有力的地位

       Linux是目前十分火爆的操作系统。它是由芬兰赫尔辛基大学的一个大学生Linus B. Torvolds在年首次编写的。标志性图标是一个可爱的小企鹅。

       Linux是一种类Unix系统,Linus当时编写它的目的是为了替代一种名叫Minix的操作系统。Minix是由一个名叫Andrew Tannebaum的计算机教授编写的,当时由于Unix是一个商业软件,其源代码是不能拿来进行教学的,Andrew教授就自己编写了一个系统用于教学。最

       åˆçš„Minix用一张软盘就能装下,麻雀虽小、五脏俱全,Minix具有一般操作系统的特征,它同时兼容Unix系统。

       Linux是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。它是在共用许可证GPL(General Public License)保护下的自由软件,也有好几种版本,如Red Hat Linux、Slackware,以及国内的Xteam Linux等。

       Linux具有许多Unix系统的功能和特点,能够兼容Unix,但无需支付Unix高额的费用。比如一个Unix程序员在单位可以在Unix系统上进行工作,回到家里在Linux系统上也能完成同样的工作,而不必重新购买Unix。要知道Unix的价格比常见的Windows要高出若干倍,和Linux的低廉更是相距甚远。

       Linux的应用也十分广泛。Sony最新的PS2游戏机就采用了Linux作为系统软件,使PS2摇身一变,成为了一台Linux工作站。著名的电影《泰坦尼克号》的数字技术合成工作就是利用多台Linux服务器来完成的。

       å¹´8月日,Linux发布了最新的Linux 2.4.9版,它也已经十岁了。

       Linux的优点

       Linux的流行是因为它具有许多诱人之处。

       1、完全免费

       Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让Linux吸收了无数程序员的精华,不断壮大。

       2、完全兼容POSIX 1.0标准

       è¿™ä½¿å¾—可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

       3、多用户、多任务

       Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

       4、良好的界面

       Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Windows系统,用户可以使用鼠标对其进行操作。在X-Windows环境中就和在Windows中相似,可以说是一个Linux版的Windows。

       5、丰富的网络功能

       äº’联网是在Unix的基础上繁荣起来的,Linux的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面Linux要优于其他操作系统。在Linux中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。

       6、可靠的安全、稳定性能

       Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。Linux由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上Linux在这方面也十分出色。

       7、支持多种平台

       Linux可以运行在多种硬件平台上,如具有x、x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。年1月份发布的Linux 2.4版内核已经能够完全支持Intel 位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

       Linux的不足

       ç”±äºŽåœ¨çŽ°åœ¨çš„个人电脑操作系统行业中,微软的Windows系统仍然占有大部分的份额,绝大多数的软件公司都支持Windows。这使得Windows上的应用软件应有尽有,而其他的操作系统就要少一些。许多用户在换操作系统的时候都会考虑以前的软件能否继续使用,换了操作系统后是否会不方便。虽然Linux具有DOS、Windows模拟器,可以运行一些Windows程序,但Windows系统极其复杂,模拟器所模拟的运行环境不可能完全与真实的Windows环境一模一样,这就使得一些软件无法正常运行。

       è®¸å¤šç¡¬ä»¶è®¾å¤‡é¢å¯¹Linux的驱动程序也不足,不少硬件厂商是在推出Windows版本的驱动程序后才编写Linux版的。但一些大硬件厂商在这方面做得还不错,他们的Linux版驱动程序一般都推出得比较及时。

       è½¯ä»¶æ”¯æŒçš„不足是Linux最大的缺憾,但随着Linux的发展,越来越多的软件厂商会支持Linux,它应用的范围也越来越广。这只小企鹅的前景是十分光明的。