出版時(shí)間:2007-4 出版社:機(jī)械工業(yè) 作者:門(mén)多薩 頁(yè)數(shù):450 譯者:張昕
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書(shū)講述怎樣把UNIX環(huán)境下的應(yīng)用程序移植到Linux環(huán)境上運(yùn)行,是一本綜合的開(kāi)發(fā)和解決問(wèn)題的參考手冊(cè) 。本書(shū)詳細(xì)描述了當(dāng)前IT行業(yè)中被廣泛應(yīng)用的各種UNIX操作系統(tǒng)間的區(qū)別,其內(nèi)容包括項(xiàng)目移植思考、調(diào)查、分析、移植Solaris應(yīng)用程序、移植AIX應(yīng)用程序、移植HP-UX應(yīng)用程序、測(cè)試和調(diào)試。它的讀者對(duì)象包括開(kāi)發(fā)人員、應(yīng)用程序架構(gòu)師以及項(xiàng)目經(jīng)理。本書(shū)的內(nèi)容包括: 理解Linux環(huán)境: GNU二進(jìn)制工具、Java環(huán)境、shell、打包工具等。 揭示并確定項(xiàng)目的未知因素、可變因素及其他風(fēng)險(xiǎn)。 處理具體平臺(tái)的區(qū)別:標(biāo)準(zhǔn)、編譯器、鏈接器、版本化、系統(tǒng)/庫(kù)調(diào)用、線(xiàn)程等。 使用GNU調(diào)試器及Linux內(nèi)存泄露和性能跟蹤工具測(cè)試和調(diào)試移植后的應(yīng)用程序。 包含了UNIX和Linux上API、編譯器和鏈接器選項(xiàng)的快速索引,以及IBM POWER結(jié)構(gòu)特有的移植問(wèn)題。
作者簡(jiǎn)介
本書(shū)的三位作者是IBM最有經(jīng)驗(yàn)的Linux移植專(zhuān)家,他們將帶領(lǐng)你走完整個(gè)項(xiàng)目移植過(guò)程:調(diào)查﹑分析﹑移植和測(cè)試。他們給出了一個(gè)從開(kāi)始到完成的移植方法,對(duì)關(guān)鍵任務(wù)的切實(shí)討論,以及評(píng)估新項(xiàng)目時(shí)用到的問(wèn)卷。按照本書(shū)的方法,你可以發(fā)現(xiàn)Linux在A(yíng)PI、庫(kù)函數(shù)、版本化、系統(tǒng)特性和
書(shū)籍目錄
1 移植項(xiàng)目思考 191.1 軟件程序商業(yè)過(guò)程 191.2 移植過(guò)程 201.2.1 調(diào)查 201.2.2 分析 211.2.3 移植 211.2.4 測(cè)試 221.2.5 支持 221.3 定義項(xiàng)目范圍和目標(biāo) 221.4 估計(jì) 241.4.1 技能水平和移植經(jīng)驗(yàn) 241.4.2 編譯器 251.4.3 第三方軟件和中間件的可用性 251.4.4 編譯環(huán)境和工具 251.4.5 平臺(tái)依賴(lài)的結(jié)構(gòu) 261.4.6 平臺(tái)/硬件依賴(lài)的代碼 261.4.7 搭建測(cè)試環(huán)境 261.4.8 用戶(hù)接口需求 271.5 創(chuàng)建項(xiàng)目移植進(jìn)度表 281.6 從商業(yè)角度看移植過(guò)程 281.7 帶注解的技術(shù)調(diào)查問(wèn)卷樣例 291.7.1 平臺(tái)相關(guān)的內(nèi)容 291.7.2 應(yīng)用程序相關(guān)的內(nèi)容 291.7.3 數(shù)據(jù)庫(kù)內(nèi)容 311.7.4 項(xiàng)目移植時(shí)間進(jìn)度內(nèi)容 321.7.5 測(cè)試相關(guān)的內(nèi)容 321.7.6 項(xiàng)目移植的執(zhí)行內(nèi)容 331.8 小結(jié) 332 調(diào)查 342.1 編譯器 342.1.1 GNU gcc C編譯器 342.1.2 GNU g++ (C++)編譯器 352.1.3 GNU g77 FORTRAN編譯器 362.1.4 GNU Java編譯器(注釋8) 372.1.5 GNU COBOL 372.1.6 其他編譯器 372.2 Java環(huán)境 382.3 編譯環(huán)境 382.3.1 gmake 382.3.2 GNU二進(jìn)制工具(binutils) 392.3.2.1 GNU ld 392.3.3 GNU as 392.3.4 集成開(kāi)發(fā)環(huán)境 412.4 Linux Shell 412.5 打包 422.5.1 用RPM打包應(yīng)用程序 422.5.2 RPM的基本用法 432.5.2.1 rpm -i 432.5.2.2 rpm -e 432.5.2.3 rpm -U 442.5.2.4 rpm -q 442.5.2.5 rpm -V 442.5.3 LSB(Linux Standard Base)推薦的基準(zhǔn)打包格式 442.6 項(xiàng)目管理任務(wù) 442.7 小結(jié) 463 分析 473.1 Linux標(biāo)準(zhǔn) 473.2 GNU libc庫(kù) 483.2.1 glibc遵循的標(biāo)準(zhǔn) 493.3 GNU科學(xué)庫(kù) 503.4 共享庫(kù) 513.5 庫(kù)版本化(注釋8,9) 513.5.1 外部庫(kù)版本化 513.5.2 符號(hào)版本化 533.6 動(dòng)態(tài)鏈接器(運(yùn)行時(shí)鏈接器) 563.6.1 編程接口 573.6.2 延遲重定位(Lazy Relocation) 573.6.3 初始化(initializing)和終止化(finalizing)函數(shù) 583.7 系統(tǒng)調(diào)用 583.8 大頁(yè)面支持 593.9 Native POSIX線(xiàn)程庫(kù)(Native POSIX Threads Library,簡(jiǎn)寫(xiě)作NPTL) 603.9.1 最大線(xiàn)程數(shù) 613.10 國(guó)際化(I18N)(注釋18)和本地化 613.10.1 iconv支持 633.10.2 如何創(chuàng)建消息目錄(message catalog)(注釋19) 633.11 大小端(Big/Little-Endian,也叫字節(jié)序)環(huán)境 643.12 從32位移植到64位 653.12.1 常見(jiàn)的移植錯(cuò)誤 663.12.2 最優(yōu)方法 673.13 小結(jié) 674 移植Solaris應(yīng)用程序 684.1 準(zhǔn)備工作 684.1.1 搭建移植系統(tǒng) 684.1.2 搭建代碼修改管理系統(tǒng) 694.1.3 搭建編譯系統(tǒng) 694.2 常見(jiàn)的區(qū)別 694.2.1 C語(yǔ)言 704.2.2 C++語(yǔ)言 704.2.3 GNU C/C++語(yǔ)言 704.2.4 Java語(yǔ)言 714.2.5 線(xiàn)程 714.2.6 所支持的標(biāo)準(zhǔn)之間的比較 714.3 編譯器 724.3.1 C編譯器 724.3.2 C編譯器選項(xiàng) 724.3.3 C++編譯器選項(xiàng) 824.3.4 GNU g++的模板實(shí)例化 924.3.5 編譯32位或64位目標(biāo)文件 924.3.6 編譯器的優(yōu)化和性能選項(xiàng) 924.3.7 Linux平臺(tái)上的命名空間選擇 934.4 鏈接器 944.4.1 輸出映射 994.4.2 鏈接器工具 994.4.3 共享庫(kù) 1004.4.4 庫(kù)版本化 1004.4.5 動(dòng)態(tài)鏈接器(運(yùn)行時(shí)鏈接器) 1014.5 移植shell腳本到Linux 1014.6 國(guó)際化和本地化 1024.7 Make 1024.7.1 為C++語(yǔ)言?xún)?nèi)建的Makefile變量 1044.7.2 庫(kù)依賴(lài) 1044.7.3 空規(guī)則 1044.7.4 當(dāng)前目標(biāo) 1044.7.5 SCCS和RCS文件 1054.7.6 有條件地給宏賦值 1054.7.7 模式替換宏的引用 1054.7.8 VPATH 1054.7.9 命令執(zhí)行 1064.7.10 特殊目標(biāo) 1064.7.11 環(huán)境變量 1074.7.12 退出狀態(tài) 1074.8 調(diào)試器 1084.9 線(xiàn)程 1084.9.1 Solaris libthread與Linux libpthread 1084.9.2 Solaris libpthread與Linux libpthread 1104.9.3 取消點(diǎn)(Cancellation Points) 1134.9.4 C++異常和Linux線(xiàn)程 1144.10 信號(hào) 1154.10.1 信號(hào)動(dòng)作(Actions) 1164.10.2 簡(jiǎn)單信號(hào) 1164.10.3 Linux的信號(hào)支持 1174.10.4 POSIX信號(hào)捕獲函數(shù) 1194.10.5 信號(hào)集 1204.10.6 信號(hào)信息 1204.10.7 kill() 1224.11 系統(tǒng)調(diào)用 1224.11.1 open() 1224.11.2 fcntl() 1244.11.3 dirent 1264.11.4 CPU親和性(Affinity) 1274.11.5 fork() 1274.12 系統(tǒng)庫(kù) 1274.13 Solaris和Linux API 1284.13.1 內(nèi)存管理 1284.13.2 進(jìn)程間通信(Interprocess Communication, IPC) 1294.13.3 內(nèi)存布置優(yōu)化(Memory Placement Optimization, 簡(jiǎn)寫(xiě)作MPO) 1344.13.4 vfstab 1344.13.5 posix_spawn()和posix_spwawnp() 1344.13.6 plock() 1354.13.7 waitpid() 1354.14 科學(xué)庫(kù) 1364.15 大頁(yè)面支持 1364.16 Solaris上的一些不可移植的編程用法 1374.17 小結(jié) 1375 移植AIX應(yīng)用程序 1395.1 準(zhǔn)本工作 1395.1.1 搭建移植系統(tǒng) 1395.1.2 搭建代碼修改管理系統(tǒng) 1405.1.3 搭建編譯系統(tǒng) 1405.2 常見(jiàn)的區(qū)別 1405.2.1 C語(yǔ)言 1415.2.2 C++語(yǔ)言 1415.2.3 GNU C/C++語(yǔ)言 1415.2.4 Java語(yǔ)言 1415.2.5 線(xiàn)程 1415.2.6 所支持的標(biāo)準(zhǔn)之間的比較 1425.3 編譯器 1435.3.1 調(diào)用編譯器 1445.4 Make 1535.4.1 gmake條件分支語(yǔ)句 1545.5 鏈接器 1545.5.1 鏈接器的不兼容性 1545.5.2 鏈接器:從AIX移植到Linux參考手冊(cè) 1565.6 AIX和Linux創(chuàng)建共享庫(kù)的比較 1575.7 動(dòng)態(tài)裝載 1575.8 AIX和Linux上模板實(shí)例化的區(qū)別 1585.8.1 使用#pragma或#include 1595.8.2 GNU中其他可用的模板選項(xiàng) 1605.9 C++filt工具 1605.10 系統(tǒng)API:AIX/Linux 1615.10.1 AIX/Linux I/O系統(tǒng)API 1615.11 部分AIX/Linux系統(tǒng)API之間的比較 1675.11.1 getfsent(), getfsfile(), getfstype(), getfsspec() 1675.11.2 ioctl() 1685.11.3 read(),write() 1695.11.4 confstr() 1715.11.5 opendir() 1715.11.6 readdir() 1725.11.7 fcntl() 1725.11.8 llseek(), lseek(), lseek64() 1775.11.9 uname() 1785.11.10 syslog(), closelog(), openlog() 1795.11.11 swapoff(), swapon() 1795.11.12 acct() 1805.11.13 mmap(), mmap64()(注釋17), munmap() 1815.11.14 pread(),pwrite() 1845.11.15 stat(), lstat(), fstat() 1855.11.16 ptrace() 1855.11.17 setgid(), setregid() 1875.11.18 sync() 1885.11.19 wait3(), wait4() 1895.11.20 getcwd() 1905.11.21 mount(), umount, vmount() 1915.11.22 readv(), writev() 1945.11.23 select() 1955.11.24 reboot() 1965.11.25 chroot() 1985.11.26 fstatfs(),statfs() 1995.11.27 poll() 2005.11.28 quotactl() 2015.12 AIX上的一些非標(biāo)準(zhǔn)的編程用法 2045.13 信號(hào) 2055.13.1 信號(hào)動(dòng)作 2055.13.2 簡(jiǎn)單信號(hào) 2055.14 網(wǎng)絡(luò)編程 2105.15 進(jìn)程間通信(Interprocess Communication,簡(jiǎn)寫(xiě)作IPC) 2115.15.1 信號(hào)量 2115.15.2 系統(tǒng)V信號(hào)量集 2135.15.3 消息隊(duì)列(mqueue.h) 2135.15.4 共享內(nèi)存 2155.16 POSIX線(xiàn)程 2175.16.1 Linux和AIX的線(xiàn)程模型比較 2175.16.2 內(nèi)核空間線(xiàn)程 2175.16.3 用戶(hù)空間線(xiàn)程 2185.16.4 AIX和Linux POSIX線(xiàn)程交叉對(duì)比 2185.17 大頁(yè)面支持 2215.18 通用API 2215.19 小結(jié) 2226 移植HP-UX應(yīng)用程序 2246.1 準(zhǔn)備工作 2246.1.1 搭建移植系統(tǒng) 2246.1.2 搭建代碼修改管理系統(tǒng) 2256.1.3 搭建編譯環(huán)境 2256.2 常見(jiàn)的區(qū)別 2256.2.1 C語(yǔ)言 2266.2.2 C++語(yǔ)言 2266.2.3 GNU C/C++語(yǔ)言 2266.2.4 Java語(yǔ)言 2266.2.5 線(xiàn)程 2266.2.6 所支持標(biāo)準(zhǔn)之間的比較 2276.3 編譯器 2286.3.1 C編譯器選項(xiàng) 2296.3.2 C++編譯器選項(xiàng) 2326.3.3 GNU g++的模板實(shí)例化 2356.3.4 編譯32/64位二進(jìn)制程序 2366.3.5 編譯器優(yōu)化和性能選項(xiàng) 2366.3.6 使用GNU進(jìn)行移植和編譯 2386.3.7 Linux平臺(tái)上的命名空間選擇 2386.4 鏈接器(注釋21) 2396.4.1 輸出映射(export map) 2406.4.2 鏈接器工具 2406.5 庫(kù)版本化 2416.5.1 HP-UX上的庫(kù)版本化 2416.5.2 Linux上的庫(kù)版本化(注釋24) 2426.6 動(dòng)態(tài)鏈接和共享庫(kù) 2426.6.1 GNU libtool 2446.7 移植shell腳本到Linux 2446.8 國(guó)際化(I18N)(注釋26) 2456.8.1 iconv支持和消息目錄(message catalog) 2476.9 軟件開(kāi)發(fā)工具 2476.9.1 Makefile語(yǔ)法 2486.9.2 調(diào)試器 2506.10 線(xiàn)程 2506.10.1 HP-UX和Linux上的線(xiàn)程支持 2516.10.2 HP-UX DCE和POSIX線(xiàn)程的區(qū)別 2546.10.3 調(diào)試Linux線(xiàn)程 2566.10.4 C++異常和Linux線(xiàn)程 2586.10.5 鏈接線(xiàn)程安全的庫(kù) 2606.11 信號(hào) 2606.11.1 信號(hào)動(dòng)作(Acitions) 2606.11.2 簡(jiǎn)單信號(hào) 2616.11.3 信號(hào)發(fā)送 2626.11.4 Linux的信號(hào)支持 2626.11.5 POSIX信號(hào)捕獲函數(shù) 2636.11.6 信號(hào)信息 2636.11.7 信號(hào)缺省動(dòng)作 2656.12 HP-UX上的系統(tǒng)調(diào)用和Linux上的對(duì)應(yīng)調(diào)用 2676.12.1 檢查POSIX API支持 2676.12.2 檢查L(zhǎng)inux內(nèi)核版本 2716.13 系統(tǒng)庫(kù) 2726.14 GNU科學(xué)庫(kù) 2736.15 HP-UX和Linux API 2746.15.1 glibc版本 2746.15.2 glibc遵循的標(biāo)準(zhǔn) 2746.15.3 HP-UX上的一些不可移植的編程用法 2756.16 進(jìn)程間通信 2756.16.1 管道 2756.16.2 FIFO 2766.16.3 POSIX消息隊(duì)列 2766.16.4 POSIX信號(hào)量 2776.16.5 POSIX共享內(nèi)存 2786.16.6 系統(tǒng)V共享內(nèi)存 2786.16.7 系統(tǒng)V消息 2796.16.8 系統(tǒng)V信號(hào)量 2796.17 小結(jié) 2807 測(cè)試和調(diào)試 2817.1 使用GNU調(diào)試器 2827.1.1 編譯可以使用GDB的程序 2827.1.2 調(diào)用GDB 2827.1.3 GDB基本命令 2837.1.4 調(diào)試多進(jìn)程 2837.1.5 調(diào)試多線(xiàn)程應(yīng)用程序 2847.1.6 停止多線(xiàn)程程序 2857.1.7 GDB初始化文件 2867.1.8 GDB和信號(hào) 2867.1.9 GDB的圖形化前端(front end) 2887.2 strace和ltrace 2887.3 cscope工具 2887.3.1 Vim和cscope 2897.4 glibc調(diào)試支持 2907.5 內(nèi)存調(diào)試工具 2917.5.1 Electric Fence 2917.5.2 GNU/Linux mtrace, mcheck, MALLOC_CHECK 2927.5.3 Mpatrol 2927.5.4 dmalloc 2927.5.5 valgrind 2937.5.6 Rational Purefy 2937.5.7 Insure++ 2947.6 靜態(tài)程序檢查器 2947.6.1 Splint 2947.6.2 CodeSonar 2947.7 線(xiàn)程跟蹤工具 2957.8 性能監(jiān)測(cè)工具 2957.8.1 內(nèi)部視角 2957.8.2 外部視角 2997.8.3 其他工具 3027.9 小結(jié) 303F.3 編譯和鏈接 414《表F-3》670 控制和優(yōu)化棧增長(zhǎng)的編譯器選項(xiàng) 415F.3.2 匯編代碼 415F.3.3 ??蚣芙Y(jié)構(gòu)和鏈接 415F.3.4 預(yù)先定義的符號(hào) 416F.3.5 調(diào)試 416F.4 字節(jié)序 416F.5 其他區(qū)別 416F.5.1 ASCII和EBCDIC問(wèn)題 416F.5.2 cpuinfo的格式 417F.6 變參列表 417F.7 從哪兒可以獲取更多信息 417F.8 致謝 417G.1 打包任務(wù) 418G.2 安裝和升級(jí)任務(wù) 418G.3 用戶(hù)管理任務(wù) 420G.4 網(wǎng)絡(luò)管理和配置 420G.5 NFS管理和配置 421G.6 管理系統(tǒng)資源 422G.7 磁盤(pán)和文件系統(tǒng)管理 422G.8 交換分區(qū)管理 423G.9 邏輯卷管理 423G.10 常用的解決錯(cuò)誤的方法 425G.11 網(wǎng)絡(luò)問(wèn)題解決方法 427G.12 配置文件及其他文件 427G.13 可比較的命令 428
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版