深度探索嵌入式操作系统:从零开始设计、架构和开发

彭东
前言 为什么写这本书 随着移动互联网技术的成熟,物联网也开始崭露头角,由此产生了各种小型、低功耗的智能硬件,这些智能硬件被嵌入到移动电话、手表、冰箱、空调、电视机、洗衣机等常用电子产品中,使这些常用电子产品功能更加强大、更加智能,而且它们可以连接到网络,便于用户远程操控,从而大大改善了人们的生活。 因此,嵌入式行业才变得如此火热,那些被嵌入到电子产品中的智能硬件,也需要一些小巧、特殊的操作系统软件才能正常工作,这类小巧、特殊的操作系统软件,称为嵌入式系统。2013年下半年,我开始学习嵌入式系统,并编写了一个嵌入式操作系统——LMOSEM。在互联网上也认识了不少研究嵌入式的朋友,在他们的要求和规劝下,我终于有勇气把我研究出来的东西归纳、整理成册,也算是我学习的笔记,于是就有了这本书。虽然有很多的顾虑,怕贻笑方家、怕误导同道……但是我的每行代码、每个点子,都在实机上测试过并证明了其正确性,所以也就心下一片坦然了。如果这本书能够被后来者借鉴一二,或者解决他们的一些疑惑,我自然欣慰万分。 关于LMOSEM 关于LMOSEM,这得从LMOS开始说起。2010年下半年,我开始准备要写个操作系统内核,没有其他目的,只是出于学习,出于兴趣。由于是自己独立从零开始设计、编写的,我觉得自己这种行为有点疯狂,索性用LMOS(liberty madness operating system)命名了我的操作系统。LMOS经过这几年的独立开发,现在已经发布了6个测试版本。先后从32位单CPU架构发展到64位多CPU架构,现在的LMOS已经是多进程、多线程、多CPU、支持虚拟内存的x86_64体系下的操作系统内核。LMOS的这些特性,非常适合通用计算机领域,如PC、工作站、小型服务器。这些特性导致LMOS代码量庞大,一些组件不够小巧,削剪起来非常复杂,很难保证削剪后的组件是否健壮,因此LMOS不适合于…