|
操作系统
操作系统(Operating
System,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows2000、Netware等。
嵌入式操作系统
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等browser。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点
1.为什么采用操作系统?
操作系统是什么?完成什么功能,在人们的印象中,并不陌生。然而,在大多数工程师的脑海里,好象操作系统只是PC机上的事情,对于很多处理器,如单片机、DSP等之中,运行类似Windows的操作系统,是不可思议的事情,而且好象也没有必要,系统只需要加电或者复位后,从0地址执行程序,再加上一些必不可少的中断即可。
是的,对于简单的硬件和任务,确实并不需要专用的操作系统,实际上工程师在写软件之时,已经把应用程序和操作系统结合到了一起,任何程序都是先进行各种初始化(相当于操作系统),然后再执行应用程序。但是,随着系统的复杂程度和用户需求的提高,就可能会需要一个操作系统(OS,Operating
System),来完成如内存管理、多任务管理、周边资源的管理工作,使应用程序员能够专注于系统的功能和应用,我们可以讨论下面的例子:
比如我们要在一个ARM上开发一个TCP/IP网络,是否可以不用操作系统,答案当然是可以,但这是很困难的,而且开发出来的程序面临稳定性、移值困难等问题,我们随便可以想到TCP/IP网络遇到的问题
-
必须随时“知道“网络数据进入了目标平台?
-
必须随时“知道”用户是否打算停止数据的传输?
-
必须随时“知道”某个网络的状态是否超时?
不必说用户需要打开两个以上的浏览器,就上述三个问题,如果没有操作系统,只靠程序员去检查这些状态,相信这是一项非常可怕的事情;而且如果想对这个程序进行移值,这是每个程序员都想回避的事情,更不必说如果系统中有USB、声卡等等的情况了。
而一旦采用操作系统,这一切都会变的很简单,这相当于把应该由原来程序员做的事情进行了分解,产生了操作系统程序员和应用程序程序员,可以得知,采用操作系统,使得系统的设计和开发变的简洁和容易,加快了开发进度。
2.嵌入式操作系统的基本功能和特点
所谓操作系统,不管是桌面PC机还是嵌入式操作系统系统,其目的都是系统应用程序和硬件系统之间的桥梁,使得用户更少地考虑硬件系统而专注于自己的应用程序开发;但是区别于桌面系统的WinTel架构,由于嵌入式系统自身的很多特点,其操作系统和桌面系统有极大的不同。
一般的嵌入式操作系统主要提供“微小内核”为主,由于当然还有外围的很多诸如窗口界面、网络通信等辅助模块,一般来讲,嵌入式系统主要提供下面一些基本功能
2.1任务管理
主要实现在应用程序中建立任务、删除任务、挂起任务、恢复任务以及对任务的响应、切换和调度的功能。
系统中运行的任务状态有运行态、就绪态、挂起态和休眠态。系统任务就绪后就进入就绪态,等待队列,通过调度程序获得CPU和资源的使用权,从而进入运行状态,任务因为运行时申请资源等原因而进入挂起态,等待运行条件的满足,当条件满足后,任务被唤醒而进入就绪态;任务还有一种状态是中断状态,指任务运行时有中断到达,系统响应中断而执行中断程序,任务被中断后的状态
2.2内存管理
内核存储器管理提供内存资源的合理分配和存储保护功能,很多嵌入式操作系统都提供了虚拟内存的管理方式,针对具体的嵌入式硬件,存储管理方式还有不同,比如具有MMU的嵌入式处理器和不带MMU的嵌入式处理器,具有实时性能的嵌入式操作系统和不具有实时性的嵌入式操作系统。
2.3 任务间的通信和同步
对于多任务操作系统,内核必须解决任务之间的通信和同步。一般任务的通信有共享数据结构和消息机制两种方式,同步具备单向和双向的同步方式,还可以实现对共享资源的互斥访问。
2.4 定时器管理
系统定时器管理主要提供时钟,进行系统热各任务时间片的分配,以及对于实时操作系统的快速时间响应。
2.5 中断管理
无论嵌入式操作系统还是通用操作系统,都采用中断模式实现对外界的响应,中断管理负责中断的初始化安装、现场的保存和恢复,中断栈的嵌套管理。
2.6 外设管理
嵌入式系统除了系统自身的处理器和内存之外,还有很多不同的周边资源,例如键盘、显示器、通讯端口、外接控制器等,因此必须编写驱动程序以提供对周边资源的支持。
2.7 文件系统
嵌入式系统的存储方式多种多样,有SD卡、MMC接口、串口FLASH、U盘等等,因此嵌入式操作系统的文件系统支持也多种多样,而且小巧。和桌面机占大多数的“WinTel”架构不同,由于嵌入式系统的五花八门,应用领域差别较大的特点,嵌入式系统大多是“量身定做”,因此嵌入式操作系统也具有和通用操作系统不同的很多特点
-
针对嵌入式平台的多样性,CPU的快速更新,嵌入式操作系统要具有良好的硬件适应性和移值性,同时相对于各种平台,必须具有相应的编译器、连接器、调试器和加载工具、测试工具的一体话支持;
-
要求占用很小的资源。嵌入式系统提供的资源很有限,都是在片上的FLASH或者RAM上运行,因此必须小巧;
-
模块化设计、可安装和卸载;针对各种嵌入式平台,嵌入式操作系统必须具有可裁减、安装和卸载的功能,以适应嵌入式硬件平台的多样性和低成本;
-
固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统;
-
高可靠性。嵌入式系统一旦运行,运行时间一般很长,且不受用户过多的干预,因此需要很高的可靠性和稳定性;
-
统一的接口。提供各种设备驱动接口,包括块设备、字符设备和网络设备接口,用户只需要开发相应的板极支持包(BSP,一般专业的厂商可以支持)和上层程序;
-
在需要实时性的场合,嵌入式操作系统必须具备实时功能。
当然,对于嵌入式操作系统,还有很多特点,最为关键的是具备可“量身定做”的模块化功能,大多数的嵌入式操作系统都提供内核原代码,供用户裁剪和修改方便。
3.嵌入式操作系统的比较和选择
不同于桌面PC,嵌入式操作系统的发展历史由来已久,而且种类繁多;很多工程师在移值操作系统到自己的硬件平台过程中,都做了很大的努力,在此,我们不可能把所有的操作系统一一列举,加以分析,仅仅列举支持ARM的常用操作系统:WINCE、Vxworks、嵌入式linux、Palm
OS、lambdaTOOL/DeltaOS、Hopen。
3.1 Windows CE
虽然微软进入嵌入式操作系统的时间相对较短,但是凭借其巨大的实力和在桌面PC上的巨大影响力,很快就占有了很大的市场分额。
Windows CE是一个简洁的,高效率的多平台操作系统。 它不是削减的Windows95版本,而是从整体上为有限资源的平台设计的多线程,完整优先权,多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制,目前已经成功移值到傅立叶电子科技公司的FFT-HY7202评估板上。
对于Windows CE的详细介绍请参考专题6,在此我们简单讨论WINCE的优缺点:
优点:
-
由于微软在桌面PC的影响力,特别微软也提供了面向WINCE的VB、VC等应用软件,因此,如果采用WINCE,硬件平台许可,工程师很容易介入,开发门槛低,可以加快产品的开发速度;
-
由于WINCE属于商业性软件,加以微软的强大实力和进军嵌入式系统领域的决心,有理由相信,系统肯定会有很大的兼容性,移值性比较好;
-
支持多种嵌入式处理器,包括ARM, MIPS, PowerPC,
SH, x86 保护模式, StrongARM,
NEC, VR4111等很多种;
-
WINCE也采用模块化设计,用户可以安装和卸载,同时微软破天荒地开放了包括WINCE的内核、网络协议以及关键的驱动程序在内的100多万行代码,可以尽可能大地发挥嵌入式系统的性能;
-
Windows CE的API是Win32
API的一个子集,支持近1500个Win32
API。有了这些API,足可以编写任何复杂的应用程序。当然,在Windows
CE系统中,所提供的API也可以随具体应用的需求而定
当然Wince和Windows在技术上有很多相通之处,还有很多优点。但是针对于嵌入式的特点,和其他一些优秀的嵌入式操作系统相比,wince也具有其天生的缺点。
缺点:
1、WINCE没有开放大多数的原码,用户开发定制不方便,受Microsoft公司本身的限制较多;
2、针对嵌入式系统来讲,WINCE的内核还是过于庞大,需要更多的存储空间,这对于很多嵌入式系统并不合适;
感触:如果继续讲解嵌入式操作系统理论部分这些学生根本听不懂,学生因为听不懂必然闲谈聊天。针对这种情况决定对教学大纲和教案加以全面调整,否则是在浪费学生时间,我本人对讲大家都听不懂东西也没有兴趣,同时建议学校以后干脆不要开设这样太理论化难度大的课程,否则效果会很差,在高教大众化的今天我们只有面对现实调整自己。
修改思路:少讲理论,增加相关知识视频资料解读。 |