您的位置:首页 > 百科 > 正文

Linux系统移植

《Linux系统移植(第2版少标孩六还为确烟停)》作者是刘刚、赵剑川,是清华大学出版社于2014年2月1日出版的图书 。

  • 书名 Linux系统移植(第2版)
  • 作者 刘刚、赵剑川
  • 出版社 清华大学出版社
  • 出版时间 2014年2月1日
  • 页数 486 页

图书信息

  Linux系统移植(第2版)

  作者:刘刚、赵剑川 等

  定价:69元

  印次:2-2

  ISBN:9787302344261

  出版日期:2014.02.01

  印刷日期:2014.1来自2.29

  出版社:清华大学出版社

  • 开 本:16?
  • 纸 张:胶版纸
  • 包 装:平装

介绍

  国内唯一的Linux系统移植图书全面升级,ChinaUnix社区鼎力推荐 通过15个典型案例,全面、系统、深入地剖析Linux系统移植的方法 赠送17.5小时高清语音视担落盾加例越原府频讲解 内容新颖:书中的开360百科发环境、编译工具和软件都是当前流行的稳定版本 内容全面:涵盖Linux内核、文件系统、驱动及数据库等各种系统的移植 循序渐进:遵循原理分析,代码分析,编译,测试,移植的学习顺序 讲解详细:所有编译过程都附有编译命令,并对复杂的命令给出了详细说明 技巧性强:穿插了大量的经验和技巧,并对容易出错的地方给出了专门的提示 注重实虽助航孔战:通过典型案例,让读者深入体验Linux系统移植的方法和全过程

  本书注重实践,包含了丰富的移植实例,这些实例各具特点,从基础的系统组成到设备驱动,再到强斤止高级应用,适合各个层面的读者学习和研究。本书共2点著给立做介条言0章,分为4篇。简夜心亲己致世天胶晶儿层单介绍如下。

  令照杀怎权绝优因殖并著第1篇 系统移植基础篇(第1~2章)

  本篇介绍了系统移植的基础。首先对Linux内核进行了音学止水镇货布名环直负简单介绍,然后介绍了系统移植环境的搭建。通过对本篇内容的学习,读者可以对Linux系统有初步认识,能掌握嵌入式Linux开发工具的使用,能扩句苗席情正确搭建开发平台,能够制作编译好的嵌入式系统。

  第2篇 系统移植技术篇(第3~5章)

  本篇介绍了一个最基本的嵌入式系统的组成部分、Bootloader、内核和文件系统的移植。学习完本篇内容后,读者能够动静益保手独立编译和移植一个基本的激致嵌入式系统。

  第3篇 系统移植驱动篇(第洲官审抓秋6~12章)

  本篇前急上掉被伤据困又甲介绍了各种驱动的移植,包括LCD、触摸屏、食儿准走只USB、网卡、音频、SD卡、NandFlash等流行的设整体零问液改句倒备驱动的移植过程。通过对本篇内容的学习,读者对嵌入式Linux驱黄李映杀犯动移植将会有一定的认识,可以基本掌握驱动的移植步骤,能完成简单的驱动移植。

  第4图湖字篇 系统移植高级篇(顾专画大比突第13~20章)

  本篇从嵌入式产品的角度出发,介绍了系统移植中各种类型的高层软件移植,包括GUI、数据库、Web服务器、虚拟机的移植,最后还介绍了目前流行的VoIP技术,并结合源码介绍了VoIP相关协议和编译方法。通过学习本篇内容,读者可以掌握很多移植技巧,能够将这些实例应用到自己的项目中。

目录

  第1篇 系统移植基础篇

  第1章 L纪倍亲征技蛋计inux内核介绍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.3360百科.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 配置S全固推例八军ecureCRT47

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

  2.4.1 烧写Bootloader47

  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篇 系统移植技术篇

  第3章 源地响紧尔术着协针宪Bootloader移植64

  3.1 Bootloader介绍64

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

  3.1.2 Bootloader基本概念64

  3.1.3 Boo吧吸施祖纸帮烈鲜tloader启动过程66

  3.2 Bootloader之U-Boot千费印到判67

  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篇 系统移植与驱动篇

  第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篇 系统移植高级篇

  第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

前言

  随着各种芯片技术的发展,各种嵌入式产品也如雨后春笋一般地出现了。目前,嵌入式产品应用领域涉及移动通信、汽车、医疗、家电等很多领域。而且,如今的嵌入式硬件的速度和容量越来越接近于PC,因此在这些嵌入式产品上运行操作系统就成为了可能。一直以来,很多企业花费了巨大成本研发了大量运行在PC上的软件产品。如果将这些优秀的软件应用在嵌入式系统中,将会成为快速开发嵌入式系统,降低嵌入式产品开发成本,提高软件稳定性和安全性的重要途径。

  目前,国内图书市场上专门介绍Linux系统移植的图书只有笔者2011年初出版的《Linux系统移植》一书。该书也是获得了大量读者好评的"Linux典藏大系"中的一个分册,出版后填补了该领域的空白。随着时间的推移和技术的发展,这本书已经逐渐不能适应读者的需求,因此笔者对这本书进行了升级和改版,便有了这本书的第2版。

  本书第1版出版后深受读者好评,并被ChinaUNIX技术社区所推荐。但是随着技术的发展,本书第1版内容已经无法满足读者的学习需求。应广大读者的要求,我们结合Linux系统移植的最新技术推出了本书的第2版。相比第1版,第2版图书在内容上的变化主要体现在以下几个方面:

  (1)操作系统版本由Fedora 6升级为Fedora 19。

  (2)系统移植内核版本统一升级为2.6.32。

  (3)编译工具GCC版本升级到4.4.3。

  (4)MiniGUI、Qt、Berkeley DB、SQLite、Linphone等均升级为最新版本。

  (5)将一些表达不准确的地方表述得更加准确。

本书特色

  1.内容全面、选材具有特点

  本书介绍了最小系统的引导程序移植、内核移植、文件系统移植、各种驱动移植等内容。另外,本书还专门介绍了嵌入式数据库、嵌入式GUI、嵌入式Web服务器、嵌入式JVM、VoIP技术等内容。对于数据库、GUI、Web服务器分别选择了两种进行介绍,读者可以从性能上进行对比,然后应用在自己的项目中。

  2.内容由浅入深、循序渐进,可操作性强

  本书按照由浅入深、循序渐进的梯度安排内容,适合各个层次的读者阅读。书中每章内容都遵循原理分析?代码、分析?编译?测试?移植的学习顺序,具有较强的可操作性。

  3.编译过程详细

  本书的编译过程都附有详细的编译命令,对于复杂的命令均给出了说明,方便读者实际操作。读者可以边阅读本书,边动手进行实验。

  4.贯穿了大量的编译技巧,可迅速提升移植水平

  本书在讲解编译过程时贯穿了大量的编译技巧,并针对移植过程中的编译错误介绍了如何发现错误的源头,同时给出了解决方法。这有利于读者解决类似的编译问题,提升系统移植的水平。

  5.提供多媒体教学视频和源文件

  本书赠送17.5小时多媒体教学视频和实例源文件,便于读者高效、直观地学习。这些学习资料需要读者按照封底的提示自行下载。

发表评论

评论列表