首页
┆
咨询
┆
科普
┆
论坛
┆
博客
首页
图书
音乐
影视
化妆品
我的账户
┆
购物车内容
┆
去收银台
动漫周边
┆
数码
┆
最新商品
┆
出版社
┆
丛书
┆
作者
┆
最近出版书籍
┆
在线阅读
┆
RSS
商品搜索
高级搜索
热门搜索词:
殷红博
早期教育与天才
区慕洁
您现在的位置:
书城
>
图书
>
电脑图书
>
操作系统
>
Linux
> 商品信息
UNIX到Linux的移植
定价: ¥45.00元
金桥价: ¥42.75元
节省: ¥2.25元
出版/发行时间: 2007-03-01
出版社:
机械工业出版社
作者:
Alfredo Mendoza
译者:
张昕
ISBN: 9787111209119
版次: 1
内容简介
本书讲述怎样把UNIX环境下的应用程序移植到Linux环境上运行,是一本综合的开发和解决问题的参考手册 。本书详细描述了当前IT行业中被广泛应用的各种UNIX操作系统间的区别,其内容包括项目移植思考、调查、分析、移植Solaris应用程序、移植AIX应用程序、移植HP-UX应用程序、测试和调试。它的读者对象包括开发人员、应用程序架构师以及项目经理。
本书的内容包括:
理解Linux环境: GNU二进制工具、Java环境、shell、打包工具等。
揭示并确定项目的未知因素、可变因素及其他风险。
处理具体平台的区别:标准、编译器、链接器、版本化、系统/库调用、线程等。
使用GNU调试器及Linux内存泄露和性能跟踪工具测试和调试移植后的应用程序。
包含了UNIX和Linux上API、编译器和链接器选项的快速索引,以及IBM POWER结构特有的移植问题。
目录:
1 移植项目思考 19
1.1 软件程序商业过程 19
1.2 移植过程 20
1.2.1 调查 20
1.2.2 分析 21
1.2.3 移植 21
1.2.4 测试 22
1.2.5 支持 22
1.3 定义项目范围和目标 22
1.4 估计 24
1.4.1 技能水平和移植经验 24
1.4.2 编译器 25
1.4.3 第三方软件和中间件的可用性 25
1.4.4 编译环境和工具 25
1.4.5 平台依赖的结构 26
1.4.6 平台/硬件依赖的代码 26
1.4.7 搭建测试环境 26
1.4.8 用户接口需求 27
1.5 创建项目移植进度表 28
1.6 从商业角度看移植过程 28
1.7 带注解的技术调查问卷样例 29
1.7.1 平台相关的内容 29
1.7.2 应用程序相关的内容 29
1.7.3 数据库内容 31
1.7.4 项目移植时间进度内容 32
1.7.5 测试相关的内容 32
1.7.6 项目移植的执行内容 33
1.8 小结 33
2 调查 34
2.1 编译器 34
2.1.1 GNU gcc C编译器 34
2.1.2 GNU g++ (C++)编译器 35
2.1.3 GNU g77 FORTRAN编译器 36
2.1.4 GNU Java编译器(注释8) 37
2.1.5 GNU COBOL 37
2.1.6 其他编译器 37
2.2 Java环境 38
2.3 编译环境 38
2.3.1 gmake 38
2.3.2 GNU二进制工具(binutils) 39
2.3.2.1 GNU ld 39
2.3.3 GNU as 39
2.3.4 集成开发环境 41
2.4 Linux Shell 41
2.5 打包 42
2.5.1 用RPM打包应用程序 42
2.5.2 RPM的基本用法 43
2.5.2.1 rpm -i 43
2.5.2.2 rpm -e 43
2.5.2.3 rpm -U 44
2.5.2.4 rpm -q 44
2.5.2.5 rpm -V 44
2.5.3 LSB(Linux Standard Base)推荐的基准打包格式 44
2.6 项目管理任务 44
2.7 小结 46
3 分析 47
3.1 Linux标准 47
3.2 GNU libc库 48
3.2.1 glibc遵循的标准 49
3.3 GNU科学库 50
3.4 共享库 51
3.5 库版本化(注释8,9) 51
3.5.1 外部库版本化 51
3.5.2 符号版本化 53
3.6 动态链接器(运行时链接器) 56
3.6.1 编程接口 57
3.6.2 延迟重定位(Lazy Relocation) 57
3.6.3 初始化(initializing)和终止化(finalizing)函数 58
3.7 系统调用 58
3.8 大页面支持 59
3.9 Native POSIX线程库(Native POSIX Threads Library,简写作NPTL) 60
3.9.1 最大线程数 61
3.10 国际化(I18N)(注释18)和本地化 61
3.10.1 iconv支持 63
3.10.2 如何创建消息目录(message catalog)(注释19) 63
3.11 大小端(Big/Little-Endian,也叫字节序)环境 64
3.12 从32位移植到64位 65
3.12.1 常见的移植错误 66
3.12.2 最优方法 67
3.13 小结 67
4 移植Solaris应用程序 68
4.1 准备工作 68
4.1.1 搭建移植系统 68
4.1.2 搭建代码修改管理系统 69
4.1.3 搭建编译系统 69
4.2 常见的区别 69
4.2.1 C语言 70
4.2.2 C++语言 70
4.2.3 GNU C/C++语言 70
4.2.4 Java语言 71
4.2.5 线程 71
4.2.6 所支持的标准之间的比较 71
4.3 编译器 72
4.3.1 C编译器 72
4.3.2 C编译器选项 72
4.3.3 C++编译器选项 82
4.3.4 GNU g++的模板实例化 92
4.3.5 编译32位或64位目标文件 92
4.3.6 编译器的优化和性能选项 92
4.3.7 Linux平台上的命名空间选择 93
4.4 链接器 94
4.4.1 输出映射 99
4.4.2 链接器工具 99
4.4.3 共享库 100
4.4.4 库版本化 100
4.4.5 动态链接器(运行时链接器) 101
4.5 移植shell脚本到Linux 101
4.6 国际化和本地化 102
4.7 Make 102
4.7.1 为C++语言内建的Makefile变量 104
4.7.2 库依赖 104
4.7.3 空规则 104
4.7.4 当前目标 104
4.7.5 SCCS和RCS文件 105
4.7.6 有条件地给宏赋值 105
4.7.7 模式替换宏的引用 105
4.7.8 VPATH 105
4.7.9 命令执行 106
4.7.10 特殊目标 106
4.7.11 环境变量 107
4.7.12 退出状态 107
4.8 调试器 108
4.9 线程 108
4.9.1 Solaris libthread与Linux libpthread 108
4.9.2 Solaris libpthread与Linux libpthread 110
4.9.3 取消点(Cancellation Points) 113
4.9.4 C++异常和Linux线程 114
4.10 信号 115
4.10.1 信号动作(Actions) 116
4.10.2 简单信号 116
4.10.3 Linux的信号支持 117
4.10.4 POSIX信号捕获函数 119
4.10.5 信号集 120
4.10.6 信号信息 120
4.10.7 kill() 122
4.11 系统调用 122
4.11.1 open() 122
4.11.2 fcntl() 124
4.11.3 dirent 126
4.11.4 CPU亲和性(Affinity) 127
4.11.5 fork() 127
4.12 系统库 127
4.13 Solaris和Linux API 128
4.13.1 内存管理 128
4.13.2 进程间通信(Interprocess Communication, IPC) 129
4.13.3 内存布置优化(Memory Placement Optimization, 简写作MPO) 134
4.13.4 vfstab 134
4.13.5 posix_spawn()和posix_spwawnp() 134
4.13.6 plock() 135
4.13.7 waitpid() 135
4.14 科学库 136
4.15 大页面支持 136
4.16 Solaris上的一些不可移植的编程用法 137
4.17 小结 137
5 移植AIX应用程序 139
5.1 准本工作 139
5.1.1 搭建移植系统 139
5.1.2 搭建代码修改管理系统 140
5.1.3 搭建编译系统 140
5.2 常见的区别 140
5.2.1 C语言 141
5.2.2 C++语言 141
5.2.3 GNU C/C++语言 141
5.2.4 Java语言 141
5.2.5 线程 141
5.2.6 所支持的标准之间的比较 142
5.3 编译器 143
5.3.1 调用编译器 144
5.4 Make 153
5.4.1 gmake条件分支语句 154
5.5 链接器 154
5.5.1 链接器的不兼容性 154
5.5.2 链接器:从AIX移植到Linux参考手册 156
5.6 AIX和Linux创建共享库的比较 157
5.7 动态装载 157
5.8 AIX和Linux上模板实例化的区别 158
5.8.1 使用#pragma或#include 159
5.8.2 GNU中其他可用的模板选项 160
5.9 C++filt工具 160
5.10 系统API:AIX/Linux 161
5.10.1 AIX/Linux I/O系统API 161
5.11 部分AIX/Linux系统API之间的比较 167
5.11.1 getfsent(), getfsfile(), getfstype(), getfsspec() 167
5.11.2 ioctl() 168
5.11.3 read(),write() 169
5.11.4 confstr() 171
5.11.5 opendir() 171
5.11.6 readdir() 172
5.11.7 fcntl() 172
5.11.8 llseek(), lseek(), lseek64() 177
5.11.9 uname() 178
5.11.10 syslog(), closelog(), openlog() 179
5.11.11 swapoff(), swapon() 179
5.11.12 acct() 180
5.11.13 mmap(), mmap64()(注释17), munmap() 181
5.11.14 pread(),pwrite() 184
5.11.15 stat(), lstat(), fstat() 185
5.11.16 ptrace() 185
5.11.17 setgid(), setregid() 187
5.11.18 sync() 188
5.11.19 wait3(), wait4() 189
5.11.20 getcwd() 190
5.11.21 mount(), umount, vmount() 191
5.11.22 readv(), writev() 194
5.11.23 select() 195
5.11.24 reboot() 196
5.11.25 chroot() 198
5.11.26 fstatfs(),statfs() 199
5.11.27 poll() 200
5.11.28 quotactl() 201
5.12 AIX上的一些非标准的编程用法 204
5.13 信号 205
5.13.1 信号动作 205
5.13.2 简单信号 205
5.14 网络编程 210
5.15 进程间通信(Interprocess Communication,简写作IPC) 211
5.15.1 信号量 211
5.15.2 系统V信号量集 213
5.15.3 消息队列(mqueue.h) 213
5.15.4 共享内存 215
5.16 POSIX线程 217
5.16.1 Linux和AIX的线程模型比较 217
5.16.2 内核空间线程 217
5.16.3 用户空间线程 218
5.16.4 AIX和Linux POSIX线程交叉对比 218
5.17 大页面支持 221
5.18 通用API 221
5.19 小结 222
6 移植HP-UX应用程序 224
6.1 准备工作 224
6.1.1 搭建移植系统 224
6.1.2 搭建代码修改管理系统 225
6.1.3 搭建编译环境 225
6.2 常见的区别 225
6.2.1 C语言 226
6.2.2 C++语言 226
6.2.3 GNU C/C++语言 226
6.2.4 Java语言 226
6.2.5 线程 226
6.2.6 所支持标准之间的比较 227
6.3 编译器 228
6.3.1 C编译器选项 229
6.3.2 C++编译器选项 232
6.3.3 GNU g++的模板实例化 235
6.3.4 编译32/64位二进制程序 236
6.3.5 编译器优化和性能选项 236
6.3.6 使用GNU进行移植和编译 238
6.3.7 Linux平台上的命名空间选择 238
6.4 链接器(注释21) 239
6.4.1 输出映射(export map) 240
6.4.2 链接器工具 240
6.5 库版本化 241
6.5.1 HP-UX上的库版本化 241
6.5.2 Linux上的库版本化(注释24) 242
6.6 动态链接和共享库 242
6.6.1 GNU libtool 244
6.7 移植shell脚本到Linux 244
6.8 国际化(I18N)(注释26) 245
6.8.1 iconv支持和消息目录(message catalog) 247
6.9 软件开发工具 247
6.9.1 Makefile语法 248
6.9.2 调试器 250
6.10 线程 250
6.10.1 HP-UX和Linux上的线程支持 251
6.10.2 HP-UX DCE和POSIX线程的区别 254
6.10.3 调试Linux线程 256
6.10.4 C++异常和Linux线程 258
6.10.5 链接线程安全的库 260
6.11 信号 260
6.11.1 信号动作(Acitions) 260
6.11.2 简单信号 261
6.11.3 信号发送 262
6.11.4 Linux的信号支持 262
6.11.5 POSIX信号捕获函数 263
6.11.6 信号信息 263
6.11.7 信号缺省动作 265
6.12 HP-UX上的系统调用和Linux上的对应调用 267
6.12.1 检查POSIX API支持 267
6.12.2 检查Linux内核版本 271
6.13 系统库 272
6.14 GNU科学库 273
6.15 HP-UX和Linux API 274
6.15.1 glibc版本 274
6.15.2 glibc遵循的标准 274
6.15.3 HP-UX上的一些不可移植的编程用法 275
6.16 进程间通信 275
6.16.1 管道 275
6.16.2 FIFO 276
6.16.3 POSIX消息队列 276
6.16.4 POSIX信号量 277
6.16.5 POSIX共享内存 278
6.16.6 系统V共享内存 278
6.16.7 系统V消息 279
6.16.8 系统V信号量 279
6.17 小结 280
7 测试和调试 281
7.1 使用GNU调试器 282
7.1.1 编译可以使用GDB的程序 282
7.1.2 调用GDB 282
7.1.3 GDB基本命令 283
7.1.4 调试多进程 283
7.1.5 调试多线程应用程序 284
7.1.6 停止多线程程序 285
7.1.7 GDB初始化文件 286
7.1.8 GDB和信号 286
7.1.9 GDB的图形化前端(front end) 288
7.2 strace和ltrace 288
7.3 cscope工具 288
7.3.1 Vim和cscope 289
7.4 glibc调试支持 290
7.5 内存调试工具 291
7.5.1 Electric Fence 291
7.5.2 GNU/Linux mtrace, mcheck, MALLOC_CHECK 292
7.5.3 Mpatrol 292
7.5.4 dmalloc 292
7.5.5 valgrind 293
7.5.6 Rational Purefy 293
7.5.7 Insure++ 294
7.6 静态程序检查器 294
7.6.1 Splint 294
7.6.2 CodeSonar 294
7.7 线程跟踪工具 295
7.8 性能监测工具 295
7.8.1 内部视角 295
7.8.2 外部视角 299
7.8.3 其他工具 302
7.9 小结 303
F.3 编译和链接 414
《表F-3》670 控制和优化栈增长的编译器选项 415
F.3.2 汇编代码 415
F.3.3 栈框架结构和链接 415
F.3.4 预先定义的符号 416
F.3.5 调试 416
F.4 字节序 416
F.5 其他区别 416
F.5.1 ASCII和EBCDIC问题 416
F.5.2 cpuinfo的格式 417
F.6 变参列表 417
F.7 从哪儿可以获取更多信息 417
F.8 致谢 417
G.1 打包任务 418
G.2 安装和升级任务 418
G.3 用户管理任务 420
G.4 网络管理和配置 420
G.5 NFS管理和配置 421
G.6 管理系统资源 422
G.7 磁盘和文件系统管理 422
G.8 交换分区管理 423
G.9 逻辑卷管理 423
G.10 常用的解决错误的方法 425
G.11 网络问题解决方法 427
G.12 配置文件及其他文件 427
G.13 可比较的命令 428
这件商品于 2007-03-09 添加.
Google AdSense...
出版社-机械工业出版社
...
更多
JSF Web应用开发实战
机钳工实训教程
建筑环境与设备工程实验及测试技术
电器开关电源电路图集
配电网络故障选线
软件测试教程
土木工程测量实践教程
数字媒体应用教程(附光盘)
算法与C程序设计
首次购物
购物演示
常见问题
隐私条款
付款方式
网上支付
邮局汇款
银行汇款
配送方式
运费收取标准
到货时间
会员专区
我的账单
我的收藏
有问必答
帮助中心
找回密码
联系我们
关于我们
|
网站地图
|
用户注册
|
广告客户
|
招聘信息
|
业务信息
Copyright©2006-2009 JQCQ.com,WONDER. All Rights Reserved
重庆科技咨询中心.重庆网得信息技术有限公司.版权所有
Email: book@jqinfo.com
电话:023-63002289-802 63659911 传真:023-63659907 短信查询:13638319092(
短信
)
邮编:400013 地址:重庆市渝中区双钢路3号科协大厦15楼 收款人:科普书社