计算机
类型
可以朗读
语音朗读
187千字
字数
2018-05-01
发行日期
展开全部
主编推荐语
Linux系统开发与操作系统移植实验
内容简介
全书分为应用基础和实验两部分。基础部分介绍如何在Linux系统上工作与开发,系统使用侧重与开发相关的功能,软件开发侧重网络功能、多任务及设备驱动的开发。实验部分介绍从BootLoader到图形界面移植一个完整的操作系统。
目录
- 封面
- 书名页
- 内容简介
- 版权页
- 前言
- 目录
- 第1部分 基 础 篇
- 第1章 Linux系统的基本使用方法
- 1.1 Linux系统的使用环境
- 1.1.1 Linux系统的目录结构
- 1.1.2 Linux系统的用户
- 1.2 命令行工作方式
- 1.2.1 终端
- 1.2.2 目录操作
- 1.2.3 文件操作
- 1.2.4 浏览文件
- 1.2.5 打包、压缩和解压
- 1.2.6 进程控制
- 1.2.7 管道与重定向
- 1.2.8 shell脚本程序
- 1.3 规则表达式
- 1.4 与开发相关的常用命令
- 1.4.1 文件比较
- 1.4.2 文本搜索
- 1.4.3 流编辑
- 1.5 文本编辑工具
- 1.5.1 vim工作模式
- 1.5.2 vim常用编辑命令
- 1.5.3 vim高级操作
- 本 章 练 习
- 本章参考资源
- 第2章 Linux系统的主要开发工具
- 2.1 gcc工具链
- 2.1.1 gcc编译器
- 2.1.2 汇编器和链接器
- 2.2 代码分析与转换工具
- 2.2.1 函数地址解析addr2line
- 2.2.2 符号列表nm
- 2.2.3 目标文件转储objdump
- 2.2.4 代码剖析gprof
- 2.2.5 ELF符号解析readelf
- 2.2.6 代码瘦身strip
- 2.3 GNU Make
- 2.3.1 源代码的组织
- 2.3.2 第一个Makefile
- 2.3.3 GNU Make基本规则
- 2.3.4 完善Makefile
- 2.3.5 GNU Make的依赖
- 2.4 开源软件的移植
- 2.4.1 工具准备
- 2.4.2 源代码的组织结构
- 2.4.3 配置编译环境
- 2.4.4 编译和安装
- 2.5 调试工具
- 2.5.1 gdb使用示例
- 2.5.2 远程调试
- 2.6 版本控制系统
- 2.6.1 集中式版本控制系统svn
- 2.6.2 追溯历史、分支与合并
- 2.6.3 分布式版本控制系统git
- 2.6.4 git基本操作
- 2.6.5 git分支与合并
- 2.7 合理地组织程序
- 2.7.1 头文件的要求
- 2.7.2 C语言源文件
- 2.7.3 库的产生和作用
- 2.7.4 项目的目录组织结构
- 2.8 交叉编译工具链的制作
- 本 章 练 习
- 本章参考资源
- 第3章 文件读写
- 3.1 文件系统的概念
- 3.2 文件与目录
- 3.2.1 Linux系统中的虚拟文件系统
- 3.2.2 Linux系统的文件类型
- 3.2.3 改变文件属性
- 3.3 文件描述符
- 3.3.1 标准I/O设备
- 3.3.2 有关文件操作的系统功能调用
- 3.3.3 文件描述符复制
- 3.3.4 文件描述符操作
- 3.3.5 文件共享与读写冲突
- 3.4 标准I/O库的文件操作
- 3.4.1 打开文件
- 3.4.2 文件流读写
- 3.4.3 文件流定位
- 3.4.4 格式化I/O文件操作函数
- 本 章 练 习
- 本章参考资源
- 第4章 多任务机制
- 4.1 理解进程的概念
- 4.1.1 什么是进程
- 4.1.2 进程的状态
- 4.1.3 进程的创建和结束
- 4.1.4 创建进程的例子
- 4.2 进程间的数据交换
- 4.2.1 管道
- 4.2.2 共享内存
- 4.2.3 消息队列
- 4.3 守护进程
- 4.4 线程——轻量级进程
- 4.5 线程的竞争与同步
- 4.5.1 互斥锁
- 4.5.2 信号和信号量
- 4.5.3 进程与线程的对比
- 本 章 练 习
- 本章参考资源
- 第5章 网络套接字编程
- 5.1 套接字API
- 5.1.1 两种类型的套接口
- 5.1.2 网络协议分层
- 5.1.3 关闭套接口
- 5.2 TCP网络程序分析
- 5.2.1 网络地址
- 5.2.2 端口
- 5.3 TCP服务器程序设计
- 5.4 简单的数据流对话
- 5.5 多任务数据流对话
- 5.6 基于数据报的对话程序
- 本 章 练 习
- 本章参考资源
- 第6章 模块与设备驱动
- 6.1 设备驱动程序简介
- 6.1.1 内核功能划分
- 6.1.2 设备驱动程序的作用
- 6.1.3 设备和模块分类
- 6.2 构建和运行模块
- 6.2.1 第一个示例模块
- 6.2.2 模块的编译
- 6.2.3 模块的运行
- 6.2.4 内核模块与应用程序
- 6.3 模块的结构
- 6.3.1 模块的初始化和清除函数
- 6.3.2 内核符号表
- 6.3.3 模块的卸载
- 6.3.4 资源使用
- 6.4 字符设备驱动程序
- 6.4.1 timer的设计
- 6.4.2 文件操作
- 6.4.3 打开设备
- 6.4.4 I/O控制
- 6.4.5 阻塞型I/O
- 6.5 设备驱动程序的使用
- 6.5.1 驱动程序与应用程序
- 6.5.2 内核源码中的模块结构
- 6.5.3 将模块加入内核
- 6.6 调试技术
- 6.6.1 输出调试
- 6.6.2 查询调试
- 6.6.3 监视调试
- 6.6.4 故障调试
- 6.6.5 使用gdb调试工具
- 6.6.6 使用内核调试工具
- 6.7 硬件管理与中断处理
- 6.7.1 I/O寄存器和常规内存
- 6.7.2 中断
- 6.8 内核的定时
- 6.8.1 时间间隔
- 6.8.2 获取当前时间
- 6.8.3 延迟执行
- 6.8.4 定时器
- 本 章 练 习
- 本章参考资源
- 第7章 嵌入式Linux系统开发
- 7.1 引导装载程序
- 7.2 内核设置
- 7.2.1 内核布局
- 7.2.2 内核链接和装入
- 7.2.3 参数传递和内核引导
- 7.3 设备驱动程序
- 7.3.1 帧缓冲区驱动程序
- 7.3.2 输入设备驱动程序
- 7.3.3 MTD驱动程序
- 7.3.4 MTD驱动程序设置
- 7.4 嵌入式设备的文件系统
- 7.4.1 扩展文件系统
- 7.4.2 日志闪存文件系统的第2版(JFFS2)
- 7.4.3 tmpfs
- 7.5 图形用户界面(GUI)
- 7.5.1 XFree86 4.X(带帧缓冲区支持的X11R6)
- 7.5.2 Microwindows
- 7.5.3 Microwindows上的FLTK API
- 7.5.4 Qt/Embedded
- 7.6 帧缓冲
- 第8章 GUI程序设计初步
- 8.1 基本组件介绍
- 8.1.1 一个简单的图形接口程序
- 8.1.2 按钮类组件
- 8.1.3 数据类组件
- 8.1.4 菜单栏与工具栏
- 8.2 画图区
- 8.3 界面布局方法
- 8.3.1 盒子
- 8.3.2 表格
- 8.3.3 对位
- 8.3.4 便签
- 8.3.5 对话框
- 8.4 GTK+界面设计工具
- 本 章 练 习
- 本章参考资源
- 第2部分 实 验 篇
- 第9章 实验系统介绍
- 9.1 实验系统性能概括
- 9.2 软 件
- 9.2.1 交叉编译工具链
- 9.2.2 工具链安装
- 9.2.3 嵌入式操作系统软件
- 9.3 实验系统搭建
- 第10章 嵌入式系统开发实验
- 10.1 实验目的
- 10.2 嵌入式系统开发过程
- 10.2.1 串口设置(使用minicom)
- 10.2.2 TFTP(简单文件传输协议)
- 10.2.3 NFS服务器架设
- 10.2.4 编译应用程序
- 10.3 实验报告要求
- 第11章 引导加载器
- 11.1 实验目的
- 11.2 BootLoader
- 11.2.1 BootLoader的作用
- 11.2.2 BootLoader程序结构框架
- 11.3 实验内容
- 11.3.1 获取U-Boot
- 11.3.2 配置BootLoader选项
- 11.3.3 制作TF卡
- 11.4 实验报告要求
- 第12章 内核配置和编译
- 12.1 实验目的
- 12.2 相关知识
- 12.2.1 内核源代码目录结构
- 12.2.2 内核配置的基本结构
- 12.2.3 编译规则Makefile
- 12.3 编译内核
- 12.3.1 Makefile的选项参数
- 12.3.2 内核配置项介绍
- 12.4 实验内容
- 12.5 实验报告要求
- 第13章 根文件系统的构建
- 13.1 实验目的
- 13.2 Linux文件系统的类型
- 13.2.1 EXT文件系统
- 13.2.2 NFS文件系统
- 13.2.3 JFFS2文件系统
- 13.2.4 YAFFS2
- 13.2.5 RAM Disk
- 13.3 文件系统的制作
- 13.3.1 BusyBox介绍
- 13.3.2 BusyBox的编译
- 13.3.3 配置文件系统
- 13.3.4 制作ramdisk文件镜像
- 13.3.5 制作init_ramfs
- 13.4 实验内容
- 13.5 实验报告要求
- 第14章 图形用户接口
- 14.1 实验目的
- 14.2 原理概述
- 14.2.1 帧缓冲设备
- 14.2.2 帧缓冲与色彩
- 14.2.3 LCD控制器
- 14.2.4 帧缓冲设备操作
- 14.3 实验内容
- 14.3.1 实现基本画图功能
- 14.3.2 合理的软件结构
- 14.4 实验报告要求
- 第15章 音频接口程序设计
- 15.1 实验目的
- 15.2 接口介绍
- 15.3 应用软件设计
- 15.3.1 OSS
- 15.3.2 ALSA
- 15.4 实验内容
- 15.5 实验报告要求
- 第16章 嵌入式系统中的I/O接口驱动
- 16.1 实验目的
- 16.2 接口电路介绍
- 16.3 I/O端口地址映射
- 16.4 LED控制
- 16.5 实验内容
- 16.6 实验报告要求
- 第17章 触摸屏移植
- 17.1 实验目的
- 17.2 Linux系统的触摸屏支持
- 17.2.1 触摸屏的基本原理
- 17.2.2 内核配置
- 17.2.3 触摸屏库tslib
- 17.2.4 触摸屏库的安装和测试
- 17.3 实验内容
- 17.4 实验报告要求
- 第18章 Qt/Embedded移植
- 18.1 实验目的
- 18.2 Qt/Embedded介绍
- 18.2.1 Qt/Embedded软件包结构
- 18.2.2 编译环境设置
- 18.2.3 编译过程
- 18.2.4 Qt/Embedded的安装
- 18.2.5 Qt-4.8版本编译
- 18.3 实 验 要 求
- 18.4 实验报告要求
- 第19章 MPlayer移植
- 19.1 实验目的
- 19.2 软件介绍
- 19.3 编译准备
- 19.4 编 译
- 19.5 扩展功能
- 19.6 实验报告要求
- 第20章 GTK+移植
- 20.1 实验目的
- 20.2 GTK+的背景
- 20.3 GTK+库的依赖关系
- 20.4 编译过程
- 20.4.1 编译准备
- 20.4.2 一般方法
- 20.4.3 环境变量
- 20.4.4 一些特殊的设置
- 20.4.5 编译技巧
- 20.5 测 试
- 20.6 实验要求
- 20.7 实验报告要求
- 第21章 实时操作系统RTEMS
- 21.1 实验目的
- 21.2 实时操作系统RTEMS简介
- 21.3 编译RTEMS
- 21.4 启用RTEMS终端
- 21.5 实验报告要求
- 封底
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。