前言
本书作者多年的嵌入式领域研发、管理和教学经验,促成了本书的诞生。
本书的目的
操作系统是一个古老的话题,它的出现和发展,对于计算机技术来说,意义非凡。这种发展不仅仅体现在传统的计算机中,在强调精简、高效率和实时性的嵌入式领域,操作系统也发挥着不可替代的作用。
熟悉嵌入式技术的读者朋友多少都能列举出一些典型的嵌入式操作系统,如ECOS、UCOS、Linux、VxWorks,等等,这些操作系统凭借自身的优势,在嵌入式领域的各种应用中安营扎寨,各占据了一席之地,国内基于这些嵌入式操作系统的书籍也是琳琅满目、层出不穷。
本书写作的一个根本目的是能够体现出嵌入式操作系统的基本原理和结构特点,于是,本书力求从嵌入式操作系统的实现方法这一角度出发,去讲解嵌入式系统的基本原理,为大家展示一个嵌入式操作系统的全貌,不拘泥于某款具体的操作系统,不局限在操作系统上的应用程序这一范畴。
一次跟Android领军人物高焕堂先生聊天时,他的一番话让我感触颇深。他说,国外先进的开发工具、平台和操作系统就好比是武器,而中国人喜欢拿着别人给的先进武器去打仗(做应用层开发),一旦有一天我们跟外国人打起来,人家拿走我们的武器,我们就真的是一筹莫展了。
这句话很有道理,中国计算机技术整体水平的提高需要以大量自主研发的开发工具、平台架构以及操作系统为基础。不过,目前我们离这样的一个目标还相去甚远。
本书强调实践,力求能够帮助读者编写出属于自己的嵌入式操作系统。如果读者以本书为基础(或者哪怕从中得到了一丝灵感)开发出一些优秀的嵌入式操作系统,那将会是非常令人高兴的事情!
本书的特点
目前,市面上与操作系统理论相关的书有很多,与这些书相比,本书特点十分鲜明。
第一,本书的内容立足于嵌入式技术,以目前最流行的ARM体系结构为基础,为您展示出嵌入式环境下操作系统的基本原理和实现方法。这是一本学习嵌入式技术,尤其是系统级技术的首选教材。
第二,本书是以实践的方式讲述全书内容的,重视理论联系实际。操作系统涉及的每一个角落,如进程、内存、中断、文件系统、驱动程序,都有若干段代码供读者实践。实际上,读者只需要将书中的代码拼接起来,就可以构成一个结构完整的操作系统内核。
第三,涉猎广泛。为了让读者能够全方位地理解操作系统的理论和实现方法,书中涉及了高级C语言编程、汇编语言、算法、ARM体系结构等诸多领域,分析研究了包括freeRTOS、uCOSII、u-boot、Linux、Minix等在内的操作系统和引导程序的源代码。这些必备的知识和概念都将成为您深入研究任何一款操作系统的绝佳入门内容。
第四,本书语言通俗易懂。书中在描述各种操作系统概念或原理时,力求使用通俗的语言浅显地说明问题,这与一些学术性质的操作系统读物有明显的不同。
谁适合读这本书
本书是写给那些想了解操作系统原理的人,也适合那些想要学习ARM技术的开发者。当然,对于那些致力于开发属于自己的嵌入式操作系统的读者们来说,本书是一部绝佳的入门指南。
当然,我们也希望本书的读者至少具备一些基本的C语言编程基础。除了C语言之外,如果您对微机原理之类的知识也略知一二,那么在阅读本书的时候,将会觉得更加轻松。本书不需要读者了解嵌入式技术,因为这些知识在书中都会涉及,但如果您也知道一些关于ARM的事,那么无论是重写书中的代码还是深入理解书中所讲述的操作系统原理,都会水到渠成。
学习本书的方法
本书在知识的宽度和篇幅上做了平衡。希望展示给读者一个操作系统的全貌,保证读者能够自己动手完成操作系统的编写,而这些都需要我们在开发的过程中不断学习书中所涉猎的知识点。毫无疑问,这些内容是相当庞大的。
为了避免在书中罗列各种技术手册的细节,在本书的编写过程中,我们遵循了只对用到的知识深入讲解的原则。这样做的弊端是,读者会对很多知识点有深入的理解,但却不全面。
因此,我们推荐阅读本书的最佳方法是,以本书为主线,以其他本书中未提到的相关知识、参考资料为辅助。当然,如果读者的确是时间有限,那么单凭书中所涉猎的知识,也足以完成读者学习和实践的过程了。
另外,这里还想强调的是,一定要多多实践,实践将成为您快速掌握一门新技术的不二选择。
为了方便读者获取书中涉及的相关资料和工具,我们开设了一个网站,读者朋友可以去访问www.leeos.org以获取帮助。
最后,希望所有的读者在读完本书之后,都能够有所收获,希望每位读者都能编写出属于自己的嵌入式操作系统!