Lenix这个名称本来的意义是“学习用的操作系统”,因为这个系统就是为了便于学习而开发的。命名时就用了英文单词“Learn”作为名称,完全符合本意。随后看到很多操作系统名字的末尾都有一个“x”,给人一种探索未知领域的感觉,很科幻,因此就凑趣,保留Learn的头尾,在末尾加了x,但感觉“Lenx”这个词没有美感,就又加了一个“i”,也就是笔者自己,于是就有了Lenix这个名称。随着开发工作的深入,功能逐步增加,这时笔者发现其在嵌入式领域中已经具备了一定的可用性,因此就对名称的意义进行了重新定义: 名称不变,还是Lenix,但其代表的意义变更为“罗氏嵌入式操作系统(Luobins Embedded OS)”,也就是用笔者的名字来命名这个系统,且将其定位在嵌入式领域。
本书预计面向有一定C语言、汇编语言编程经验和PC硬件知识的读者。如果没有以上基础,但又确实对操作系统感兴趣,那么在阅读本书前,先适当学习一定的C语言和汇编语言编程,并初步了解PC的硬件配置。这样会比较容易理解书中的内容。
关键章节内容采用的结构是先说明需求和设计等基本情况,然后安排API的用法说明和一些程序例子,最后对功能的实现做详细解析,这包括数据类型、公共变量和源代码的说明。笔者认为这样的方式比较便于理解和学习。
嵌入式Linux是以Linux为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。
《Lenix嵌入式操作系统》分4个部分介绍Lenix,首先用具体的例子向读者展示部分Lenix的能力,随后对Lenix涉及的操作系统的基本概念进行说明,接着再对Lenix的整体结构和引入的CPU、计算机模型进行介绍,最后用大量篇幅对进程管理、时间管理、内存管理、IPC、设备管理、人机交互和移植等几个部分的设计思路、API和源代码进行详细的分析。
第1章,通过具体的演示程序来展示Lenix的功能,使读者对Lenix建立一个比较直观的认识。
第2章,介绍操作系统的基础概念,这些概念是在Lenix中采用的。对这些概念建立起统一的认识,将有助于理解Lenix。
第3章,从整体上介绍Lenix,使读者建立起较为系统的认识。
第4章,说明Lenix的临界段保护方法,这是开发操作系统的关键基础,会一直伴随开发的整个过程。
第5章,说明Lenix引入的硬件模型。模型包含CPU模型和计算机模型,各个模型都定义了一定数量的接口,这些接口为实现操作系统的功能提供便利。
第6章,说明Lenix进程管理的设计和实现。对于单个进程,进程管理的主要工作是对进程生命周期的管理。对于多个进程,主要工作则是关注进程如何被调度,即如何分配CPU。
第7章,说明Lenix的IPC设计和实现。系统实现了自旋锁、普通锁和互斥对象三个基本的IPC机制,还提供了邮箱来完成进程间少量数据的通信。
第8章,说明Lenix时间管理的设计和实现。时间管理是通过时钟中断来提供一个基本的计时依据,并在这个基础上开发了定时器等功能。
第9章,说明Lenix内存管理的设计和实现。系统的内存总是无法满足程序的需要,因此有动态内存管理功能。系统还提供了高效的定长内存管理和适用广泛的堆内存管理。
第10章,说明Lenix人机交互的设计和实现。人机交互是使用计算机系统的重要组成部分,目前系统提供了利用TTY终端与SHELL解释程序组合的人机交互方式。
第11章,说明Lenix设备管理的设计和实现。系统定义Lenix驱动模型(LDM),包含设备驱动接口(DDO)、设备管理的框架、设备使用规范和驱动程序框架。
第12章,说明Lenix的移植。通过在16位PC上的开发来说明如何移植Lenix。