【深入实践ucos-ii】开篇

从开始学ucos-ii到现在已然4个年头过去,从当初对C语言指针都把握不好的大学僧到现在玩转C语言编程(你可能觉得我吹嘘,如果你非要认为能够轻松写出像linux内核那样面向对象的架构才能算是玩转,那么你的确实要求有点高了)到现在从事一些linux内核编程。几年的时光,我对ucos-ii这个嵌入式实时操作系统运用可谓游刃有余。学linux编程已经接近两个年头了,现在再回首讲解ucos-ii,可谓是站在一个全新的高度来看ucos-ii,一是以前学过的知识,再重新拿出来整理整理,这是程序员的一个习惯(渴望学习新知识,偶尔回顾旧知识)。

ucos-ii真个操作系统的代码分布在十几个c文件、一个头文件和几个汇编文件中,相对于linux的3万多个源文件(几百万行代码,还在不断增加)来说简直太小了。但是,麻雀虽小,五脏俱全!越是小,越是便于我们快速理解。有的人一上来就看像linux这样级别内核源码,往往只有一条死路。

usos-ii没有所谓的应用层和内核层,它不需要CPU支持内存保护,当然,程序是和内核在一个级别上运行,如果程序出错,很有可能意味着整个系统都将崩溃,这和linux内核模块的编程有点类似。

ucos-ii整个系统是由绝大部分C语言和少数汇编写成。这需要读者有一定的C语言功底,能看懂指针常用用法就行。

笔者认为:
1. 学好C语言在于精通指针,学好C++在于模板编程。
2. 对内存不熟悉的人,他的C语言好不到哪去!他也根本不会理解操作系统到底是怎么个回事。

一套具有上下文切换的功能(任务调度)的代码就可称之为操作系统了,其他如信号量、互斥锁、消息队列、邮箱、时间管理、内存管理或者文件系统、图形界面等等只能算是操作系统核心上的附属功能,只是因为这些功能比较实用,所以一般操作系统都会选择性的实现以上功能。比如:ucos-ii没有实现文件系统和图形界面、linux没有实现图形界面,windows即实现了文件系统又有图形界面,安卓是在linux内核的基础上包裹了一个图形界面系统。

整个实践过程着重讲解ucos-ii的任务调度,然后实践调度、通信、同步、时钟例子。例子都是在PC上进行实践的VS2010工程demo(VC6.0工程demo也有,不过VC6.0太落后了,希望刚入手的童鞋尽快淘汰掉VC6.0)。

你可能感兴趣的:(操作系统,嵌入式,ucos-II)