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

- 刘刚,赵剑川等编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302344261
- 出版时间:2014
- 标注页数:486页
- 文件大小:123MB
- 文件页数:505页
- 主题词:Linux操作系统
PDF下载
下载说明
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
热门推荐
- 544836.html
- 2114602.html
- 3885074.html
- 426428.html
- 3151574.html
- 2780355.html
- 3701715.html
- 1689303.html
- 1229083.html
- 1552056.html
- http://www.ickdjs.cc/book_1308335.html
- http://www.ickdjs.cc/book_1057116.html
- http://www.ickdjs.cc/book_1321084.html
- http://www.ickdjs.cc/book_1354071.html
- http://www.ickdjs.cc/book_1602759.html
- http://www.ickdjs.cc/book_3047345.html
- http://www.ickdjs.cc/book_1406782.html
- http://www.ickdjs.cc/book_1485916.html
- http://www.ickdjs.cc/book_327074.html
- http://www.ickdjs.cc/book_742090.html