· 多年嵌入式人才培养及项目研发经验总结
· 数百家企业嵌入式研发岗位人才需求汇总
· 数十所嵌入式专业大学院校教学现状调研
· 侧重实践及案例分析并辅以代码加以讲解
《从实践中学嵌入式linux操作系统》介绍了操作系统的几大组成部分,并以嵌入式开发领域中的主流linux操作系统为例说明了各功能的实现。
全书共分为11章,内容包括嵌入式linux操作系统的基本概念,linux系统的安装与使用,操作系统的存储管理、进程管理、文件管理、设备管理等几个核心模块,其中涉及对linux内核代码的部分分析介绍。其中,第10章综合介绍了开发嵌入式linux系统的全过程,包括建立开发环境、编译bootloader、编译内核、部署根文件系统等全过程;第11章介绍了以linux为内核的android系统的编译和移植方法。
本书可作为大学院校电子、通信、自动化、计算机等专业“嵌入式操作系统”课程的教材,也可供嵌入式linux爱好者参考使用。
《从实践中学嵌入式linux操作系统》章节:
第1章 嵌入式linux操作系统简介
1.1 操作系统
1.2 嵌入式系统
1.3 嵌入式操作系统
1.4 嵌入式linux基础
1.4.1 linux发展概述
1.4.2 linux作为嵌入式操作系统的优势
1.4.3 linux发行版本
1.4.4 如何学习linux
1.5 linux安装
1.5.1 基础概念
1.5.2 硬件需求
1.5.3 安装准备
1.5.4 安装过程
1.6 linux文件及文件系统
1.6.1 文件类型及文件属性
1.6.2 文件系统类型介绍
1.6.3 linux目录结构
1.7 本章习题
第2章 linux操作系统使用与系统配置
2.1 linux基本命令
2.1.1 用户系统相关命令
2.1.2 文件目录相关命令
2.1.3 压缩打包相关命令
2.1.4 比较合并文件相关命令
2.1.5 网络相关命令
2.2 linux系统服务
2.2.1 独立运行的服务
2.2.2 xinetd设定的服务
2.2.3 设定服务命令常用方法
2.3 本章习题
第3章 嵌入式linux编程环境
3.1 linux编辑器vi的使用
3.1.1 vi的模式
3.1.2 vi的基本流程
3.1.3 vi的各模式功能键
3.2 gcc编译器
3.2.1 gcc编译流程解析
3.2.2 gcc编译选项分析
3.3 gdb调试器
3.3.1 gdb使用流程
3.3.2 gdb基本命令
3.4 make工程管理器
3.4.1 makefile基本结构
3.4.2 makefile变量
3.4.3 makefile规则
3.4.4 make管理器的使用
3.5 使用autotools
3.5.1 autotools使用流程
3.5.2 使用autotools生成的makefile
3.6 本章习题
第4章 存储管理
4.1 进程虚存空间的管理
4.1.1 进程的虚存区域
4.1.2 虚存空间的映射和虚存区域的建立
4.2 内存空间/地址类型
4.3 分页机制与mmu
4.4 高速缓存
4.5 内存区域zone
4.6 获得内存页面
4.7 slab分配器
4.8 kmalloc
4.9 高端内存
4.10 虚拟内存的申请和释放
4.11 本章习题
第5章 操作系统进程
5.1 进程的基本概念
5.2 linux系统进程
5.2.1 linux进程基础
5.2.2 进程描述符
5.2.3 进程的状态与转换
5.2.4 进程队列指针
5.2.5 进程队列的全局变量
5.3 linux进程的创建
5.4 linux进程相关的系统调用
5.4.1 execve()系统调用
5.4.2 wait()系统调用
5.4.3 exit()系统调用
5.5 linux的进程调度
5.6 实时linux
5.7 本章习题
第6章 进程间通信
6.1 什么是进程间通信
6.2 互斥与同步
6.3 信号量
6.3.1 什么是信号量
6.3.2 信号量的内核实现
6.3.3 信号量的使用
6.4 共享内存
6.4.1 什么是共享内存
6.4.2 共享内存的内核实现
6.4.3 共享内存的使用
6.5 消息队列
6.5.1 什么是消息队列
6.5.2 消息队列的内核实现
6.5.3 消息队列的使用
6.6 管道
6.6.1 什么是管道
6.6.2 管道的内核实现
6.6.3 管道的读/写规则
6.7 本章习题
第7章 中断与系统调用
7.1 什么是中断
7.2 嵌入式平台硬件中断特点
7.3 linux内核中断机制概述
7.4 编写中断处理程序isr
7.4.1 中断处理系统结构
7.4.2 注册中断处理函数
7.4.3 中断标志flags
7.4.4 isr上下文
7.5 tasklet机制
7.6 上半部和下半部
7.6.1 上半部和下半部的设计
7.6.2 中断处理程序的不可重入性
7.7 工作队列
7.8 系统调用
7.8.1 初始化系统调用
7.8.2 system_call函数
7.8.3 参数的传递与验证
7.9 本章习题
第8章 文件管理
8.1 磁盘的物理组织
8.2 文件和目录
8.2.1 文件的分类
8.2.2 目录
8.2.3 文件系统
8.3 虚拟文件系统
8.3.1 虚拟文件系统概述
8.3.2 vfs超级块
8.3.3 文件控制块
8.3.4 vfs的目录项
8.3.5 文件对象
8.3.6 主要数据结构间的关系
8.4 文件系统注册与卸载
8.4.1 和文件系统相关的数据结构
8.4.2 文件系统类型注册函数
8.4.3 挂载文件系统
8.4.4 文件系统卸载
8.5 本章习题
第9章 设备管理
9.1 设备及设备管理的功能
9.1.1 设备分类
9.1.2 设备管理
9.2 i/o内核子系统
9.2.1 i/o系统的基本功能
9.2.2 i/o空间
9.2.3 i/o控制方式
9.3 linux设备驱动程序
9.3.1 设备管理
9.3.2 linux字符设备
9.3.3 linux块设备
9.3.4 linux网络接口
9.3.5 linux设备文件
9.3.6 linux设备注册与注销
9.3.7 操作i/o端口
9.3.8 linux逻辑i/o与设备驱动程序的接口
9.4 本章习题
第10章 嵌入式linux的构建
10.1 嵌入式开发环境的搭建
10.1.1 嵌入式交叉编译环境的搭建
10.1.2 超级终端和minicom配置及使用
10.1.3 下载映像(image)到开发板
10.1.4 编译嵌入式linux内核
10.1.5 linux内核目录结构
10.1.6 制作文件系统
10.2 bootloader介绍
10.2.1 bootloader概述
10.2.2 u-boot概述
10.3 嵌入式linux根文件系统构建
10.3.1 根文件系统目录结构
10.3.2 fhs目录结构
10.3.3 文件存放规则
10.4 本章习题
第11章 android系统的编译和移植
11.1 移植背景与目标
11.2 移植涉及的主要过程
11.3 下载android linux 内核
11.4 安装交叉工具链
11.5 android linux 内核支持ez6410平台
11.5.1 cs8900a驱动移植
11.5.2 键盘驱动编写
11.5.3 液晶驱动
11.5.4 触摸屏驱动
11.5.5 usb驱动修改
11.5.6 提取android 根文件系统
11.5.7 系统环境设置
11.6 本章习题