虽然讲Linux的好书很多,但是本书汇集了专门针对嵌入式Linux开发人员的各方面信息和建议。实际上,有关Linux内核、Linux系统管理等方面的优秀书籍已经有很多了。本书也参考了我认为在同类书籍中最好的几本。
本书的很多内容来自实际的问题,有些问题是我作为
计算机书籍嵌入式Linux顾问时一些开发工程师提出的,还有些问题是我直接参与商业嵌入式Linux开发时遇到的。
嵌入式Linux会给经验丰富的软件工程师带来一些独特的挑战。首先,那些有多年老式实时操作系统(Real Time Operating System,RTOS)开发经验的工程师会发现,他们的思维习惯很难从旧的环境转换到Linux;其次,经验丰富的应用程序开发人员常常难以理解多种开发环境的相对复杂性。
虽然这是一本面向嵌入式Linux开发初学者的基础教程,但我相信即使是经验丰富的嵌入式Linux开发人员也能从中获益,书中包含了我多年积累的实用建议和技巧。
给实际的嵌入式开发人员的实用建议
本书介绍了嵌入式工程师怎样才能迅速掌握嵌入式Linux环境的新知识。书中没有重点讲解Linux内核原理,而是在讲解内核的章节侧重从项目角度介绍内核。你可以阅读专门介绍内核原理的优秀图书来了解相关知识。你可以从本书学到内核源码树的组织和布局,了解组成内核镜像的二进制组件和加载它们的方法,以及它们在嵌入式系统中的作用。
在本书中,你会学到Linux内核构建系统的工作原理,以及怎样将满足项目需求的具体变化融合到系统中。你会了解到Linux系统初始化的细节,包括内核空间初始化和用户空间初始化。你还能看到很多对嵌入式项目有益的建议和技巧,涵盖引导加载程序、系统初始化、文件系统和闪存,以及高级的内核与应用程序调试技术。第2版中新增了很多内容,很多章节都有更新,比如讲开源构建系统、USB和udev的几章都是新的,而且有相当篇幅探讨如何在嵌入式Linux项目中配置和使用这些复杂的系统。
目标读者
本书需要读者具有一定的C语言编程基础,对局域网和因特网有基本的了解,理解IP地址的概念以及IP地址在简单局域网中的用法,还需要理解十六进制和八进制编码方式以及它们常见的用法。
本书也涉及一些C语言编译和链接中较为深入的概念,因此你要是能粗略复习一下C语言链接器的概念就更好了。同时,了解GNU make操作和语法对于阅读本书也很有帮助。
本书不是什么
本书不是一本详细介绍硬件的指南。硬件设备种类繁多是嵌入式开发者所面临的一大困难。集成了一些外围设备的现代32位处理器,其用户手册动辄就有3000页。没有捷径可走。作为程序员,要想理解硬件设备就必须花费大量时间研读硬件数据手册和参考指南,同时要花费更多的时间针对这些硬件设备编写和测试代码。
这也不是一本讲述Linux内核或内部原理的书。本书不会深入讨论用来实现Linux虚拟内存管理策略和过程的内存管理单元(MMU)。已经有许多关于这个主题的优秀图书了,建议你读一读每章后面的“补充阅读建议”。
排版约定
命令和代码语句使用Courier New字体。用户输入的命令使用加粗的Courier New字体。新名词和重要概念使用楷体加以强调。
本文书籍信息来至:中国互动出版网 http://www.china-pub.com/