网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 计算机与网络 > 操作系统 > 商品详情

UNIX到Linux 的移植

分享到:
UNIX到Linux 的移植

最 低 价:¥33.80

  • UNIX到Linux 的移植
  • 送货上门
  • 价格
    33.80元
  • UNIX到Linux 的移植
  • 送货上门
  • 价格
    33.80元
  • UNIX到Linux的移植
  • 送货上门
  • 价格
    33.80元
  • UNIX到Linux的移植
  • 送货上门
  • 价格
    36.75元
  • UNIX到Linux的移植
  • 送货上门
  • 价格
    40.10元
  • UNIX到Linux的移植
  • 送货上门
  • 价格
    40.10元
  • UNIX到Linux的移植
  • 送货上门
  • 价格
    41.20元
  • unlx到linux的移植
  • 送货上门
  • 价格
    43.70元
  • unlx到linux的移植
  • 送货上门
  • 价格
    46.60元

    商品详情

    编辑推荐

    本书讲述怎样把应用程序移植到Linux环境上运行,是一本综合的开发和解决问题的参考手册。内容包括:理解Linux环境,GNU二进制工具,Java环境、shell、打包工具等,揭示并确定项目的未知因素、可变因素及其他风险,处理具体平台的区别,标准、编译器、链接器、版本化、系统/库调用、线程等,使用GNU调试器及Linux内存泄露和性能跟踪工具测试和调试移植后的应用程序:UNIX和Linux上API、编译器和链接器选项的快速索引,以及IBM POWER结构特有的移植问题。.
    本书适合软件开发人员、应用程序架构师,以及项目经理等参考使用。
    越来越多的开发人员、架构师和项目经理面临着把UNIX上的C、C++和Java应用程序移植到Linux上的挑战。本书是一本权威的移植指南,指导你从当今最常用的UNIX平台(Solaris、HP-UX和AIX)上把程序移植到Linux上。..
    本书的三位作者是IBM最有经验的Linux移植专家,他们将带领你走完整个项目移植过程:调查、分析、移植和测试。他们给出了一种完整的移植方法,对关键任务进行了切实的讨论,并给出了评估新项目时可能用到的调查问卷。按照本书的方法,你会发现Linux在API、库函数、版本化、系统特性和工具等方面所提供的功能以及它们对你的项目的影响。另外,作者还详细讲述了每个独立的UNIX平台上特有的问题和最实用的解决方法。
    本书主要内容
    · 理解Linux环境:GNU二进制工具、Java环境、shell、打包工具等。
    · 揭示并确定项目的未知因素、可变因素及其他风险。
    · 处理具体平台的区别:标准、编译器、链接器、版本化、系统/库调用、线程等。
    · 使用GNU调试器、Linux内存泄漏及性能跟踪工具测试和调试移植后的应用程序。
    · 包含了UNIX和Linux上API、编译器和链接器选项的快速索引,以及IBM POWER结构特有的移植问题。...

    内容简介

    本书内容包括:理解Linux环境,GNU二进制工具,Java环境、shell、打包工具等;揭示并确定项目的未知因素、可变因素及其他风险;处理具体平台的区别,标准、编译器、链接器、版本化、系统/库调用、线程等。

    作者简介

    Alfredo(Freddie)Mendoza是IBM Systems and Techology部门Business Strategy and Enablement组的IT专家。他在应用程序结构和管理方面有19年的工作经验。他现在正与一些独立软件提供商一起,把他们的应用程序移植到IBM交叉平台操作系统上。在此之前,Mendoza先生在IBM Global Services的AIX内核开发部门工作,是多个软件开发部门的技术顾问。Mendoza先生撰写了并与人合写了一些关于线程管理和软件算法的专利发明出版物。他是《Introduction to Utility Computing》的作者,以及发表在《IBM Systems Journal》Utility Computing专题上的《Design of an Enablement Process for On-Demand Apolications》的合作者。

    目录


    译者序
    序言.
    致谢
    关于作者
    第1章 项目移植思考1
    1.1 软件程序商业过程1
    1.2 移植过程2
    1.2.1 调查2
    1.2.2 分析3
    1.2.3 移植3
    1.2.4 测试4
    1.2.5 支持4
    1.3 定义项目范围和目标4
    1.4 估计5
    1.4.1 技能水平和移植经验6
    1.4.2 编译器6
    1.4.3 第三方软件和中间件的可用性6
    1.4.4 编译环境和工具7
    1.4.5 平台依赖的结构7
    1.4.6 平台/硬件依赖的代码7
    1.4.7 搭建测试环境8
    1.4.8 用户接口需求8
    1.5 创建项目移植进度表9
    1.6 从商业角度看移植过程10
    1.7 带注解的技术调查问卷样例10
    1.7.1 平台相关的内容10
    1.7.2 应用程序相关的内容11
    1.7.3 数据库内容13
    1.7.4 项目移植时间进度内容14
    1.7.5 测试相关的内容14
    1.7.6 项目移植的执行内容15
    1.8 小结15
    第2章 调查16
    2.1 编译器16
    2.1.1 GNUgccC编译器16
    2.1.2 GNUg++(C++)编译器17
    2.1.3 GNUg77FORTRAN编译器18
    2.1.4 GNUJava编译器19
    2.1.5 GNUCOBOL19
    2.1.6 其他编译器19
    2.2 Java环境19
    2.3 编译环境20
    2.3.1 gmake20
    2.3.2 GNU二进制工具20
    2.3.3 GNUas21
    2.3.4 集成开发环境23
    2.4 LinuxShell23
    2.5 打包 23
    2.5.1 用RPM打包应用程序24
    2.5.2 RPM的基本用法24
    2.5.3 LSB推荐的基准打包格式25
    2.6 项目管理任务25
    2.7 小结26
    第3章 分析28
    3.1 Linux标准28
    3.2 GNUlibc库29
    3.3 GNU科学库30
    3.4 共享库 31
    3.5 库版本化32
    3.5.1 外部库版本化32
    3.5.2 符号版本化34
    3.6 动态链接器(运行时链接器)39
    3.6.1 编程接口40
    3.6.2 延迟重定位42
    3.6.3 初始化和终止化函数43
    3.7 系统调用43
    3.8 大页面支持43
    3.9 NativePOSIX线程库(NPTL)48
    3.10 国际化(I18N)和本地化49
    3.10.1 iconv支持50
    3.10.2 如何创建消息目录53
    3.11 大小端环境54
    3.12 从32位移植到64位55
    3.12.1 常见的移植错误56
    3.12.2 最优方法57
    3.13 小结57
    第4章 移植Solaris应用程序59
    4.1 准备工作59
    4.1.1 搭建移植系统59
    4.1.2 搭建代码修改管理系统59
    4.1.3 搭建编译系统60
    4.2 常见的区别60
    4.2.1 C语言61
    4.2.2 C++语言61
    4.2.3 GNUC/C++语言61
    4.2.4 Java语言61
    4.2.5 线程61
    4.2.6 所支持的标准之间的比较61
    4.3 编译器62
    4.3.1 C编译器63
    4.3.2 C编译器选项63
    4.3.3 C++编译器选项69
    4.3.4 GNUg++的模板实例化76
    4.3.5 编译32位或64位目标文件77
    4.3.6 编译器的优化和性能选项78
    4.3.7 Linux平台上的命名空间选择78
    4.4 链接器79
    4.4.1 输出映射82
    4.4.2 链接器工具82
    4.4.3 共享库82
    4.4.4 库版本化83
    4.4.5 动态链接器83
    4.5 移植shell脚本到Linux83
    4.6 国际化和本地化 84
    4.7 Make85
    4.7.1 为C++语言内建的Makefile变量86
    4.7.2 库依赖86
    4.7.3 空规则86
    4.7.4 当前目标86
    4.7.5 SCCS和RCS文件87
    4.7.6 有条件地给宏赋值87
    4.7.7 模式替换宏的引用87
    4.7.8 VPATH87
    4.7.9 命令执行88
    4.7.10 特殊目标88
    4.7.11 环境变量88
    4.7.12 退出状态89
    4.8 调试器89
    4.9 线程89
    4.9.1 Solarislibthread与Linuxlibpthread89
    4.9.2 Solarislibpthread与Linuxlibpthread91
    4.9.3 取消点94
    4.9.4 C++异常和Linux线程95
    4.10 信号98
    4.10.1 信号动作98
    4.10.2 简单信号99
    4.10.3 Linux的信号支持100
    4.10.4 POSIX信号捕获函数102
    4.10.5 信号集102
    4.10.6 信号信息103
    4.10.7 kill()104
    4.11 系统调用104
    4.11.1 open()104
    4.11.2 fcntl()105
    4.11.3 dirent..107
    4.11.4 CPU亲和性(Affinity)108
    4.11.5 fork()108
    4.12 系统库108
    4.13 Solaris和LinuxAPI108
    4.13.1 内存管理109
    4.13.2 进程间通信(IPC)109
    4.13.3 内存布置优化(MPO)114
    4.13.4 vfstab115
    4.13.5 posix_spawn()和posix_spwawnp()115
    4.13.6 plock()115
    4.13.7 waitpid()115
    4.14 科学库116
    4.15 大页面支持117
    4.16 Solaris上一些不可移植的编程用法117
    4.17 小结117
    第5章 移植AIX应用程序119
    5.1 准备工作119
    5.1.1 搭建移植系统119
    5.1.2 搭建代码修改管理系统119
    5.1.3 搭建编译系统120
    5.2 常见的区别120
    5.2.1 C语言120
    5.2.2 C++语言121
    5.2.3 GNUC/C++语言121
    5.2.4 Java语言121
    5.2.5 线程121
    5.2.6 所支持的标准之间的比较121
    5.3 编译器122
    5.4 Make130
    5.5 链接器131
    5.5.1 链接器的不兼容性131
    5.5.2 链接器:从AIX移植到Linux参考手册 133
    5.6 AIX和Linux创建共享库的比较133
    5.7 动态装载134
    5.8 AIX和Linux上模板实例化的区别135
    5.8.1 使用#pragma或#include135
    5.8.2 GNU中其他可用的模板选项138
    5.9 C++filt工具138
    5.10 系统API:AIX/Linux139
    5.11 部分AIX/Linux系统API之间的比较143
    5.11.1 getfsent().getfsfile().getfstype().getfsspec()144
    5.11.2 ioctl()145
    5.11.3 read().write()146
    5.11.4 confstr()148
    5.11.5 opendir()148
    5.11.6 readdir()149
    5.11.7 fcntl()149
    5.11.8 llseek().lseek().lseek64()153
    5.11.9 uname()154
    5.11.10 syslog().closelog().openlog()154
    5.11.11 swapoff().swapon()155
    5.11.12 acct()156
    5.11.13 mmap().mmap64().munmap()157
    5.11.14 pread().pwrite()159
    5.11.15 stat().lstat().fstat()160
    5.11.16 ptrace()161
    5.11.17 setgid().setregid()163
    5.11.18 sync()163
    5.11.19 wait3().wait4()164
    5.11.20 getcwd()165
    5.11.21 mount().umount().vmount()166
    5.11.22 readv().writev()169
    5.11.23 select()170
    5.11.24 reboot()172
    5.11.25 chroot()173
    5.11.26 fstatfs().statfs()174
    5.11.27 poll()176
    5.11.28 quotactl()177
    5.12 AIX上的一些非标准的编程用法179
    5.13 信号180
    5.13.1 信号动作180
    5.13.2 简单信号180
    5.14 网络编程185
    5.15 进程间通信(IPC)186
    5.15.1 信号量186
    5.15.2 系统V信号量集187
    5.15.3 消息队列188
    5.15.4 共享内存190
    5.16 POSIX线程191
    5.16.1 Linux和AIX的线程模型比较191
    5.16.2 内核空间线程192
    5.16.3 用户空间线程192
    5.16.4 AIX和LinuxPOSIX线程交叉对比192
    5.17 大页面支持195
    5.18 通用API195
    5.19 小结195
    第6章 移植HP-UX应用程序198
    6.1 准备工作198
    6.1.1 搭建移植系统198
    6.1.2 搭建代码修改管理系统198
    6.1.3 搭建编译环境199
    6.2 常见的区别199
    6.2.1 C语言199
    6.2.2 C++语言200
    6.2.3 GNUC/C++语言200
    6.2.4 Java语言200
    6.2.5 线程200
    6.2.6 所支持标准之间的比较200
    6.3 编译器201
    6.3.1 C编译器选项202
    6.3.2 C++编译器选项205
    6.3.3 GNUg++的模板实例化208
    6.3.4 编译32/64位二进制程序 210
    6.3.5 编译器优化和性能选项210
    6.3.6 使用GNU进行移植和编译211
    6.3.7 Linux平台上的命名空间选择212
    6.4 链接器213
    6.4.1 输出映射214
    6.4.2 链接器工具214
    6.5 库版本化214
    6.5.1 HP-UX上的库版本化214
    6.5.2 Linux上的库版本化215
    6.6 动态链接和共享库215
    6.7 移植shell脚本到Linux 216
    6.8 国际化(I18N) 217
    6.9 软件开发工具220
    6.9.1 Makefile语法221
    6.9.2 调试器222
    6.10 线程223
    6.10.1 HP-UX和Linux上的线程支持224
    6.10.2 HP-UXDCE和POSIX线程的区别227
    6.10.3 调试Linux线程228
    6.10.4 C++异常和Linux线程233
    6.10.5 链接线程安全的库239
    6.11 信号239
    6.11.1 信号动作239
    6.11.2 简单信号240
    6.11.3 信号发送241
    6.11.4 Linux的信号支持242
    6.11.5 POSIX信号捕获函数242
    6.11.6 信号信息243
    6.11.7 信号默认动作245
    6.12 HP-UX上的系统调用和Linux上的对应调用246
    6.12.1 检查POSIXAPI支持246
    6.12.2 检查Linux内核版本251
    6.13 系统库251
    6.14 GNU科学库252
    6.15 HP-UX和LinuxAPI253
    6.15.1 glibc版本253
    6.15.2 glibc遵循的标准254
    6.15.3 HP-UX上的一些不可移植的编程用法254
    6.16 进程间通信254
    6.16.1 管道255
    6.16.2 FIFO255
    6.16.3 POSIX消息队列255
    6.16.4 POSIX信号量256
    6.16.5 POSIX共享内存257
    6.16.6 系统V共享内存257
    6.16.7 系统V消息257
    6.16.8 系统V信号量258
    6.17 小结258
    第7章 测试和调试260
    7.1 使用GNU调试器260
    7.1.1 编译可以使用GDB的程序260
    7.1.2 调用GDB261
    7.1.3 GDB基本命令261
    7.1.4 调试多进程262
    7.1.5 调试多线程应用程序263
    7.1.6 停止多线程程序266
    7.1.7 GDB初始化文件267
    7.1.8 GDB和信号267
    7.1.9 GDB的图形化前端269
    7.2 strace和ltrace270
    7.3 cscope工具270
    7.4 glibc调试支持272
    7.5 内存调试工具274
    7.5.1 ElectricFence274
    7.5.2 GNU/Linuxmtrace.mcheck.MALLOC_CHECK275
    7.5.3 Mpatrol276
    7.5.4 dmalloc277
    7.5.5 valgrind277
    7.5.6 RationalPurify278
    7.5.7 Insure++278
    7.6 静态程序检查器279
    7.6.1 Splint279
    7.6.2 CodeSonar279
    7.7 线程跟踪工具279
    7.8 性能监测工具280
    7.8.1 内部视角280
    7.8.2 外部视角286
    7.8.3 其他工具290
    7.9 小结292
    附录A Solaris到Linux参考表293
    附录B AIX到Linux参考表319
    附录C HP-UX到Linux参考表334
    附录D POWER上的Linux384
    附录E gprofhelper387
    附录F IBMzSeries大型机相关的移植问题390
    附录G Solaris到Linux移植:系统管理员指南397

    商品评论(0条)

    暂无评论!

    您的浏览历史

    loading 内容加载中,请稍后...