linux模块编程?linux卸载内核模块命令

大家好,如果您还对linux模块编程不太了解,没有关系,今天就由本站为大家分享linux模块编程的知识,包括linux卸载内核模块命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

linux编程应该掌握哪些编程开发工具

随着对linux系统的不断普及和应用,我们在linux编程方面也取得了很大的进展,今天我们就一起来了解一下,在linux编程开发领域都有哪些开发工具值得我们学习和掌握。

但大多数人使用Nginx都停留在这几个级别:

一:使用Nginx配置简单的反向代理服务或者静态资源服务,当扩展功能时发现新增的指令Nginx不支持,但又不懂如何增加Nginx模块,如何分析access日志。

二:可以根据源码定制安装Nginx,对网上流传的大众配置做一些个性化的修改,但遇到修改proxy_pass后的URL上游服务不正常等问题时就束手无策,不清楚Nginx各个目录的意义,也不清楚Nginx的进程结构。

三:能够顺畅地使用Nginx的常用功能,但不清楚三方模块发生冲突时的解决方案、stale过期缓存的用法、Nginx诸多变量是如何被赋值的、听说if指令是邪恶的却不知道它的设计理念及正确用法等等。

四:可以正确地使用Nginx的功能及三方模块,并按照网络上常见的优化参数优化性能,但对如何系统化地优化性能没有头绪,对于Nginx、Linux提供的内存缓冲区、网络类等诸多指令和参数的优化没有头绪。

五:可以熟练使用Nginx,但对OpenResty的Lua模块如何与Nginx结合使用以及对Nginx性能影响不太清楚,对Nginx源码的理解没有达到由点到面的程度。

六、提高Nginx能力需要从以下方面开始

1、深入理解Nginx架构

了解事件驱动机制是深入优化Nginx性能、判定三方模块性能的基础。而了解Nginx的进程结构,则是我们对Nginx做日常维护的必要条件,也是我们优化Nginx性能的理论基础。另外,变量是Nginx实现模块间解耦合的关键。这些知识都需要我们牢固掌握,为后面的进阶学习打下坚实基础。

2、对HTTP模块要了如指掌

HTTP请求处理过程中分为11个阶段。理解每个HTTP模块所处的阶段,并清楚该模块在这一阶段中的位置顺序,有助于我们定位指令不生效或者与预期功能不符等问题,提高定位各种Bug的效率,也可以帮我们熟悉缺乏文档的三方模块。

3、反向代理与负载均衡

反向代理有一套通用的处理流程,北京IT培训认为需要掌握反向代理处理请求的完整流程,能让我们熟练使用HTTP协议反向代理,以及熟悉如memcached、gRPC等同类的反向代理,在优化性能时,也能对相关缓存、超时等指令更有针对性的做个性化配置。

Linux内核编程的目录

目录

第1章概述1

1.1UNIX的历史2

1.2标准和通用接口3

1.3自由软件和开放源码3

1.4Linux发布版概览3

1.41Debian4

1.42Red Hat/Fedora 4

1.43Mandriva4

1.44SUSE4

1.45Gentoo4

1.46Yellow Dog5

1.47其他发布版5

1.5内核版本信息5

1.6基于Power的Linux5

1.7什么是操作系统6

1.8内核组织7

1.9Linux内核概述7

1.9.1用户接口7

1.9.2用户标识符8

1.9.3文件和文件系统8

1.9.4进程12

1.9.5系统调用15

1.9.6Linux调度程序15

1.9.7Linux设备驱动程序15

1.10可移植性和体系结构的相关性16

1.11小结16

1.12习题16

第2章内核探索工具集18

2.1内核中常见的数据类型18

2.1.1链表18

2.1.2查找21

2.1.3树22

2.2汇编24

2.2.1PowerPC24

2.2.2x8627

2.3汇编语言示例29

2.3.1x86中的汇编示例30

2.3.2PowerPC中的汇编示例31

2.4内联汇编33

2.4.1输出操作数34

2.4.2输入操作数34

2.4.3已修改过的寄存器(已修改的元素列表) 34

2.4.4参数的编号方式34

2.4.5约束条件34

2.4.6asm35

2.4.7__volatile__35

2.5特殊的C语言用法38

2.5.1asmlinkage38

2.5.2UL39

2.5.3内联39

2.5.4const和volatile39

2.6内核探索工具一览40

2.6.1objdump/readelf40

2.6.2hexdump41

2.6.3nm41

2.6.4objcopy42

2.6.5ar42

2.7内核发言:倾听来自内核的消息42

2.7.1printk()42

2.7.2dmesg42

2.7.3/var/log/messages42

2.8其他奥秘43

2.8.1__init43

2.8.2likely()和unlikely()43

2.8.3IS_ERR和PTR_ERR44

2.8.4通告程序链44

2.9小结45

2.9.1项目:Hellomod45

2.9.2第一步:构造Linux模块的框架45

2.9.3第二步:编译模块46

2.9.4第三步:运行代码47

2.10习题48

第3章进程:程序执行的基本模型49

3.1程序51

3.2进程描述符52

3.2.1与进程属性相关的字段54

3.2.2与调度相关的字段55

3.2.3涉及进程间相互关系的字段58

3.2.4与进程信任状相关的字段59

3.2.5与进程权能相关的字段60

3.2.6与进程限制相关的字段61

3.2.7与文件系统及地址空间相关的字段63

3.3进程的创建:系统调用fork()、vfork和clone()64

3.3.1fork()函数65

3.3.2vfork()函数66

3.3.3clone()函数67

3.3.4do_fork()函数68

3.4进程的生命周期70

3.4.1进程的状态70

3.4.2进程状态的转换71

3.5进程的终止74

3.5.1sys_exit()函数75

3.5.2do_exit()函数75

3.5.3通知父进程和sys_wait4()77

3.6了解进程的动态:调度程序的基本构架80

3.6.1基本结构80

3.6.2从等待中醒来或者激活81

3.7等待队列86

3.7.1添加到等待队列88

3.7.2等待事件89

3.7.3唤醒进程91

3.8异步执行流程93

3.8.1异常93

3.8.2中断95

3.9小结114

3.9.1项目:系统变量current114

3.9.2项目源码115

3.9.3运行代码116

3.10习题116

第4章内存管理117

4.1页119

4.2内存管理区121

4.2.1内存管理区描述符122

4.2.2内存管理区操作辅助函数124

4.3页面124

4.3.1请求页面的函数124

4.3.2释放页面的函数126

4.3.3伙伴系统126

4.4Slab分配器130

4.4.1缓存描述符133

4.4.2通用缓存描述符135

4.4.3Slab描述符136

4.5Slab分配器的生命周期138

4.5.1与Slab分配器有关的全局变量138

4.5.2创建缓存139

4.5.3创建slab与cache_grow()144

4.5.4Slab的销毁:退还内存与kmem_cache_destroy()146

4.6内存请求路径147

4.6.1kmalloc()147

4.6.2kmem_cache_alloc()148

4.7Linux进程的内存结构149

4.7.1mm_struct150

4.7.2vm_area_struct152

4.8进程映像的分布及线性地址空间153

4.9页表155

4.10缺页156

4.10.1x86缺页异常156

4.10.2缺页处理程序157

4.10.3PowerPC缺页异常164

4.11小结164

4.12项目:进程内存映射165

4.13习题166

第5章输入/输出167

5.1总线、桥、端口和接口的硬件实现167

5.2设备171

5.2.1块设备概述172

5.2.2请求队列和I/O调度173

5.2.3示例:“通用”块设备驱动程序180

5.2.4设备操作182

5.2.5字符设备183

5.2.6网络设备184

5.2.7时钟设备184

5.2.8终端设备184

5.2.9直接存储器存取184

5.3小结185

5.4项目:创建并口驱动程序185

5.4.1并口的硬件185

5.4.2运行在并口上的软件187

5.5习题192

第6章文件系统194

6.1文件系统的基本概念194

6.1.1文件和文件名194

6.1.2文件类型195

6.1.3文件的附加属性195

6.1.4目录和路径名196

6.1.5文件操作197

6.1.6文件描述符197

6.1.7磁盘块、磁盘分区以及实现197

6.1.8性能198

6.2Linux虚拟文件系统198

6.2.1VFS的数据结构200

6.2.2全局链表和局部链表的引用211

6.3与VFS相关的结构212

6.3.1fs_struct结构212

6.3.2files_struct结构213

6.4页缓存216

6.4.1address_space结构217

6.4.2buffer_head结构219

6.5VFS的系统调用和文件系统层221

6.5.1open()221

6.5.2close()227

6.5.3read()229

6.5.4write()244

6.6小结246

6.7习题246

第7章进程调度和内核同步247

7.1Linux的调度程序248

7.1.1选择下一个进程248

7.1.2上下文切换253

7.1.3让出CPU261

7.2内核抢占269

7.2.1显式内核抢占269

7.2.2隐式用户抢占270

7.2.3隐式内核抢占270

7.3自旋锁和信号量272

7.4系统时钟:关于时间和定时器274

7.4.1实时时钟:现在几点了274

7.4.2读取PPC的实时时钟276

7.4.3读取x86的实时时钟278

7.5小结280

7.6习题280

第8章内核引导281

8.1BIOS和Open Firmware282

8.2引导加载程序282

8.2.1GRUB283

8.2.2LILO286

8.2.3PowerPC和Yaboot286

8.3与体系结构相关的内存初始化287

8.3.1PowerPC的硬件内存管理287

8.3.2基于Intel x86体系结构的硬件内存管理296

8.3.3PowerPC和x86的代码汇集305

8.4原始的RAM盘305

8.5开始:start_kernel()306

8.5.1调用lock_kernel()307

8.5.2调用page_address_init()309

8.5.3调用printk(linux_banner)311

8.5.4调用setup_arch311

8.5.5调用setup_per_cpu_areas()315

8.5.6调用smp_prepare_boot_cpu()316

8.5.7调用sched_init()317

8.5.8调用build_all_zonelists()319

8.5.9调用page_alloc_init319

8.5.10调用parse_args()320

8.5.11调用trap_init()322

8.5.12调用rcu_init()323

8.5.13调用init_IRQ()323

8.5.14调用softirq_init()324

8.5.15调用time_init()325

8.5.16调用console_init()326

8.5.17调用profile_init()326

8.5.18调用local_irq_enable()327

8.5.19配置initrd327

8.5.20调用mem_init()327

8.5.21调用late_time_init()333

8.5.22调用calibrate_delay()333

8.5.23调用pgtable_cache_init()334

8.5.24调用buffer_init()335

8.5.25调用security_scaffolding_startup()336

8.5.26调用vfs_caches_init()336

8.5.27调用radix_tree_init()343

8.5.28调用signal_init()344

8.5.29调用page_writeback_init()344

8.5.30调用proc_root_init()346

8.5.31调用init_idle()347

8.5.32调用rest_init()348

8.6init线程(或进程1)349

8.7小结353

8.8习题353

第9章构建Linux内核354

9.1工具链354

9.1.1编译程序355

9.1.2交叉编译355

9.1.3链接程序356

9.1.4ELF二进制目标文件356

9.2内核源代码的构建360

9.2.1解释源代码360

9.2.2构建内核映像364

9.3小结369

9.4习题369

第10章向内核添加代码371

10.1浏览源代码371

10.11熟悉文件系统371

10.12filp和fops372

10.13用户空间和内核空间374

10.14等待队列375

10.15工作队列及中断378

10.16系统调用380

10.17其他类型的驱动程序380

10.18设备模型和sysfs文件系统383

10.2编写代码386

10.2.1设备基础386

10.2.2符号输出388

10.2.3IOCTL388

10.2.4轮询与中断391

10.2.5工作队列和tasklet395

10.2.6增加系统调用的代码396

10.3构建和调试398

10.4小结399

10.5习题400

Linux C编程从初学到精通的目 录

第1部分基础篇

第1章 Linux系统概述 1

1.1什么是Linux 2

1.2 Linux系统特点及主要功能 2

1.2.1 Linux系统特点 3

1.2.2 Linux系统的主要功能 3

1.3 Linux的内核版本和发行版本 5

1.4系统的安装 6

1.4.1系统安装前的准备工作 6

1.4.2从光盘安装Linux 6

1.4.3从硬盘安装Linux 22

1.4.4在虚拟机下安装Linux 22

1.5 Shell的使用 27

1.5.1 Shell简介 27

1.5.2常见Shell的种类 28

1.5.3 Shell的简单使用 29

1.5.4通配符 30

1.5.5引号 31

1.5.6注释符 33

1.6 Linux常用命令 33

1.6.1与目录相关的命令 33

1.6.2与文件相关的命令 34

1.6.3与网络服务相关的命令 35

1.7本章小结 35

实战演练 36

第2章 C语言编程基础 37

2.1 C语言的历史背景 38

2.2 C语言的特点 38

2.3 C语言的基本数据类型 39

2.3.1整型 39

2.3.2实型 40

2.3.3字符型 41

2.4运算符与表达式 43

2.4.1算术运算符与算术表达式 43

2.4.2赋值运算符与赋值表达式 44

2.4.3逗号运算符与逗号表达式 45

2.5 C程序的3种基本结构 46

2.5.1顺序结构 46

2.5.2选择结构 47

2.5.3循环结构 51

2.6 C语言中的数据输入与输出 54

2.6.1字符输出函数putchar 54

2.6.2字符输入函数getchar 54

2.6.3格式输出函数printf 54

2.6.4格式输入函数scanf 56

2.7函数 57

2.7.1函数的定义 57

2.7.2函数的调用 58

2.7.3变量的存储类别 59

2.8数组 62

2.8.1一维数组的定义和使用 63

2.8.2二维数组的定义和使用 64

2.8.3字符数组和字符串 65

2.8.4常用字符串处理函数 66

2.9指针 69

2.9.1地址和指针 69

2.9.2指针的定义和使用 70

2.9.3数组与指针 71

2.9.4字符串与指针 72

2.9.5指向函数的指针 72

2.10结构体和共用体 73

2.10.1定义和引用结构体 73

2.10.2结构体数组 74

2.10.3指向结构体的指针 74

2.10.4共用体 75

2.10.5使用typedef定义类型 77

2.11链表 77

2.11.1链表概述 77

2.11.2建立动态单向链表 78

2.11.3单向链表的输出 80

2.11.4对单向链表的删除操作 80

2.11.5对单向链表的插入操作 81

2.11.6循环链表 82

2.11.7双向链表 82

2.12位运算符和位运算 83

2.12.1“按位与”运算符(&) 84

2.12.2“按位或”运算符(|) 84

2.12.3“取反”运算符(~) 84

2.12.4“异或”运算符(^) 84

2.12.5移位运算符(<<和>>) 85

2.12.6位域 85

2.13 C语言预处理命令 86

2.13.1宏定义 86

2.13.2文件包含 87

2.13.3条件编译 88

2.13.4#error等其他常用预处理命令 89

2.14本章小结 89

实战演练 89

第3章 vi与Emacs编辑器 91

3.1 vi的使用 92

3.1.1启动与退出vi 92

3.1.2 vi的命令行模式 93

3.1.3 vi的插入模式 96

3.1.4 vi的底行模式 96

3.2 vi使用实例 97

3.3 Emacs的使用 100

3.3.1启动与退出Emacs 101

3.3.2 Emacs下的基本操作 102

3.4 Emacs使用实例 107

3.5本章小结 109

实战演练 109

第4章 gcc编译器与gdb调试器 110

4.1 gcc编译器简介 111

4.2如何使用gcc 112

4.2.1 gcc编译初步 112

4.2.2警告提示功能 114

4.2.3优化gcc 116

4.2.4连接库 119

4.2.5同时编译多个源程序 120

4.2.6管道 120

4.2.7调试选项 121

4.3 gdb调试器 122

4.3.1 gdb简介 122

4.3.2 gdb常用命令 123

4.3.3 gdb调试初步 124

4.4 gdb的使用详解 126

4.4.1调用gdb 127

4.4.2使用断点 127

4.4.3查看运行时数据 129

4.4.4查看源程序 133

4.4.5改变程序的执行 135

4.5 xxgdb调试器简介 138

4.6本章小结 139

实战演练 139

第5章 make的使用和Makefile的编写 141

5.1什么是make 142

5.1.1 make机制概述 142

5.1.2 make与Makefile的关系 144

5.2 Makefile的书写规则 147

5.2.1 Makefile的基本语法规则 148

5.2.2在规则中使用通配符 149

5.2.3伪目标 149

5.2.4多目标 151

5.2.5自动生成依赖性 151

5.3 Makefile的命令 152

5.4变量 154

5.4.1变量的基础 154

5.4.2赋值变量 154

5.4.3 define关键字 156

5.4.4 override指示符 156

5.4.5目标变量和模式变量 157

5.5常用函数调用 158

5.5.1字符串处理函数 158

5.5.2文件名操作函数 162

5.5.3循环函数 164

5.5.4条件判断函数 165

5.5.5其他常用函数 166

5.6隐式规则 168

5.6.1隐式规则举例 168

5.6.2隐式规则中的变量 169

5.6.3使用模式规则 170

5.7本章小结 173

实战演练 173

第2部分提高篇

第6章文件I/O操作 174

6.1 Linux文件系统简介 175

6.1.1 Linux的文件系统结构 175

6.1.2文件类型 176

6.1.3文件访问权限 179

6.2基于文件描述符的I/O操作 179

6.2.1文件描述符 180

6.2.2标准输入、标准输出和标准出错 180

6.2.3文件重定向 181

6.2.4文件的创建、打开与关闭 182

6.2.5文件的定位 186

6.2.6文件的读写 188

6.3文件的属性操作 192

6.3.1改变文件访问权限 192

6.3.2改变文件所有者 193

6.3.3重命名 193

6.3.4修改文件长度 194

6.4文件的其他操作 195

6.4.1 stat、fstat和lstat函数 195

6.4.2 dup和dup2函数 196

6.4.3 fcntl函数 197

6.4.4 sync和fsync函数 197

6.5特殊文件的操作 198

6.5.1目录文件的操作 198

6.5.2链接文件的操作 201

6.5.3管道文件的操作 204

6.5.4设备文件 204

6.6本章小结 205

实战演练 205

第7章基于流的I/O操作 206

7.1流与缓存 207

7.1.1流和FILE对象 207

7.1.2标准输入、标准输出和标准出错 207

7.1.3缓存 207

7.1.4对缓存的操作 210

7.2流的打开与关闭 212

7.2.1流的打开 212

7.2.2流的关闭 214

7.2.3流关闭前的工作 216

7.3流的读写 216

7.3.1基于字符的I/O 217

7.3.2基于行的I/O 220

7.3.3直接I/O 222

7.3.4格式化I/O 224

7.4本章小结 226

实战演练 227

第8章进程控制 228

8.1进程的基本概念 229

8.1.1 Linux进程简介 229

8.1.2进程与作业 230

8.1.3进程标识 230

8.2进程控制的相关函数 232

8.2.1 fork和vfork函数 232

8.2.2 exec函数 237

8.2.3 exit和_exit函数 242

8.2.4 wait和waitpid函数 245

8.2.5进程的一生 251

8.2.6用户ID和组ID 251

8.2.7 system函数 253

8.3多个进程间的关系 255

8.3.1进程组 255

8.3.2会话期 256

8.3.3控制终端 257

8.4本章小结 259

实战演练 259

第9章信号 260

9.1 Linux信号简介 261

9.1.1信号的基本概念 261

9.1.2信号处理机制 265

9.2信号操作的相关函数 267

9.2.1信号的处理 267

9.2.2信号的发送 274

9.2.3信号的阻塞 282

9.2.4计时器与信号 284

9.3本章小结 286

实战演练 287

第10章进程间通信 288

10.1进程间通信简介 289

10.2管道 290

10.2.1管道的概念 290

10.2.2管道的创建与关闭 291

10.2.3管道的读写 292

10.3命名管道 297

10.3.1命名管道的概念 297

10.3.2命名管道的创建 297

10.3.3命名管道的读写 299

10.4消息队列 303

10.4.1消息队列的概念 303

10.4.2消息队列的创建与打开 305

10.4.3消息队列的读写 306

10.4.4获得或设置消息队列属性 308

10.5共享内存 312

10.5.1共享内存的概念 312

10.5.2共享内存的相关操作 313

10.6信号量 318

10.6.1信号量的概念 319

10.6.2信号量集的相关操作 320

10.7本章小结 325

实战演练 326

第11章网络编程 327

11.1网络编程的基础知识 328

11.1.1计算机网络体系结构 328

11.1.2传输控制协议TCP 333

11.1.3用户数据报协议UDP 335

11.1.4客户机/服务器模式 336

11.2套接口编程基础 336

11.2.1什么是套接口 337

11.2.2端口号的概念 338

11.2.3套接口的数据结构 338

11.2.4基本函数 340

11.3 TCP套接口编程 343

11.3.1 TCP套接口通信工作流程 343

11.3.2 TCP套接口Client/Server程序实例 356

11.4 UDP套接口编程 360

11.4.1 UDP套接口通信工作流程 360

11.4.2 UDP套接口Client/Server程序实例 362

11.5原始套接口编程 365

11.5.1原始套接口的创建 365

11.5.2原始套接口程序实例 365

11.6本章小结 376

实战演练 376

第12章 Linux图形界面编程 377

12.1 Linux下的图形界面编程简介 378

12.1.1 Qt简介 378

12.1.2 GTK+简介 378

12.2界面基本元件 381

12.2.1一个简单的例子 381

12.2.2窗口 383

12.2.3标签 385

12.2.4按钮 386

12.2.5文本框 387

12.3界面布局元件 389

12.3.1表格 390

12.3.2框 393

12.3.3窗格 395

12.4其他常用元件 398

12.4.1进度条、微调按钮、组合框 398

12.4.2单选按钮、复选按钮 402

12.4.3下拉菜单 404

12.5信号与回调函数 406

12.6本章小结 409

实战演练 409

第3部分实战篇

第13章设计Linux下的计算器 411

13.1软件功能分析 412

13.2程序模块的划分 413

13.3软件的具体实现 415

13.3.1头文件 415

13.3.2十六进制界面显示函数 416

13.3.3十进制界面显示函数 417

13.3.4八进制界面显示函数 418

13.3.5二进制界面显示函数 419

13.3.6进制间转换函数 420

13.3.7信号处理模块 423

13.3.8主函数 432

13.4软件使用效果演示 438

13.5本章小结 439

第14章 Linux平台下聊天软件的设计 440

14.1软件功能概述 441

14.1.1服务器端功能需求 441

14.1.2客户端功能需求 442

14.1.3错误处理需求 442

14.2 Glade集成开发工具简介 443

14.3软件功能模块划分 444

14.3.1服务器功能模块划分 444

14.3.2客户端功能模块划分 445

14.3.3消息标识的定义 445

14.3.4消息结构体的设计 446

14.4服务器程序的具体实现 447

14.4.1服务器消息处理流程 447

14.4.2服务器主要函数和变量 448

14.4.3服务器消息处理模块的设计与实现 449

14.4.4服务器数据存储的方法 450

14.4.5用户注册流程 450

14.5客户端程序的具体实现 451

14.5.1客户端操作流程 451

14.5.2客户端发送和接收消息流程 451

14.5.3客户端主要函数和变量 452

14.5.4客户端功能模块的设计与实现 453

14.6聊天软件使用效果演示 455

14.7本章小结 459

第15章 Linux远程管理工具的设计 460

15.1软件功能概述 461

15.1.1 Webmin简介 461

15.1.2软件总体设计 461

15.2服务器端程序设计 463

15.2.1服务器端工作流程 463

15.2.2系统用户管理操作 464

15.2.3系统用户组的管理操作 466

15.2.4系统服务启动管理 468

15.2.5 DNS管理操作 469

15.2.6 Apache服务管理操作 471

15.2.7 FTP服务管理操作 474

15.3客户端程序 475

15.3.1连接界面 475

15.3.2主界面 477

15.4本章小结 479

第16章 Linux下简易防火墙软件的设计 480

16.1 Netfilter基础 481

16.1.1什么是Netfilter 481

16.1.2 Netfilter的HOOK机制 482

16.1.3 HOOK的调用 485

16.1.4 HOOK的实现 486

16.1.5 IPTables简介 488

16.1.6 Netfilter可以实现的控制功能 489

16.2软件设计概述 491

16.2.1软件整体框架 491

16.2.2管理端的设计 492

16.2.3控制端的设计 493

16.3用Netfilter设计控制端功能模块 495

16.3.1 ICMP管理控制模块 495

16.3.2 FTP管理控制模块 497

16.3.3 HTTP管理控制模块 499

16.3.4模块的编译、加载与卸载 499

16.4软件功能测试 501

16.5本章小结 503

第17章基于Linux的嵌入式家庭网关远程交互操作平台的设计 504

17.1嵌入式技术简介 505

17.1.1嵌入式系统的概念 505

17.1.2嵌入式操作系统 506

17.1.3嵌入式处理器 507

17.2家庭网关的概念及其网络体系结构 509

17.2.1智能家庭网络的概念 509

17.2.2家庭网关的远程交互操作技术简介 510

17.2.3嵌入式家庭网关的网络体系结构 510

17.3嵌入式家庭网关的开发平台 511

17.3.1 S3C2410微处理器简介 511

17.3.2交叉编译环境的建立 513

17.4远程交互平台的设计 515

17.4.1应用软件的开发模式 515

17.4.2嵌入式Web服务器 516

17.4.3通用网关接口CGI 519

17.5 Linux下软件模块的具体实现 520

17.5.1登录验证模块 521

17.5.2串口通信模块 521

17.5.3中央空调控制模块 522

17.5.4智能水表数据采集模块 528

17.5.5试验结果 528

17.6本章小结 529

阅读剩余
THE END