图书介绍

Linux系统移植2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Linux系统移植
  • 刘刚,赵剑川编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302239222
  • 出版时间:2011
  • 标注页数:527页
  • 文件大小:151MB
  • 文件页数:547页
  • 主题词:Linux操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Linux系统移植PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 系统移植基础篇2

第1章 Linux内核介绍2

1.1 系统调用接口2

1.1.1 Linux系统调用2

1.1.2 用户编程接口2

1.1.3 系统调用与服务例程的对应关系3

1.1.4 系统调用过程3

1.1.5 系统调用传递的参数4

1.2 进程管理4

1.2.1 进程4

1.2.2 进程描述符5

1.2.3 进程状态6

1.2.4 进程调度6

1.2.5 进程地址空间8

1.3 内存管理10

1.3.1 内存管理技术10

1.3.2 内存区管理12

1.3.3 内核中获取内存的几种方式13

1.4 虚拟文件系统14

1.4.1 虚拟文件系统作用14

1.4.2 文件系统的注册15

1.4.3 文件系统的安装和卸载15

1.5 设备驱动程序17

1.5.1 字符设备驱动程序17

1.5.2 块设备驱动程序18

1.5.3 网络设备驱动程序21

1.5.4 内存与I/O操作22

1.6 小结23

第2章 嵌入式Linux开发环境搭建24

2.1 虚拟机及Linux安装24

2.1.1 虚拟机的安装24

2.1.2 单独分区安装系统30

2.1.3 虚拟机和主机通信设置31

2.1.4 VMware tools工具安装33

2.1.5 虚拟机与主机共享文件35

2.1.6 虚拟机与主机文件传输36

2.2 交叉编译工具38

2.2.1 交叉编译工具安装38

2.2.2 交叉编译器测试43

2.3 超级终端和Minicom44

2.3.1 超级终端软件的安装44

2.3.2 Minicom使用45

2.3.3 SecureCRT使用48

2.4 核、文件系统加载工具48

2.4.1 烧写Bootloader48

2.4.2 内核和文件系统下载52

2.4.3 应用程序和文件传输54

2.5 在开发中使用网络文件系统(NFS)56

2.5.1 虚拟机设置56

2.5.2 虚拟机的IP地址设置56

2.5.3 验证网络连接59

2.5.4 设置共享目录59

2.5.5 启动NFS服务60

2.5.6 修改共享配置后61

2.5.7 挂载NFS61

2.5.8 双网卡挂载NFS61

2.6 小结62

第2篇 系统移植技术篇64

第3章 Bootloader移植64

3.1 Bootloader介绍64

3.1.1 Bootloader与嵌入式Linux系统的关系64

3.1.2 Bootloader基本概念64

3.1.3 Bootloader启动过程66

3.2 Bootloader之U-Boot67

3.2.1 U-Boot优点67

3.2.2 U-Boot的主要功能68

3.2.3 U-Boot目录结构68

3.3 U-Boot移植过程69

3.3.1 环境配置69

3.3.2 修改cpu/arm920t/start.S70

3.3.4 具体平台相关修改79

3.3.5 其他部分修改81

3.3.6 U-Boot的编译84

3.4 Bootloader之vivi85

3.4.1 vivi简介85

3.4.2 vivi配置与编译85

3.4.3 代码分析88

3.5 vivi的运行88

3.5.1 Bootloader启动的阶段一89

3.5.2 Bootloader启动的阶段二95

3.6 小结95

第4章 Linux内核裁剪与移植96

4.1 Linux内核结构96

4.1.1 内核的主要组成部分96

4.1.2 内核源码目录介绍97

4.2 内核配置选项99

4.2.1 一般选项99

4.2.2 内核模块加载方式支持选项100

4.2.3 系统调用、类型、特性、启动相关选项101

4.2.4 网络协议支持相关选项102

4.2.5 设备驱动支持相关选项102

4.2.6 文件系统类型支持相关选项103

4.2.7 安全相关选项104

4.2.8 其他选项104

4.3 内核裁剪及编译105

4.3.1 安装内核源代码105

4.3.2 检查编译环境设置105

4.3.3 配置内核106

4.3.4 编译内核115

4.4 内核映像文件移植到ARM板116

4.4.1 移植准备116

4.4.2 烧写系统118

4.5 内核升级121

4.5.1 准备升级内核文件121

4.5.2 移植过程122

4.6 小结125

第5章 嵌入式文件系统制作126

5.1 文件系统选择126

5.1.1 Flash硬件方案比较126

5.1.2 嵌入式文件系统的分层结构127

5.2 基于Flash的文件系统127

5.2.1 JFFS文件系统(Journalling Flash FileSystem)128

5.2.2 YAFFS文件系统(Yet Another Flash File System)130

5.2.3 Cramfs文件系统(Compressed ROM File System)133

5.2.4 Romfs文件系统(ROM File System)134

5.3 基于RAM的文件系统135

5.4 文件系统的制作135

5.4.1 制作Ramdisk文件系统136

5.4.2 制作YAFFS2文件系统144

5.4.3 制作JFFS2文件系统150

5.4.4 其他文件系统制作152

5.5 小结153

第3篇 系统移植与驱动篇156

第6章 LCD驱动移植156

6.1 认识LCD相关硬件原理156

6.1.1 LCD概述156

6.1.2 LCD控制器157

6.1.3 LCD控制器方块图157

6.1.4 LCD控制器操作158

6.1.5 LCD控制寄存器163

6.2 LCD参数设置166

6.3 内核LCD驱动机制167

6.3.1 FrameBuffer概述167

6.3.2 FrameBuffer设备驱动的结构167

6.4 Linux 2.6.25的LCD驱动源码分析171

6.4.1 LCD驱动开发的主要工作171

6.4.2 s3c2410fb_init()函数分析172

6.4.3 s3c2410fb_probe()函数分析173

6.4.4 s3c2410fb_remove()函数分析178

6.5 移植内核中的LCD驱动179

6.5.1 LCD硬件电路图179

6.5.2 修改LCD源码179

6.5.3 配置内核184

6.6 小结187

第7章 触摸屏驱动移植188

7.1 触摸屏概述188

7.1.1 触摸屏工作原理188

7.1.2 触摸屏的主要类型188

7.2 S3C2440 ADC接口使用191

7.2.1 S3C2440触摸屏接口概述191

7.2.2 S3C2440触摸屏接口操作192

7.3 2.6内核触摸屏驱动源码分析(s3c2410_ts.c源码分析)196

7.4 Linux内核输入子系统介绍201

7.4.1 Input子系统概述202

7.4.2 输入设备结构体202

7.4.3 输入链路的创建过程205

7.4.4 使用Input子系统206

7.4.5 编写输入设备驱动需要完成的工作208

7.5 触摸屏驱动移植和内核编译209

7.5.1 修改初始化源码209

7.5.2 修改硬件驱动源码s3c2440_ts.c211

7.5.3 修改Kconfig和Makefile213

7.5.4 配置编译内核214

7.5.5 触摸屏测试程序设计215

7.6 小结216

第8章 USB设备驱动移植217

8.1 USB协议217

8.1.1 USB协议的系统主要组成部分217

8.1.2 总线物理拓扑结构219

8.1.3 USB设备、配置、接口、端点219

8.1.4 USB设备状态222

8.1.5 USB枚举过程223

8.1.6 USB请求块(URB)226

8.2 USB主机驱动230

8.2.1 USB主机驱动结构和功能230

8.2.2 主机控制器驱动(usb_hcd)231

8.2.3 OHCI主机控制器驱动233

8.2.4 S3C24XX OHCI主机控制器驱动实例234

8.3 USB设备驱动237

8.3.1 USB骨架程序分析237

8.3.2 USB驱动移植的时钟设置241

8.4 USB鼠标键盘驱动242

8.4.1 USB鼠标驱动代码分析242

8.4.2 USB键盘驱动代码分析245

8.4.3 内核中添加USB鼠标键盘驱动248

8.5 U盘驱动249

8.5.1 内核配置249

8.5.2 移植和测试250

8.6 小结252

第9章 网卡驱动程序移植253

9.1 以太网概述253

9.1.1 以太网连接253

9.1.2 以太网技术概述254

9.1.3 以太网的帧结构256

9.2 网络设备驱动程序体系结构258

9.2.1 嵌入式Linux网络驱动程序介绍258

9.2.2 Linux网络设备驱动的体系结构259

9.2.3 网络设备驱动程序编写方法259

9.2.4 网络设备驱动程序应用实例261

9.3 net_device数据结构262

9.3.1 全局信息262

9.3.2 硬件信息263

9.3.3 接口信息263

9.3.4 设备方法266

9.3.5 公用成员268

9.4 DM9000网卡概述268

9.4.1 DM9000网卡总体介绍269

9.4.2 DM9000网卡的特点269

9.4.3 内部寄存器270

9.4.4 功能描述274

9.5 DM9000网卡驱动程序移植275

9.5.1 DM9000网卡连接275

9.5.2 驱动分析——硬件的数据结构276

9.5.3 驱动分析——数据读写函数277

9.5.4 驱动分析——重置网卡277

9.5.5 驱动分析——初始化网卡277

9.5.6 驱动分析——打开和关闭网卡282

9.5.7 驱动分析——数据包的发送与接收283

9.5.8 DM9000网卡驱动程序移植285

9.6 小结288

第10章 音频设备驱动程序移植289

10.1 音频设备接口289

10.1.1 PCM(脉冲编码调制)接口289

10.1.2 IIS(Inter-IC Sound)接口289

10.1.3 AC97(Audio Codec 1997)接口289

10.1.4 Linux音频设备驱动框架290

10.2 Linux音频设备驱动——OSS驱动框架291

10.2.1 OSS驱动架构硬件291

10.2.2 OSS驱动架构代码291

10.2.3 OSS初始化函数oss_init()293

10.2.4 OSS释放函数oss_cleanup()294

10.2.5 打开设备文件函数sound_open()295

10.2.6 录音函数sound_read()296

10.2.7 播放函数sound_write()297

10.2.8 控制函数sound_ioctl()297

10.3 Linux音频设备驱动——ALSA驱动框架298

10.3.1 card和组件299

10.3.2 PCM设备303

10.3.3 控制接口306

10.3.4 AC97 API音频接口308

10.4 音频设备应用程序编写312

10.4.1 DSP接口编程312

10.4.2 MIXER接口编程315

10.4.3 ALSA应用程序编程316

10.5 音频设备驱动移植318

10.5.1 添加UDA1341结构体318

10.5.2 修改录音通道319

10.5.3 内核中添加UDA1341驱动支持320

10.5.4 移植新内核并进行测试321

10.6 音频播放程序madplay的移植322

10.6.1 准备移植需要的源文件322

10.6.2 交叉编译322

10.6.3 移植和测试323

10.6.4 编译中可能遇到的问题324

10.7 小结324

第11章 SD卡驱动移植325

11.1 SD卡简介325

11.1.1 SD卡系统概念325

11.1.2 SD卡寄存器325

11.1.3 SD功能描述326

11.2 SD卡驱动程序分析329

11.2.1 host驱动部分330

11.2.2 core驱动部分333

11.2.3 card驱动部分337

11.3 SD卡移植步骤339

11.3.1 添加延时和中断339

11.3.2 配置内核340

11.3.3 烧写新内核341

11.4 小结342

第12章 NandFlash驱动移植343

12.1 NandFlash介绍343

12.1.1 NandFlash命令介绍343

12.1.2 NandFlash控制器344

12.2 NandFlash驱动介绍345

12.2.1 Nand芯片结构345

12.2.2 NandFlash驱动分析346

12.3 NandFlash驱动移植351

12.3.1 内核的修改351

12.3.2 内核的配置和编译353

12.4 小结353

第4篇 系统移植高级篇356

第13章 MiniGUI与移植356

13.1 MiniGUI在上位机中的安装356

13.1.1 安装需要的安装文件356

13.1.2 MiniGUI的运行模式357

13.1.3 编译并安装MiniGUI357

13.1.4 编译安装MiniGUI需要的图片支持库360

13.1.5 编译MiniGUI应用程序例子360

13.2 Eclipse开发MiniGUI程序361

13.2.1 Linux下安装Eclipse介绍361

13.2.2 使用Eclipse编译MiniGUI程序363

13.2.3 设置外部工具367

13.2.4 运行程序368

13.3 VC++6.0开发MiniGUI程序368

13.3.1 安装Windows开发库368

13.3.2 建立新工程369

13.3.3 添加文件和设置工程370

13.3.4 编译和运行程序371

13.3.5 MiniGUI程序编程风格举例372

13.4 MiniGUI的交叉编译和移植374

13.4.1 交叉编译MiniGUI375

13.4.2 移植MiniGUI程序376

13.5 小结378

第14章 Qt开发与Qtopia移植379

14.1 Qt安装与编程379

14.1.1 下载安装Qt379

14.1.2 Qt编程380

14.1.3 使用qmake生成Makefile382

14.2 Qtopia Core在X86平台上的安装和应用383

14.2.1 Qtopia Core安装准备383

14.2.2 编译Qtopia Core384

14.2.3 Qtopia在X86平台上的应用开发385

14.3 Qtopia Core在嵌入式Linux上的移植388

14.3.1 Qtopia Core移植准备389

14.3.2 交叉编译Qtopia Core389

14.3.3 编译内核392

14.3.4 应用程序开发392

14.3.5 应用程序移植395

14.4 小结395

第15章 嵌入式数据库Berkeley DB移植396

15.1 数据库的基本概念396

15.1.1 利用文档和源代码396

15.1.2 创建环境句柄396

15.1.3 创建数据库句柄397

15.1.4 打开数据库398

15.1.5 DBT结构398

15.1.6 存取数据399

15.1.7 关闭数据库400

15.2 Berkeley DB数据库安装400

15.2.1 安装成C库400

15.2.2 安装成C++库401

15.2.3 交叉编译安装Berkeley DB401

15.3 使用Berkeley DB数据库403

15.3.1 代码分析403

15.3.2 编译运行程序406

15.4 移植Berkeley DB数据库407

15.4.1 数据库设计407

15.4.2 编写应用程序407

15.4.3 调试和交叉编译应用程序409

15.4.4 数据库的移植和测试410

15.5 小结410

第16章 嵌入式数据库SQLite移植411

16.1 SQLite支持的SQL语句411

16.1.1 数据定义语句411

16.1.2 数据操作语句412

16.2 SQLite数据库编译、安装和使用412

16.2.1 安装SQLite413

16.2.2 利用SQL语句操作SQLite数据库413

16.2.3 利用C接口访问SQLite数据库414

16.3 移植SQLite417

16.3.1 交叉编译SQLite417

16.3.2 交叉编译应用程序418

16.4 移植SQLite数据库418

16.4.1 文件移植419

16.4.2 运行应用程序419

16.4.3 测试sqlite3419

16.5 小结421

第17章 嵌入式Web服务器BOA移植422

17.1 BOA介绍422

17.1.1 BOA的功能422

17.1.2 BOA流程分析423

17.1.3 BOA配置信息426

17.2 BOA编译和HTML页面测试428

17.2.1 编译BOA源代码428

17.2.2 设置BOA配置信息429

17.2.3 测试BOA429

17.3 CGI脚本测试431

17.3.1 编写测试代码431

17.3.2 编译测试程序431

17.3.3 测试CGI脚本431

17.4 BOA交叉编译与移植431

17.4.1 交叉编译BOA432

17.4.2 准备测试程序432

17.4.3 配置BOA432

17.4.4 测试433

17.5 BOA与SQLite结合433

17.5.1 通过CGI程序访问SQLite434

17.5.2 编译和测试436

17.6 小结437

第18章 嵌入式Web服务器Thttpd移植438

18.1 Thttpd介绍438

18.1.1 Web服务器比较438

18.1.2 Thttpd的特点438

18.1.3 Thttpd核心代码分析439

18.2 Thttpd编译和HTML页面测试442

18.2.1 配置文件介绍442

18.2.2 Thttpd编译443

18.2.3 运行和测试Thttpd443

18.3 CGI脚本测试446

18.3.1 编写测试代码446

18.3.2 编译测试程序447

18.3.3 测试CGI脚本447

18.4 Thttpd交叉编译与移植447

18.4.1 交叉编译Thttpd447

18.4.2 交叉编译CGI程序448

18.4.3 移植Thttpd448

18.4.4 测试449

18.5 Thttpd与嵌入式数据库结合450

18.5.1 通过CGI程序访问SQLite450

18.5.2 编译和测试452

18.6 小结453

第19章 JVM及其移植454

19.1 JVM介绍454

19.1.1 JVM原理454

19.1.2 JVM支持的数据类型455

19.1.3 JVM指令系统456

19.1.4 JVM寄存器456

19.1.5 JVM栈结构456

19.1.6 JVM碎片回收堆459

19.1.7 JVM异常抛出和异常捕获459

19.2 类装载460

19.2.1 装载类的结构体460

19.2.2 装载类的操作461

19.3 垃圾回收463

19.3.1 mark-and-sweep回收算法464

19.3.2 分代回收算法465

19.3.3 增量收集466

19.4 解析器466

19.4.1 函数Interpret()466

19.4.2 函数FastInterpret()467

19.4.3 函数SlowInterpret()469

19.5 Java编程浅析470

19.5.1 Java程序命令470

19.5.2 Java构造函数470

19.5.3 Java主函数470

19.5.4 Java程序编译与运行471

19.6 KVM执行过程471

19.6.1 KVM启动过程471

19.6.2 KVM用到的计数器清零474

19.6.3 KVM初始化内存管理475

19.6.4 KVM中的哈希表初始化476

19.6.5 KVM中的事件初始化477

19.6.6 KVM中的资源释放477

19.7 PC机安装JVM477

19.7.1 JVM在Windows上的安装478

19.7.2 JVM在Linux上的安装479

19.8 KVM移植和测试480

19.8.1 SDK安装和环境变量设置480

19.8.2 修改Makefile和代码480

19.8.3 KVM编译481

19.8.4 测试481

19.8.5 移植483

19.9 小结485

第20章 VoIP技术与Linphone编译486

20.1 VoIP介绍486

20.1.1 VoIP基本原理486

20.1.2 VoIP的基本传输过程487

20.1.3 VoIP的优势487

20.1.4 VoIP的实现方式487

20.1.5 VoIP的关键技术488

20.2 oSIP协议概述488

20.3 oSIP状态机489

20.3.1 ICT(Invite Client(outgoing)Transaction)状态机489

20.3.2 NICT(Non-Invite Client(outgoing)Transaction)状态机498

20.3.3 IST(Invite Server(incoming)Transaction)状态机499

20.3.4 NIST(Non-Invite Server(incoming)Transaction)状态机500

20.4 oSIP解析器500

20.4.1 初始化解析类型函数osip_body_init()500

20.4.2 释放函数osip_body_free()501

20.4.3 字符串到body类型转换函数osip_body_parse()501

20.4.4 body类型到字符串类型转换函数osip_body_to_str()502

20.4.5 克隆函数osip_body_clone()504

20.4.6 oSIP解析器分类505

20.5 oSIP事务层506

20.6 SIP建立会话的过程508

20.7 RTP协议510

20.7.1 RTP基本概念510

20.7.2 发送RTP511

20.7.3 接收RTP513

20.8 Linphone编译与测试515

20.8.1 编译Linphone需要的软件包516

20.8.2 X86平台上编译和安装516

20.8.3 Linphone测试519

20.8.4 进一步的测试和开发523

20.9 Linphone交叉编译523

20.9.1 Linphone的交叉编译523

20.9.2 Linphone的测试526

20.10 小结527

热门推荐