前言Foreword
嵌入式系统在功耗、移动性等方面具有传统计算机所不具备的优点,在当前工业控制、物联网以及消费电子等多个领域具有广阔的应用前景,发展潜力巨大。随着嵌入式CPU的性能不断提高,嵌入式系统具有逐渐取代桌面PC的趋势,成为计算机技术发展的新方向。
Linux内核支持x86、PowerPC、ARM等主流的CPU架构,移植性能好,内核可以根据需要进行裁减,同时Linux有庞大的用户群,Linux平台应用程序具有统一的开发接口,在系统之间迁移比较容易。基于Linux操作系统平台已成为嵌入式系统开发的主流,越来越多的嵌入式系统开发商在产品中使用Linux系统作为应用平台。随着Linux内核结构以及实时性功能的不断完善,Linux系统在嵌入式领域的应用范围将越来越广。
当前,嵌入式Linux程序设计方面的人才缺口巨大。一方面,企业研发嵌入式系统产品需要大量嵌入式软件开发人才;另一方面,由于专业划分及课程本身对知识结构的要求,只有少数高校在相关专业开设了嵌入式Linux程序设计课程,适合高校相关专业课程体系及教学特点的教材也比较缺乏。基于上述背景,本书的编写旨在以C语言程序设计、嵌入式系统程序设计课程为先修课,满足计算机应用、电子信息及物联网工程等专业学时安排的嵌入式Linux程序设计教学的需要。全书共分为11章。
第1章绪论介绍Linux的发展过程及版权特点,讲述了Linux操作系统的特点和内核的主要组成部分,嵌入式Linux交叉编译过程以及Linux内核在嵌入式系统应用中的优势、不足及改进途径。
第2章嵌入式系统概述介绍了计算机系统功能的演变过程,嵌入式系统在计算机系统分类中所处的位置,嵌入式系统的概念与应用领域、分类及特点,嵌入式系统的组成,ARM体系结构特点及常见的ARM微处理器,ARM的编程模型,常见的嵌入式操作系统以及嵌入式系统的开发过程。
第3章Linux系统安装与配置介绍了Linux的内核版本和发行版本、安装过程,Linux系统的启动配置及程序安装方法。第4章Linux系统操作基础介绍了Linux系统的使用和操作,包括文件管理、用户管理以及网络管理等部分。
第5章Linux系统C语言程序设计介绍了C语言特点,常用头文件及编译环境变量的配置,C语言程序设计过程,编译器GCC、调试器GDB的用法,工程管理器make的用法,模块化程序设计方法,ARM平台交叉编译环境的搭建以及Linux系统常见的C语言集成开发环境。
第6章Linux系统移植介绍了在嵌入式硬件上安装Linux操作系统的过程,分为内核引导程序Bootloader、Linux内核、文件系统等三个部分的移植。
第7章Linux并发程序设计介绍了Linux多进程程序设计、进程之间的通信以及多线程程序设计。
第8章Linux网络编程介绍了Linux套接字,Linux基于TCP的程序以及Linux基于UDP的程序设计。
第9章Linux文件编程介绍了Linux文件的概念,文件的读写操作、文件的加锁访问以及文件的并行访问复用模型等。
第10章Linux设备驱动程序设计介绍了设备驱动模型,总线型的设备驱动程序开发、中断设备驱动程序以及混杂型设备驱动程序开发。
第11章用户界面程序设计介绍了Qt的安装,Qt应用程序基本结构以及Qt的常用类。
本书第4章、第7章、第8章和第9章由张莉莉编写,其余各章由田卫新编写并负责全书统稿。在本书编写过程中,袁军、张富生、鲍灵利、徐昊等提供了帮助,在此表示感谢。
由于编者水平有限,书中疏漏之处在所难免,恳请读者批评指正!
作者2016年10月