图书介绍

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

Linux系统移植 第2版
  • 刘刚,赵剑川等编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302344261
  • 出版时间:2014
  • 标注页数:486页
  • 文件大小:123MB
  • 文件页数:505页
  • 主题词:Linux操作系统

PDF下载


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

下载说明

Linux系统移植 第2版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 文件系统的安装和卸载16

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 虚拟机和主机通信设置31

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

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

2.2 交叉编译工具38

2.2.1 交叉编译工具安装38

2.2.2 交叉编译器测试42

2.3 超级终端和Minicom44

2.3.1 超级终端软件的安装44

2.3.2 配置Minicom44

2.3.3 配置SecureCRT47

2.4 内核、文件系统加载工具47

2.4.1 烧写Bootloadet47

2.4.2 内核和文件系统下载50

2.4.3 应用程序和文件传输50

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

2.5.1 虚拟机设置54

2.5.2 虚拟机的IP地址设置55

2.5.3 验证网络连接58

2.5.4 设置共享目录59

2.5.5 启动NFS服务59

2.5.6 修改共享配置后60

2.5.7 挂载NFS60

2.5.8 双网卡挂载NFS60

2.6 小结61

第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的主要功能67

3.2.3 U-Boot目录结构68

3.2.4 U-Boot的编译69

3.3 小结69

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

4.1 Linux内核结构70

4.1.1 内核的主要组成部分70

4.1.2 内核源码目录介绍71

4.2 内核配置选项73

4.2.1 一般选项73

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

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

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

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

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

4.2.7 安全相关选项78

4.2.8 其他选项78

4.3 内核裁剪及编译79

4.3.1 安装内核源代码79

4.3.2 检查编译环境设置79

4.3.3 配置内核80

4.3.4 编译内核89

4.4 内核升级90

4.4.1 准备升级内核文件90

4.4.2 移植过程90

4.5 小结93

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

5.1 文件系统选择94

5.1.1 Flash硬件方案比较94

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

5.2 基于Flash的文件系统95

5.2.1 JFFS文件系统(Journalling Flash File System)96

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

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

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

5.3 基于RAM的文件系统103

5.4 文件系统的制作103

5.4.1 制作Ramdisk文件系统104

5.4.2 制作YAFFS2文件系统112

5.4.3 制作JFFS2文件系统117

5.4.4 其他文件系统制作119

5.5 小结120

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

第6章 LCD驱动移植122

6.1 认识LCD相关硬件原理122

6.1.1 LCD概述122

6.1.2 LCD控制器123

6.1.3 LCD控制器方块图123

6.1.4 LCD控制器操作124

6.1.5 LCD控制寄存器129

6.2 LCD参数设置132

6.3 内核LCD驱动机制133

6.3.1 FrameBuffer概述133

6.3.2 FrameBuffer设备驱动的结构133

6.4 Linux 2.6.32的LCD驱动源码分析137

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

6.4.2 s3c2410fb_init()函数分析138

6.4.3 s3c2410fb_probe()函数分析139

6.4.4 s3c2410fb_remove()函数分析144

6.5 移植内核中的LCD驱动145

6.5.1 LCD硬件电路图145

6.5.2 修改LCD源码145

6.5.3 配置内核150

6.6 小结153

第7章 触摸屏驱动移植154

7.1 触摸屏概述154

7.1.1 触摸屏工作原理154

7.1.2 触摸屏的主要类型154

7.2 S3C2440 ADC接口使用157

7.2.1 S3C2440触摸屏接口概述157

7.2.2 S3C2440触摸屏接口操作158

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

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

7.4.1 Input子系统概述168

7.4.2 输入设备结构体168

7.4.3 输入链路的创建过程171

7.4.4 使用Input子系统172

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

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

7.5.1 修改初始化源码175

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

7.5.3 修改Kconfig和Makefile179

7.5.4 配置编译内核180

7.5.5 触摸屏测试程序设计181

7.6 小结182

第8章 USB设备驱动移植183

8.1 USB协议183

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

8.1.2 总线物理拓扑结构185

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

8.1.4 USB设备状态188

8.1.5 USB枚举过程189

8.1.6 USB请求块(URB)192

8.2 USB主机驱动196

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

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

8.2.3 OHCI主机控制器驱动199

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

8.3 USB设备驱动203

8.3.1 USB骨架程序分析203

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

8.4 USB鼠标键盘驱动208

8.4.1 USB鼠标驱动代码分析208

8.4.2 USB键盘驱动代码分析211

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

8.5 U盘驱动215

8.5.1 内核配置215

8.5.2 移植和测试216

8.6 小结218

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

9.1 以太网概述219

9.1.1 以太网连接219

9.1.2 以太网技术概述220

9.1.3 以太网的帧结构222

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

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

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

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

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

9.3 net_device数据结构228

9.3.1 全局信息228

9.3.2 硬件信息229

9.3.3 接口信息229

9.3.4 设备方法232

9.3.5 公用成员234

9.4 DM9000网卡概述234

9.4.1 DM9000网卡总体介绍235

9.4.2 DM9000网卡的特点235

9.4.3 内部寄存器236

9.4.4 功能描述240

9.5 DM9000网卡驱动程序移植241

9.5.1 DM9000网卡连接241

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

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

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

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

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

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

9.5.8 DM9000网卡驱动程序移植251

9.6 小结254

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

10.1 音频设备接口255

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

10.1.2 IIS(Inter-IC Sound)接口255

10.1.3 AC97(Audio Codec 1997)接口255

10.1.4 Linux音频设备驱动框架256

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

10.2.1 OSS驱动架构硬件257

10.2.2 OSS驱动架构代码257

10.2.3 OSS初始化函数oss_init()259

10.2.4 OSS释放函数oss_cleanup()260

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

10.2.6 录音函数sound_read()262

10.2.7 播放函数sound_write()263

10.2.8 控制函数sound_ioctl()263

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

10.3.1 card和组件265

10.3.2 PCM设备269

10.3.3 控制接口272

10.3.4 AC97 API音频接口274

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

10.4.1 DSP接口编程278

10.4.2 MIXER接口编程281

10.4.3 ALSA应用程序编程282

10.5 音频设备驱动移植284

10.5.1 添加UDA1341结构体284

10.5.2 修改录音通道285

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

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

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

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

10.6.2 交叉编译288

10.6.3 移植和测试290

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

10.7 小结290

第11章 SD卡驱动移植291

11.1 SD卡简介291

11.1.1 SD卡系统概念291

11.1.2 SD卡寄存器291

11.1.3 SD功能描述292

11.2 SD卡驱动程序分析295

11.2.1 host驱动部分296

11.2.2 core驱动部分302

11.2.3 card驱动部分307

11.3 SD卡移植步骤310

11.3.1 添加延时和中断310

11.3.2 配置内核310

11.3.3 烧写新内核312

11.4 小结313

第12章 NandFlash驱动移植314

12.1 NandFlash介绍314

12.1.1 NandFlash命令介绍314

12.1.2 NandFlash控制器315

12.2 NandFlash驱动介绍316

12.2.1 Nand芯片结构316

12.2.2 NandFlash驱动分析317

12.3 NandFlash驱动移植323

12.3.1 内核的修改323

12.3.2 内核的配置和编译325

12.4 小结326

第4篇 系统移植高级篇328

第13章 MiniGUI与移植328

13.1 MiniGUI在上位机中的安装328

13.1.1 安装需要的安装文件328

13.1.2 MiniGUI的运行模式328

13.1.3 编译并安装MiniGUI329

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

13.1.5 编译MiniGUI应用程序例子331

13.2 MiniGUI的交叉编译和移植332

13.2.1 交叉编译MiniGUI332

13.2.2 移植MiniGUI程序334

13.3 小结336

第14章 Qt开发与Qtopia移植337

14.1 Qt安装与编程337

14.1.1 下载安装Qt337

14.1.2 Qt编程338

14.1.3 使用qmake生成Makefile340

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

14.2.1 Qtopia Core安装准备341

14.2.2 编译Qtopia Core343

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

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

14.3.1 Qtopia Core移植准备347

14.3.2 交叉编译Qtopia Core348

14.3.3 编译内核350

14.3.4 应用程序开发351

14.3.5 应用程序移植354

14.4 小结354

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

15.1 数据库的基本概念355

15.1.1 利用文档和源代码355

15.1.2 创建环境句柄355

15.1.3 创建数据库句柄356

15.1.4 打开数据库357

15.1.5 DBT结构357

15.1.6 存取数据358

15.1.7 关闭数据库359

15.2 Berkeley DB数据库安装359

15.2.1 安装成C库359

15.2.2 安装成C++库360

15.2.3 交叉编译安装Berkeley DB360

15.3 使用Berkeley DB数据库362

15.3.1 代码分析362

15.3.2 编译运行程序365

15.4 移植Berkeley DB数据库366

15.4.1 数据库设计366

15.4.2 编写应用程序366

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

15.4.4 数据库的移植和测试369

15.5 小结369

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

16.1 SQLite支持的SQL语句370

16.1.1 数据定义语句370

16.1.2 数据操作语句371

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

16.2.1 安装SQLite372

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

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

16.3 移植SQLite376

16.3.1 交叉编译SQLite376

16.3.2 交叉编译应用程序377

16.4 移植SQLite数据库377

16.4.1 文件移植378

16.4.2 运行应用程序378

16.4.3 测试sqlite3379

16.5 小结380

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

17.1 BOA介绍381

17.1.1 BOA的功能381

17.1.2 BOA流程分析382

17.1.3 BOA配置信息385

17.2 BOA编译和HTML页面测试387

17.2.1 编译BOA源代码387

17.2.2 设置BOA配置信息388

17.2.3 测试BOA388

17.3 CGI脚本测试390

17.3.1 编写测试代码390

17.3.2 编译测试程序390

17.3.3 测试CGI脚本390

17.4 BOA交叉编译与移植391

17.4.1 交叉编译BOA391

17.4.2 准备测试程序391

17.4.3 配置BOA392

17.4.4 测试392

17.5 BOA与SQLite结合393

17.5.1 通过CGI程序访问SQLite393

17.5.2 编译和测试395

17.6 小结396

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

18.1 Thttpd介绍397

18.1.1 Web服务器比较397

18.1.2 Thttpd的特点397

18.1.3 Thttpd核心代码分析398

18.2 Thttpd编译和HTML页面测试401

18.2.1 配置文件介绍401

18.2.2 Thttpd编译402

18.2.3 运行和测试Thttpd402

18.3 CGI脚本测试405

18.3.1 编写测试代码405

18.3.2 编译测试程序406

18.3.3 测试CGI脚本406

18.4 Thttpd交叉编译与移植406

18.4.1 交叉编译Thttpd406

18.4.2 交叉编译CGI程序407

18.4.3 移植Thttpd407

18.4.4 测试408

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

18.5.1 通过CGI程序访问SQLite409

18.5.2 编译和测试411

18.6 小结411

第19章 JVM及其移植412

19.1 JVM介绍412

19.1.1 JVM原理412

19.1.2 JVM支持的数据类型413

19.1.3 JVM指令系统414

19.1.4 JVM寄存器414

19.1.5 JVM栈结构414

19.1.6 JVM碎片回收堆417

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

19.2 类装载418

19.2.1 装载类的结构体418

19.2.2 装载类的操作419

19.3 垃圾回收421

19.3.1 mark-and-sweep回收算法422

19.3.2 分代回收算法423

19.3.3 增量收集424

19.4 解析器424

19.4.1 函数Interpret()424

19.4.2 函数FastInterpret()425

19.4.3 函数SlowInterpret()427

19.5 Java编程浅析428

19.5.1 Java程序命令428

19.5.2 Java构造函数428

19.5.3 Java主函数428

19.5.4 Java程序编译与运行429

19.6 KVM执行过程429

19.6.1 KVM启动过程429

19.6.2 KVM用到的计数器清零432

19.6.3 KVM初始化内存管理433

19.6.4 KVM中的哈希表初始化434

19.6.5 KVM中的事件初始化435

19.6.6 KVM中的资源释放435

19.7 PC机安装JVM435

19.7.1 JVM在Windows上的安装436

19.7.2 JVM在Linux上的安装437

19.8 KVM移植和测试438

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

19.8.2 修改Makefile和代码438

19.8.3 KVM编译439

19.8.4 测试439

19.8.5 移植441

19.9 小结443

第20章 VoIP技术与Linphone编译444

20.1 VoIP介绍444

20.1.1 VoIP基本原理444

20.1.2 VoIP的基本传输过程445

20.1.3 VoIP的优势445

20.1.4 VoIP的实现方式445

20.1.5 VoIP的关键技术446

20.2 oSIP协议概述446

20.3 oSIP状态机447

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

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

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

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

20.4 oSIP解析器459

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

20.4.2 释放函数osip_body_free()459

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

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

20.4.5 克隆函数osip_body_clone()462

20.4.6 oSIP解析器分类464

20.5 oSIP事务层464

20.6 SIP建立会话的过程467

20.7 RTP协议468

20.7.1 RTP基本概念468

20.7.2 发送RTP470

20.7.3 接收RTP472

20.8 Linphone编译与测试474

20.8.1 编译Linphone需要的软件包474

20.8.2 X86平台上编译和安装475

20.8.3 Linphone测试478

20.8.4 进一步的测试和开发481

20.9 Linphone交叉编译482

20.9.1 Linphone的交叉编译482

20.9.2 Linphone的测试484

20.10 小结486

热门推荐