第1章第2节 操作系统的分类

源码请在https://github.com/ifreecoding/MbedRtos.git下载

第2节 操作系统的分类

操作系统是管理整个软硬件系统的软件系统,从不同的角度操作系统可以有很多种划分,比如按与用户对话的界面分类可分为命令行界面操作系统和图形用户界面操作系统,按支持用户数的多少可以分为单用户和多用户操作系统,按功能可以分为嵌入式操作系统和PC机通用操作系统,按调度的方式可分为分时系统和实时系统等。操作系统种类繁多,很难用单一标准统一分类,由于本人知识有限无法详细的介绍各种类型操作系统,也无法为操作系统准确分类。对比PC机使用的操作系统,本手册将讲述的是嵌入式实时操作系统,因此将介绍一下“嵌入式”和“实时”等概念。

u 嵌入式操作系统(Embedded Operating System,EOS)

根据IEEE(The Institute of Electrical and Electronics Engineers,电气与电子工程师学会)的定义,嵌入式系统是控制、监视或者辅助装置、机器和设备运行的装置(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的结合体,按我个人的理解,嵌入式软件就是“嵌入”到硬件中的软件,而嵌入到硬件中的操作系统就是嵌入式操作系统。这个“嵌入”是相对PC机而言的,PC机是一个通用的系统,有着标准的外设定义,键盘、鼠标、显示器、显卡、声卡、各种标准的插槽,x86的CPU,买台电脑功能都差不多,差的只是性能。而嵌入式设备则五花八门,PSP、MP4、手机、电子称、遥控器等等,什么都有,它们的硬件系统是针对专一功能开发的,它们的软件和操作系统也具有专一性,因此体积小成本低。

我们对比一下使用嵌入式系统和PC机通用系统开发产品,举个例子,如果要做一个计算器,我这里有两个方案,一、用电脑做,买来电脑,装完Windows,在运行窗口敲入“calc”,可以直接调出计数器软件,功能实现了。优点是开发周期短,而且PC机上也有众多的软件可以使用,扩展性强。但缺点也是致命的,成本太高体积太大,不能指望着小商小贩们背着电脑去卖货,这样的产品一定卖不出去。二、使用单片机、LED显示屏等器件自己设计方案开发产品,虽然开发周期相对要长一些,但成本绝对低。再举个例子,如果要开发一种功能丰富的办公系统产品,则最好是基于PC机系统开发的。键盘、鼠标、显示器、打印机、扫描仪、传真机、摄像头,这些办公常用的输入输出设备与PC机都有标准的接口,可以直接使用,而且PC机上丰富的软件可以使开发过程容易很多,如果自己另做一套软硬件,这个工作量太大了,几乎无法完成,而且这么大的工作量也会使成本居高不下。

本手册所实现的两个操作系统——Wanlix和Mindows都属于嵌入式操作系统,这两个操作系统在设计时都定位为小系统的操作系统,因此具有内核小的特点。Wanlix的内核非常小,定位于非常低端的软硬件系统,Mindows可提供多种操作系统功能,用户也可根据自身需求选取需要的部分,也可在此基础上编写代码增加自己需要的功能,具有可裁剪性。

u 实时操作系统(Real-time Operating System,RTOS)

实时是指及时性,实时操作系统具有实时性,能保证及时做出响应。某些领域对数据采集、处理的实时性要求比较严格,时间上的错误可能会造成灾难性的后果,因此需要软件具有很高的实时处理能力。操作系统是控制软件运行的系统,为实现软件的实时性就需要操作系统具有实时性,实时操作系统可以快速响应外界及内部状态的变化,在严格规定的时间内完成相关工作的调度,具有高可靠性。与之相对的分时操作系统则按时间片依次逐个调度任务,实时性不高。实时操作系统是一种抢占式操作系统(Preemptive operating system),所谓抢占式是指高优先级的任务可以中断正在运行的低优先级任务,处理器转而去执行高优先级的任务,由于这种“抢占”可在高优先级任务就绪后立刻发生,因此才保证了操作系统的实时性。

Wanlix是非抢占式操作系统,需要由当前运行的任务主动发起任务切换调度,其它任务不可中断其运行,因此实时性不高。Mindows是实时抢占式操作系统,任务支持多种优先级抢占调度,将实时性高的任务设置为高优先级就可以保证软件系统的实时性。

将《底层工作者手册之C语言基础及项目开发》改名为《底层开发者手册之C语言基础及项目开发》,并做了一些修改,更新到2.4.5。不过其中有一些还没有写完。先凑合看吧   《C》这本手册是《底层开发者手册》系列的第二本,但它却是我第一个开始写的,早在2008年年底时我就开始着手写这本手册,但写了没多久就因为发生了一个意外而终止了。在2010年年初的时候我开始了第四本手册的写作——嵌入式操作系统内核,目前已接近完工状态(我的博客可以下载,blog.sina.com.cn/ifreecoding),现在我又回过头来重新写《C》这本手册,将会采用与《嵌》一样的方式,写一部分就在网上发布一部分,在这同时我又在收集第一本和第三本手册的材料,准备将这4本手册同时写完,使读者可以按照顺序阅读这4本手册,层层深入底层开发者的工作。   一个良好的C语言基础是编写嵌入式设备底层代码的必要条件,如今介绍C语言的书不少,介绍嵌入式C的书也不少,但几乎没有结合实际项目来介绍C语言的,看完这样的书,C语言会用了,但做出来的产品只能称之为中国校园式产品,为求实现功能不择手段,根本不适合在项目中使用。另有一些自称C语言精华的书或网上的面试宝典,尽是讲一些偏题怪题,这可能满足了作者的虚荣心,但却在将新手引向一个错误的方向。当然,仁者见仁智者见智,这仅是我个人的观点,也一定会被他人所反驳的,正是出现百家争鸣的局面社会才能进步。   本手册分为2部分,第一部分介绍C语言基础,在介绍C基础时会结合嵌入式中的应用加以介绍,将重点介绍在项目开发中有用的内容,对于过分追求技术但又没有什么实际用处的内容不做过多的介绍,对于这些内容最多会提一下,让读者知道有这种情况存在。第二部分介绍项目开发,从项目需求、分析、设计、编码、测试、维护的角度来介绍编写代码。记住,编码只是项目中的一个部分,在中国校园式产品中这可能几乎就是全部了,但在一个可以称之为产品的项目中,它只是一部分,并且项目越大它所占的比重越小。   我在看书学习新知识时,希望看到的是那些写的多一些详细一些,也就是废话多一些的书,可以傻瓜式的一步步跟下来,不希望看到那些对关键之处一笔带过还故作高深的书,所以本手册就以废话多为原则,可能会写的罗嗦一些,只求能看的明白一些。当然,本人知识水平有限,有些知识会有理解上的错误,或者有未触及的地方,错误一定是有的,就像做产品一样,不可能没有错误。我写本手册的目的在于分享我的知识,注重实际应用,这对某一论坛上的某些只会空谈经验、分析汉字语法的理想C语言文艺专家们来说可能会不屑一顾。如有问题,请登录我的博客blog.sina.com.cn/ifreecoding反馈,我虚心接受,但我拒绝那些假大空的为了批评而批评的建议。我们做项目不是写论文,是实实在在的东西!   为新手写一本介绍C语言的书很难,因为它牵涉到非常多的知识作为基础,其中的一些知识很可能需要使用另外几本书的篇幅来介绍,而且知识是耦合在一起的,在介绍前面的时候会涉及到后面的知识,对于新手来说,没有对C形成一个全貌,无法理解。因此给新手的建议是只能多看几遍,第一遍大致看看,掌握全貌,不要细读,然后再多读几遍,仔细分析各种问题,并结合例子,自己动手编程,调试,这个过程非常重要,一定要自己动手编程,光看是没有用的,只有自己动手解决了问题,才能从根本上理解问题。 C语言入门可能会比较容易,但不要指望几个月时间就能熟练掌握C语言,如果做底层编码的话则需要以年为单位来衡量。
Mindows操作系统更新5.1~5.3,将wanlix从ARM7内核移植到cortex内核,更多资料请登陆www.ifreecoding.com下载。 前面基础知识介绍完毕,本开始真刀真枪的移植代码了。本将Wanlix3.3的代码从ARM7内核移植到TI和ST的cortex内核的芯片上,移植完成后通过串口打印可以看到移植的效果。 如果你有STM32的板子,现在就可以跑! /***************************************************************************/ Wanlix是一个内核非常小的嵌入式操作系统,只有几百个字,但功能少,只提供任务切换功能,非常适合资源特别少但又需要任务切换的小项目。 Mindows可提供多种操作系统功能,是实时抢占式操作系统,任务支持多种优先级抢占调度,将实时性高的任务设置为高优先级就可以保证软件系统的实时性,用户也可根据自身需求选取需要的部分,也可在此基础上编写代码增加自己需要的功能,具有可裁剪性。 我将Wanlix和Mindows的开发过程记录下来,就形成了这本“底层工作者手册之嵌入式操作系统内核”一书,本手册不仅仅是从应用的角度介绍操作系统如何使用,更重要的是从原理的角度对操作系统的功能做了分析、设计,从无到有循序渐进一点点的增加操作系统的功能,并且每增加一个功能便配以一个例子加以演示,让读者能立刻看到代码运行的结果。 本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也一定可以随心所欲的修改、扩展你需要的操作系统功能! 请登陆www.ifreecoding.com获取更多资料 /***************************************************************************/
Mindows操作系统更新到4.4看,增加任务任务切换钩子功能,更多资料请登陆www.ifreecoding.com下载。 Wanlix是一个内核非常小的嵌入式操作系统,只有几百个字,但功能少,只提供任务切换功能,非常适合资源特别少但又需要任务切换的小项目。 Mindows可提供多种操作系统功能,是实时抢占式操作系统,任务支持多种优先级抢占调度,将实时性高的任务设置为高优先级就可以保证软件系统的实时性,用户也可根据自身需求选取需要的部分,也可在此基础上编写代码增加自己需要的功能,具有可裁剪性。 我将Wanlix和Mindows的开发过程记录下来,就形成了这本“底层工作者手册之嵌入式操作系统内核”一书,本手册不仅仅是从应用的角度介绍操作系统如何使用,更重要的是从原理的角度对操作系统的功能做了分析、设计,从无到有循序渐进一点点的增加操作系统的功能,并且每增加一个功能便配以一个例子加以演示,让读者能立刻看到代码运行的结果。 本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也一定可以随心所欲的修改、扩展你需要的操作系统功能! 请登陆www.ifreecoding.com获取更多资料
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值