前言 嵌入式系统与计算机系统的起源都比较久远。由于嵌入式系统的硬件形形色色,软件也带着各个行业的不同特点,因此一直没有像计算机系统一样被大众普遍认识。尤其是嵌入式操作系统,虽然也风风雨雨发展了很多年,但是由于它的应用范围比计算机操作系统小,因此不被大众所了解。随着智能制造的快速发展,读者对于编写操作系统方面的图书需求越来越大,但之前关于操作系统的图书大多是讲解如何使用操作系统,还没有讲解如何编写操作系统的。尤其是嵌入式操作系统涉及微处理器、高级编程技巧、数据结构等多方面的理论知识,这让很多想从事这方面工作的人无从下手。为此,本书以如何编写自己的操作系统为目标,细致分析了μCOSⅡ的结构和代码,给愿意编写操作系统的爱好者一条可借鉴的技术路线。 本书重点讲述嵌入式操作系统原理,尤其是不同于计算机操作系统的一些原理。由于有些嵌入式系统的规模较小,需要自己编写操作系统,因此本书侧重于介绍如何编写嵌入式操作系统内核; 同时,介绍区块链操作系统的设计思路,让读者了解如何设计一个新型的嵌入式操作系统的思路; 最后介绍各种常用的嵌入式操作系统,包括Linux、μCLinux、Android、Windows CE等。这些常用嵌入式操作系统的介绍主要以编写某设备驱动为主线,使读者能大略了解一个嵌入式操作系统的组成。 本书内容分两部分,介绍如下: 第1~10章为第一部分,介绍嵌入式操作系统原理。其中,第1章介绍嵌入式操作系统基础知识,如嵌入式操作系统发展历史、分类、编写方法等; 第2章详细介绍嵌入式系统硬件与操作系统; 第3章介绍嵌入式操作系统的体系结构和基本概念,以及嵌入式操作系统编写的要求; 第4章详细介绍嵌入式操作系统常用数据结构; 第5章详细介绍嵌入式操作系统的一般启动方式、BootLoader的编写方式、μCOSⅡ与μCLinux的启动方式和使用到的数据结构; 第6章详细介绍任务管理的各个组成模块及其实现方式; 第7章详细介绍嵌入式操作系统中资源管理的各种方式及实现,并通过对μCOSⅡ的改造,讲解如何在已有嵌入式操作系统中实现所需要功能模块的扩展; 第8章详细介绍任务间通信方式及实现; 第9章详细介绍内存管理方式及实现; 第10章详细介绍中断与异步通信的方式及实现。 第11~14章为第二部分,介绍常用嵌入式操作系统及其应用。其中,第11章介绍Linux内核及其驱动的编写; 第12章介绍μCLinux内核及驱动的编写; 第13章介绍Android系统构架及蓝牙驱动的编写; 第14章介绍Windows CE内核及驱动的编写。 根据我们的教学体会,本书的教学可以安排为32~48学时。如果安排的学时数较少,可以根据学生的水平适当删减内容。本书提供的实验实例全部在目标硬件上调试通过。另外,本书赠送了两个教辅文档——《综合案例——区块链操作系统设计》与《实验指导——5个上机实验设计》,读者可到清华大学出版社网站本书页面获取下载链接。 本书内容新颖,立足点高,同时力求重点突出,层次清晰,语言通俗易懂,内容覆盖面广。学习本书需要有一定的C语言和硬件基础知识。尽管我们在写作过程中投入了大量的时间和精力,但由于水平有限,书中不足之处仍在所难免,敬请读者批评指正。我们会在适当时间对本书进行修订和补充。 作者2023年1月