当前位置: 首页 > 原创图书 >《嵌入式Linux基础教程》

《嵌入式Linux基础教程》
  • 图书名称 :    《嵌入式Linux基础教程》
  • 作       者 :    华清远见
  • 出版单位 :    人民邮电出版社
  • 丛书名称 :    图灵程序设计丛书 操作系统
  • 全书章节 :    共17章
  • 出版日期 :    2009年11月
编辑推荐

· 多年嵌入式人才培养及项目研发经验总结
· 数百家企业嵌入式研发岗位人才需求汇总
· 数十所嵌入式专业大学院校教学现状调研
· 侧重实践及案例分析并辅以代码加以讲解

图书简介

       本书是嵌入式 linux的经典教程,介绍了引导装入程序、系统初始化、文件系统、闪存和内核、应用程序调试技巧等,还讲述了构建 linux系统的工作原理,用于驱动不同体系结构的配置,linux内核源码树的特性,如何根据需求配制内核运行时的行为,如何扩展系统功能等内容。更重要的是,本书阐述了如何修改系统使之满足读者自己的需求,使读者能从中学习一些嵌入式工程中非常有用的提示和技巧。
       本书适合 linux程序员阅读,也可作为高等院校相关专业师生的参考读物。

图书目录

第1章 引言.
1.1 为什么使用linux
1.2 嵌入式linux现状
1.3 开源和gpl
1.4 标准和相关机构
1.4.1 lsb
1.4.2 osdl
1.5 小结
参考资源
第2章 嵌入式初体验
2.1 需要嵌入式系统吗
2.2 嵌入式系统剖析
2.2.1 典型嵌入式linux系统设置
2.2.2 启动目标板
2.2.3 启动内核
2.2.4 内核初始化概述
2.2.5 第一个用户空间进程:init
2.3 存储的思考
2.3.1 闪存
2.3.2 nand闪存
.2.3.3 闪存的用途
2.3.4 闪存文件系统
2.3.5 存储器空间
2.3.6 运行上下文
2.3.7 进程中的虚拟内存
2.3.8 交叉开发环境
2.4 嵌入式linux的发行版
2.4.1 linux商业发行版
2.4.2 linux自定义发行版
2.5 小结
参考资源
第3章 处理器基础
3.1 单机处理器
3.1.1 ibm 970fx
3.1.2 intel pentium m
3.1.3 freescale mpc7448
3.1.4 配套芯片组
3.2 集成化处理器:片上系统
3.2.1 powerpc
3.2.2 amcc powerpc
3.2.3 freescale powerpc
3.2.4 mips
3.2.5 broadcom mips
3.2.6 amd mips
3.2.7 其他类型的mips
3.2.8 arm
3.2.9 ti arm
3.2.10 freescale arm
3.2.11 intel arm xscale
3.2.12 其他arm
3.2.13 其他体系结构
3.3 硬件平台
3.3.1 compactpci
3.3.2 atca
3.4 小结
参考资源
第4章 linux内核——不同视角
4.1 背景知识
4.1.1 内核的版本
4.1.2 内核源码库
4.2 linux内核构造
4.2.1 顶层资源目录
4.2.2 编译内核
4.2.3 严格意义上的内核:vmlinux
4.2.4 内核映像组件
4.2.5 子目录结构
4.3 内核构建系统
4.3.1 .config文件
4.3.2 配置编辑器
4.3.3 makefile的目标
4.3.4 内核配置
4.3.5 自定义配置选项
4.3.6 内核makefile
4.3.7 内核文档
4.4 获取linux内核
4.5 小结
参考资源
第5章 内核初始化
5.1 合成内核映像:piggy及其他
5.1.1 image目标文件
5.1.2 体系结构相关的目标文件
5.1.3 第二阶段引导装入程序
5.1.4 引导信息
5.2 初始化控制流
5.2.1 内核入口点:head.o
5.2.2 内核启动:main.c
5.2.3 体系结构设置
5.3 内核命令行处理
5.4 子系统初始化
5.5 init线程
5.5.1 通过initcall初始化
5.5.2 引导的最后步骤
5.6 小结
参考资源
第6章 系统初始化
6.1 根文件系统
6.1.1 fhs
6.1.2 文件系统布局
6.1.3 最小文件系统
6.1.4 根文件系统带来的挑战
6.1.5 试错法
6.1.6 自动化文件系统构建工具
6.2 内核的最后引导过程
6.2.1 用户空间下第一个程序
6.2.2 解决依赖
6.2.3 定制初始化进程
6.3 init进程
6.3.1 inittab
6.3.2 web服务器启动脚本示例
6.4 初始ram磁盘
6.4.1 初始ram磁盘的目的
6.4.2 使用initrd引导
6.4.3 引导装入程序对于initrd的支持
6.4.4 initrd的奥妙所在:linuxrc文件
6.4.5 initrd探究
6.4.6 构建initrd映像文件
6.5 使用initramfs
6.6 关机
6.7 小结
参考资源
第7章 引导装入程序
7.1 引导装入程序的作用
7.2 引导装入程序的挑战
7.2.1 dram控制器
7.2.2 闪存与ram
7.2.3 映像的复杂性
7.2.4 执行上下文
7.3 通用的引导装入程序:das u-boot
7.3.1 执行上下文
7.3.2 u-boot命令集
7.3.3 网络操作
7.3.4 存储子系统
7.3.5 从磁盘启动:u-boot
7.4 移植u-boot
7.4.1 为ep405开发板移植u-boot
7.4.2 u-boot的makefile配置目标
7.4.3 ep405处理器初始化
7.4.4 特定开发板的初始化
7.4.5 移植概要
7.4.6 u-boot映像格式
7.5 其他引导装入程序
7.5.1 lilo
7.5.2 grub..
7.5.3 其他引导装入程序
7.6 小结
参考资源
第8章 设备驱动程序基础
8.1 设备驱动程序基本概念
8.1.1 可加载模块
8.1.2 设备驱动程序的体系结构
8.1.3 最小设备驱动程序示例
8.1.4 模块构建的基础设施
8.1.5 安装设备驱动程序
8.1.6 加载设备驱动程序模块
8.2 模块实用程序
8.2.1 insmod
8.2.2 模块参数
8.2.3 lsmod
8.2.4 modprobe
8.2.5 depmod
8.2.6 rmmod
8.2.7 modinfo
8.3 驱动程序方法
8.3.1 驱动程序文件系统操作
8.3.2 设备节点与mknod
8.4 汇总
8.5 设备驱动程序与gpl
8.6 小结
参考资源
第9章 文件系统
9.1 linux文件系统的概念
9.2 ext2文件系统
9.2.1 挂载文件系统
9.2.2 文件系统完整性检查
9.3 ext3文件系统
9.4 reiserfs文件系统
9.5 jffs2文件系统
9.6 cramfs文件系统
9.7 nfs文件系统
9.8 伪文件系统
9.8.1 proc文件系统
9.8.2 sysfs文件系统
9.9 其他文件系统
9.10 构建简单的文件系统
9.11 小结
参考资源
第10章 mtd子系统
10.1 启用mtd服务
10.2 mtd基础知识
10.3 mtd分区
10.3.1 redboot分区表
10.3.2 内核命令行分区
10.3.3 映射驱动程序
10.3.4 闪存芯片驱动程序
10.3.5 特定开发板的初始化
10.4 mtd实用程序
10.5 小结
参考资源
第11章 busybox
11.1 busybox简介
11.2 busybox配置
11.3 busybox操作
11.3.1 busybox之init
11.3.2 rcs初始化脚本示例
11.3.3 在目标平台安装busybox
11.3.4 busybox命令
11.4 小结
参考资源
第12章 嵌入式开发环境
12.1 交叉开发环境
12.2 主机系统需求
12.3 为目标板提供服务
12.3.1 tftp服务器
12.3.2 bootp/dhcp服务器
12.3.3 nfs服务器
12.3.4 使用nfs为目标板挂载根文件系统
12.3.5 u-boot nfs根挂载示例
12.4 小结
参考资源
第13章 开发工具
13.1 gdb
13.1.1 调试核心转储
13.1.2 调用gdb
13.1.3 gdb调试会话
13.2 ddd
13.3 cbrowser/cscope
13.4 追踪和程序分析工具
13.4.1 strace
13.4.2 strace的变体
13.4.3 ltrace
13.4.4 ps
13.4.5 top
13.4.6 mtrace
13.4.7 dmalloc
13.4.8 内核oops
13.5 二进制实用程序
13.5.1 readelf
13.5.2 使用readelf检查调试信息
13.5.3 objdump
13.5.4 objcopy
13.6 其他二进制实用程序
13.6.1 strip
13.6.2 addr2line
13.6.3 strings
13.6.4 ldd
13.6.5 nm
13.6.6 prelink
13.7 小结
参考资源
第14章 内核调试技术
14.1 内核调试的难点
14.2 使用kgdb调试内核
14.2.1 kgdb内核配置
14.2.2 支持kgdb的内核启动
14.2.3 有用的内核断点
14.3 linux内核的调试
14.3.1 gdb远程串口协议
14.3.2 调试优化后的内核代码
14.3.3 gdb用户定义命令
14.3.4 有用的内核gdb宏
14.3.5 调试可加载模块
14.3.6 printk调试
14.3.7 magic sysreq键
14.4 硬件辅助调试
14.4.1 使用jtag探测器对闪存编程
14.4.2 用jtag探测器进行调试
14.5 无法启动时
14.5.1 早期串口调试输出
14.5.2 转储printk日志缓冲区
14.5.3 kgdb捕捉崩溃
14.6 小结
参考资源
第15章 调试嵌入式linux应用程序
15.1 目标机调试
15.2 远程(交叉)调试
15.3 使用共享库进行调试
15.4 多任务调试
15.4.1 多进程的调试
15.4.2 多线程应用程序的调试
15.4.3 引导装入程序/闪存代码的调试
15.5 远程调试的附加选项
15.5.1 串行端口调试
15.5.2 绑定到正在运行的进程
15.6 小结
参考资源
第16章 移植linux
16.1 linux源代码的组织
16.2 为开发板定制linux
16.2.1 前提和假设
16.2.2 定制内核初始化
16.2.3 静态内核命令行
16.3 平台初始化
16.3.1 早期变量访问
16.3.2 开发板信息结构
16.3.3 机器相关的调用
16.4 汇总
16.5 小结
参考资源
第17章 linux与实时
17.1 什么是实时
17.1.1 软实时
17.1.2 硬实时
17.1.3 linux 调度
17.1.4 中断延迟
17.2 内核抢占
17.2.1 抢占的缺陷
17.2.2 抢占模型
17.2.3 smp内核
17.2.4 抢占延迟源
17.3 实时内核补丁
17.3.1 实时的特性
17.3.2 o(1) 调度器
17.3.3 创建实时进程
17.3.4 临界区管理
17.4 调试实时内核
17.4.1 软锁检测
17.4.2 抢占调试
17.4.3 调试唤醒时间
17.4.4 唤醒延迟历史
17.4.5 中断响应时间
17.4.6 中断响应历史
17.4.7 延迟跟踪
17.4.8 调试死锁环境
17.4.9 锁模式的运行时控制权
17.5 小结
参考资源
附录a 可配置的u-boot命令
附录b busybox命令
附录c sdram接口的注意事项
附录d 开源项目资源
附录e bdi-2000配置文件示例...