Linux高级程序设计(图灵程序设计丛书)

分類: 图书,计算机与互联网,操作系统,Linux,Linux 编程开发,
品牌: Jon Masters
基本信息·出版社:人民邮电出版社
·页码:390 页
·出版日期:2008年
·ISBN:7115179107/9787115179104
·条形码:9787115179104
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:图灵程序设计丛书
产品信息有问题吗?请帮我们更新产品信息。
内容简介本书是Linux 程序设计领域的一部力作,讲解了大量程序员需要掌握的关键知识点,包括Linux 开发中的基本工具、Linux 系统编程、Linux 桌面开发以及Linux 与Web 开发。书中包括大量有益的经验之谈和富于启发的示例。本书主要针对已有一定Linux开发经验或者从其他平台转到Linux 平台的专业程序员,同样也适合想更多了解系统以解决实际问题的Linux 使用者。
目录
第1章Linux简介1
1.1Linux发展简史1
1.1.1GNU项目2
1.1.2Linux内核2
1.1.3Linux发行版3
1.1.4自由软件与开放源码4
1.2开发起步5
1.2.1选择一个Linux发行版5
1.2.2安装Linux发行版7
1.2.3沙盒和虚拟化技术13
1.3Linux社区13
1.3.1Linux用户组14
1.3.2邮件列表14
1.3.3IRC14
1.3.4私有社区14
1.4关键差别15
1.4.1Linux是模块化的15
1.4.2Linux是可移植的15
1.4.3Linux是通用的15
1.5本章总结16
第2章工具链17
2.1Linux开发过程17
2.1.1使用源代码18
2.1.2配置本地环境18
2.1.3编译源代码19
2.2GNU工具链的组成20
2.3GNU二进制工具集29
2.3.1GNU汇编器29
2.3.2GNU连接器30
2.3.3GNU objcopy和objdump31
2.4GNU Make33
2.5GNU调试器34
2.6Linux内核和GNU工具链37
2.6.1内联汇编37
2.6.2属性标记38
2.6.3定制连接器脚本38
2.7交叉编译39
2.8建立GNU工具链40
2.9本章总结41
第3章可移植性42
3.1可移植性的需要42
3.2Linux的可移植性44
3.2.1抽象层44
3.2.2Linux发行版45
3.2.3建立软件包49
3.2.4可移植的源代码61
3.3硬件可移植性78
3.3.164位兼容78
3.3.2字节序中立79
3.3.3字节序的门派之争81
3.4本章总结81
第4章软件配置管理83
4.1SCM的必要性83
4.2集中式开发与分散式开发84
4.3集中式工具85
4.3.1CVS85
4.3.2Subversion93
4.4分散式工具96
4.4.1Bazaar-NG96
4.4.2Linux内核SCM99
4.5集成化SCM工具102
4.6本章总结104
第5章网络编程105
5.1Linux套接字编程105
5.1.1套接字105
5.1.2网络地址107
5.1.3使用面向连接的套接字108
5.1.4使用无连接套接字114
5.2传输数据117
5.2.1数据报与字节流117
5.2.2标记消息边界121
5.3使用网络编程函数库123
5.3.1libCurl函数库123
5.3.2使用libCurl库124
5.4本章总结129
第6章数据库130
6.1持久性数据存储130
6.1.1使用标准文件130
6.1.2使用数据库131
6.2Berkeley DB软件包133
6.2.1下载和安装133
6.2.2编译程序134
6.2.3基本数据处理134
6.3PostgreSQL数据库服务器143
6.3.1下载和安装144
6.3.2编译程序145
6.3.3创建一个应用程序数据库145
6.3.4连接服务器147
6.3.5执行SQL命令150
6.3.6使用参数157
6.4本章总结160
第7章内核开发161
7.1基本知识161
7.1.1背景先决条件161
7.1.2内核源代码162
7.1.3配置内核165
7.1.4编译内核168
7.1.5已编译好的内核171
7.1.6测试内核172
7.1.7包装和安装内核174
7.2内核概念174
7.2.1一句警告175
7.2.2任务抽象175
7.2.3虚拟内存179
7.2.4不要恐慌182
7.3内核编程182
7.4内核开发过程185
7.4.1git: 傻瓜内容跟踪器185
7.4.2Linux内核邮件列表187
7.4.3“mm”开发树189
7.4.4稳定内核小组189
7.4.5LWN:Linux每周新闻189
7.5本章总结190
第8章内核接口191
8.1什么是接口191
8.2外部内核接口192
8.2.1系统调用193
8.2.2设备文件抽象197
8.2.3内核事件210
8.2.4忽略内核保护211
8.3内部内核接口215
8.3.1内核API215
8.3.2内核ABI216
8.4本章总结217
第9章Linux内核模块218
9.1模块工作原理218
9.1.1扩展内核命名空间220
9.1.2没有对模块兼容性的保证221
9.2找到好的文档221
9.3编写Linux内核模块223
9.3.1开始之前223
9.3.2基本模块需求223
9.3.3日志记录226
9.3.4输出的符号227
9.3.5分配内存228
9.3.6锁的考虑236
9.3.7推迟工作243
9.3.8进一步阅读251
9.4分发Linux内核模块252
9.4.1进入上游Linux内核252
9.4.2发行源代码252
9.4.3发行预编译模块253
9.5本章总结253
第10章调试254
10.1调试概述254
10.2基本调试工具255
10.2.1GNU调试器255
10.2.2Valgrind263
10.3图形化调试工具264
10.3.1DDD264
10.3.2Eclipse267
10.4内核调试269
10.4.1不要惊慌!269
10.4.2理解oops270
10.4.3使用UML进行调试272
10.4.4一件轶事275
10.4.5关于内核调试器的注记276
10.5本章总结276
第11章GNOME开发者平台277
11.1GNOME函数库277
11.1.1Glib277
11.1.2GObject277
11.1.3Cairo278
11.1.4GDK278
11.1.5Pango278
11.1.6GTK+278
11.1.7libglade279
11.1.8GConf279
11.1.9GStreamer279
11.2建立一个音乐播放器280
11.2.1需求280
11.2.2开始:主窗口280
11.2.3建立GUI282
11.3本章总结299
第12章自由桌面项目300
12.1D-BUS:桌面总线300
12.1.1什么是D-Bus300
12.1.2D-Bus基础301
12.1.3D-Bus方法304
12.2硬件抽象层308
12.2.1使硬件可以即插即用308
12.2.2HAL设备对象311
12.3网络管理器316
12.4其他自由桌面项目317
12.5本章总结318
第13章图形和音频319
13.1Linux和图形319
13.1.1X视窗319
13.1.2开放式图形库321
13.1.3OpenGL应用工具包321
13.1.4简单直接媒介层322
13.2编写OpenGL应用程序322
13.2.1下载和安装323
13.2.2编程环境323
13.2.3使用GLUT库324
13.3编写SDL应用程序336
13.3.1下载和安装336
13.3.2编程环境337
13.3.3使用SDL库337
13.4本章总结347
第14章LAMP348
14.1什么是LAMP348
14.1.1Apache349
14.1.2MySQL349
14.1.3PHP349
14.1.4反叛平台350
14.1.5评价LAMP平台350
14.2Apache351
14.2.1虚拟主机352
14.2.2安装和配置PHP 5353
14.2.3Apache Basic认证353
14.2.4Apache与SSL354
14.2.5SSL与HTTP认证的整合355
14.3MySQL355
14.3.1安装MySQL355
14.3.2配置和启动数据库356
14.3.3修改默认密码356
14.3.4MySQL客户端接口356
14.3.5关系数据库357
14.3.6SQL357
14.3.7关系模型359
14.4PHP362
14.4.1PHP语言362
14.4.2错误处理369
14.4.3异常错误处理370
14.4.4优化技巧371
14.4.5安装额外的PHP软件375
14.4.6日志记录376
14.4.7参数处理377
14.4.8会话处理378
14.4.9单元测试378
14.4.10数据库和PHP380
14.4.11PHP框架380
14.5DVD库381
14.5.1版本1:开发者的噩梦381
14.5.2版本2:使用DB数据层的基本应用程序382
14.5.3版本3:重写数据层,添加日志记录和异常385
14.5.4版本4:应用模板框架388
14.6本章总结390
……[看更多目录]