第二版前言

本书的前版——《自己动手写嵌入式操作系统》,是基于Hello China V1.0的实现完成的,而本书,则是基于Hello China V1.5版本完成的。相对于V1.0版本,V1.5版本做了如下的改进或增强:

(1)对于V1.0的核心线程调度程序做了修改,修改为严格基于优先级的调度方式,这样符合嵌入式系统的应用。

(2)对于V1.0的线程切换方式做了改进,V1.5的线程切换方式更加简洁、高效。

(3)对核心线程的调度时机做了增强。在V1.5的实现中,在任何可能的时机,都进行一个线程重调度操作,以最大可能地缩短高优先级线程的等待时间。而在V1.0的实现中,则只是在系统时钟中断后才会调度核心线程。

(4)对系统同步对象(如事件对象、MUTEX对象等)的实现做了增强,增加了安全删除、超时等待、递归等待、状态探测等功能。

(5)增加了核心线程的CPU利用率统计功能。

(6)增加了系统回调机制,使得V1.5版本可很容易支持浮点运算。

(7)实现了一个基于COM接口的通信程序,可模拟一个超级终端。

(8)对一些系统核心对象的实现做了加强,使得可支持多CPU构架(SMP)。

(9)对代码的组织结构做了完善,并优化了注释。

总之,如果说V1.0版本仅仅是一个嵌入式操作系统的demo的话,那么V1.5版本就是一个可实际使用的嵌入式操作系统内核了。作者是从事电信网络工作的,曾经用V1.5附带的超级终端小程序,完成了一台高端路由器的配置☺。

本书就是基于V1.5的实现完成的,相对本书的第一版,本书除了对V1.5的新功能做了详细的描述外,还在下列地方做了改进:

(1)更改了原书代码中的一些纰漏;

(2)源代码仍然免费向大家发放,请大家从www.broadview.com.cn直接下载得到。

很多第一版的读者,给作者反馈了宝贵的修改意见,在此表示感谢。同时再次感谢电子工业出版社的同仁们给予的支持和帮助。作者特地在CSDN上申请了一个blog,本书读者或其他对Hello China感兴趣的朋友,可登录上去探讨技术问题。该blog的地址是:http://blog.csdn.net/hellochina15/

另,与第一版一样,本书所得稿费的一半,仍将用于支援贫困山区的失学儿童。

作者

2007年12月 于杭州