注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)LinuxUNIX到Linux的移植

UNIX到Linux的移植

UNIX到Linux的移植

定 價(jià):¥49.00

作 者: Alfedo Mendoza,ARTIS WALKER
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: Linux

ISBN: 9787111209119 出版時(shí)間: 2007-03-01 包裝: 膠版紙
開本: 787*1092 1/16 頁數(shù): 450 字?jǐn)?shù):  

內(nèi)容簡介

  本書講述怎樣把UNIX環(huán)境下的應(yīng)用程序移植到Linux環(huán)境上運(yùn)行,是一本綜合的開發(fā)和解決問題的參考手冊 。本書詳細(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)用程序、測試和調(diào)試。.它的讀者對象包括開發(fā)人員、應(yīng)用程序架構(gòu)師以及項(xiàng)目經(jīng)理。越來越多的開發(fā)人員、架構(gòu)師和項(xiàng)目經(jīng)理均面臨著把UNIX上的C、C++和Java應(yīng)用程序移植到Linux上的挑戰(zhàn)。本書可以完整地指導(dǎo)你從當(dāng)今最常用的UNIX平臺(tái)(Solaris、HP-UX,和AIX)上把程序移植到Linux上。本書的三位作者是IBM最有經(jīng)驗(yàn)的Linux移植專家,他們將帶領(lǐng)你走完整個(gè)項(xiàng)目移植過程:調(diào)查﹑分析﹑移植和測試。他們給出了一個(gè)從開始到完成的移植方法,對關(guān)鍵任務(wù)的切實(shí)討論,以及評估新項(xiàng)目時(shí)用到的問卷。按照本書的方法,你可以發(fā)現(xiàn)Linux在API、庫函數(shù)、版本化、系統(tǒng)特性和工具等方面所提供的功能以及對你的項(xiàng)目的影響。另外,作者還詳細(xì)講述了每個(gè)獨(dú)立的UNIX平臺(tái)上特有的問題和最實(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)/庫調(diào)用、線程等。*使用GNU調(diào)試器及Linux內(nèi)存泄露和性能跟蹤工具測試和調(diào)試移植后的應(yīng)用程序。*包含了UNIX和Linux上API、編譯器和鏈接器選項(xiàng)的快速索引,以及IBM POWER結(jié)構(gòu)特有的移植問題。...

作者簡介

  Alfredo(Freddie)Mendoza是IBM“SystemandTechnology”部門“BusinessStrategyandEnablement”組的IT專家.他在應(yīng)用程序結(jié)構(gòu)和管理方面有19年的工作經(jīng)驗(yàn).他現(xiàn)在正與一些獨(dú)立軟件提供商一起把他們的應(yīng)用程序移植到IBM交叉平臺(tái)操作系統(tǒng)上.在此之前,Mendoza先生在IBMGlobalServices的AIX內(nèi)核開發(fā)部門工作,是多個(gè)軟件開發(fā)部門的技術(shù)顧問.Mendoza先生撰寫了以及與人合寫一些關(guān)于線程管理和軟件算法的專利發(fā)明出版物.他是IntroductiontoUtilityComputing的作者,以及發(fā)表在IBMSystemsJournalUtilityComputing刊上的“DesignofanEnablementProcessforOn-DemandApplications”的合作者.ChakaratSkawratananond博士是IBM“BusinessStrategyandEnablement”部門的技術(shù)顧問.他在一些軟件廠商移植應(yīng)用程序到基于IBMPOWER處理器的AIX或Linux上時(shí)提供一些支持.他有10年的UNIX軟件開發(fā)經(jīng)驗(yàn),并且發(fā)表了一些關(guān)于Linux軟件移植和性能調(diào)優(yōu)的文章.他擁有位于奧斯丁的得克薩斯大學(xué)的電子和計(jì)算機(jī)工程博士學(xué)位.ArtisWalker是IBM“BusinessStrategyandEnablement”部門的一個(gè)技術(shù)顧問.他在把軟件廠商的應(yīng)用程序移植到基于IBMPOWER的pSeries服務(wù)器(運(yùn)行AIX或Linux)上時(shí)提供一些幫助.他在MicrosoftWindows和UNIX平臺(tái)(包括AIX和SunSolaris)上有超過15年的經(jīng)驗(yàn).他具有非常豐富的軟件開發(fā)經(jīng)驗(yàn),例如IBMDB2UniversalDatabase(DB2UDB),ORACLE,ODBC,JDBC,C,C,和Java等.他在AIX和DB2的移植和性能調(diào)優(yōu)方面發(fā)表了許多指南和文章.另外,他還是“IBMEmbracesOpenSource”系列文章的發(fā)起者和主要作者,這些文章重點(diǎn)講述了一些開源的解決方案,以及在基于IBMPOWER的AIX和Linux上的可操作性和設(shè)置方法.他擁有位于得克薩斯州圣安東尼奧的圣瑪莉大學(xué)的學(xué)士學(xué)位.譯者介紹張昕,2001年畢業(yè)于清華大學(xué)計(jì)算機(jī)系.由于一直比較喜歡自由開放的開發(fā)環(huán)境,從一開始就迷戀上了Linux.從最初漫天搜索Linux文檔開始,至今不覺已6年有余.雖然閱讀過不少Linux書籍文檔,做過一些Linux應(yīng)用程序和內(nèi)核模塊開發(fā)工作,但仍不敢說“掌握”了Linux,但對應(yīng)用程序的編譯.鏈接和運(yùn)行,以及Linux內(nèi)核的內(nèi)存管理.中斷處理和進(jìn)程調(diào)度等,還是稍有一點(diǎn)兒心得.現(xiàn)供職于摩托羅拉公司,從事GSM通信平臺(tái)的移植(PowerPC架構(gòu)的vxWorks及Linux版本).關(guān)于本書及Linux方面的知識(shí),歡迎本書讀者及廣大Linux愛好者通過譯者的技術(shù)交流網(wǎng)站http

圖書目錄

目錄:
譯者序
序言
致謝
關(guān)于作者
第1章 項(xiàng)目移植思考        1
1.1 軟件程序商業(yè)過程        1
1.2 移植過程        2
1.2.1 調(diào)查        2
1.2.2 分析        3
1.2.3 移植        3
1.2.4 測試        4
1.2.5 支持        4
1.3 定義項(xiàng)目范圍和目標(biāo)        4
1.4 估計(jì)        5
1.4.1 技能水平和移植經(jīng)驗(yàn)        6
1.4.2 編譯器        6
1.4.3 第三方軟件和中間件的可用性        6
1.4.4 編譯環(huán)境和工具        7
1.4.5 平臺(tái)依賴的結(jié)構(gòu)        7
1.4.6 平臺(tái)/硬件依賴的代碼        7
1.4.7 搭建測試環(huán)境        8
1.4.8 用戶接口需求        8
1.5 創(chuàng)建項(xiàng)目移植進(jìn)度表        9
1.6 從商業(yè)角度看移植過程        10
1.7 帶注解的技術(shù)調(diào)查問卷樣例        10
1.7.1 平臺(tái)相關(guān)的內(nèi)容        10
1.7.2 應(yīng)用程序相關(guān)的內(nèi)容        11
1.7.3 數(shù)據(jù)庫內(nèi)容        13
1.7.4 項(xiàng)目移植時(shí)間進(jìn)度內(nèi)容        14
1.7.5 測試相關(guān)的內(nèi)容        14
1.7.6 項(xiàng)目移植的執(zhí)行內(nèi)容        15
1.8 小結(jié)        15
第2章 調(diào)查        16
2.1 編譯器        16
2.1.1 GNU gcc C編譯器        16
2.1.2 GNU g++ (C++)編譯器        17
2.1.3 GNU g77 FORTRAN編譯器        18
2.1.4 GNU Java編譯器        19
2.1.5 GNU COBOL        19
2.1.6 其他編譯器        19
2.2 Java環(huán)境        19
2.3 編譯環(huán)境        20
2.3.1 gmake        20
2.3.2 GNU二進(jìn)制工具        20
2.3.3 GNU as        21
2.3.4 集成開發(fā)環(huán)境        23
2.4 Linux Shell        23
2.5 打包         23
2.5.1 用RPM打包應(yīng)用程序        24
2.5.2 RPM的基本用法        24
2.5.3 LSB推薦的基準(zhǔn)打包格式        25
2.6 項(xiàng)目管理任務(wù)        25
2.7 小結(jié)        26
第3章 分析        28
3.1 Linux標(biāo)準(zhǔn)        28
3.2 GNU libc庫        29
3.3 GNU科學(xué)庫        30
3.4 共享庫         31
3.5 庫版本化        32
3.5.1 外部庫版本化        32
3.5.2 符號版本化        34
3.6 動(dòng)態(tài)鏈接器(運(yùn)行時(shí)鏈接器)        39
3.6.1 編程接口        40
3.6.2 延遲重定位        42
3.6.3 初始化和終止化函數(shù)        43
3.7 系統(tǒng)調(diào)用        43
3.8 大頁面支持        43
3.9 Native POSIX線程庫(NPTL)        48
3.10 國際化(I18N)和本地化        49
3.10.1 iconv支持        50
3.10.2 如何創(chuàng)建消息目錄        53
3.11 大小端環(huán)境        54
3.12 從32位移植到64位        55
3.12.1 常見的移植錯(cuò)誤        56
3.12.2 最優(yōu)方法        57
3.13 小結(jié)        57
第4章 移植Solaris應(yīng)用程序        59
4.1 準(zhǔn)備工作        59
4.1.1 搭建移植系統(tǒng)        59
4.1.2 搭建代碼修改管理系統(tǒng)        59
4.1.3 搭建編譯系統(tǒng)        60
4.2 常見的區(qū)別        60
4.2.1 C語言        61
4.2.2 C++語言        61
4.2.3 GNU C/C++語言        61
4.2.4 Java語言        61
4.2.5 線程        61
4.2.6 所支持的標(biāo)準(zhǔn)之間的比較        61
4.3 編譯器        62
4.3.1 C編譯器        63
4.3.2 C編譯器選項(xiàng)        63
4.3.3 C++編譯器選項(xiàng)        69
4.3.4 GNU g++的模板實(shí)例化        76
4.3.5 編譯32位或64位目標(biāo)文件        77
4.3.6 編譯器的優(yōu)化和性能選項(xiàng)        78
4.3.7 Linux平臺(tái)上的命名空間選擇        78
4.4 鏈接器        79
4.4.1 輸出映射        82
4.4.2 鏈接器工具        82
4.4.3 共享庫        82
4.4.4 庫版本化        83
4.4.5 動(dòng)態(tài)鏈接器        83
4.5 移植shell腳本到Linux        83
4.6 國際化和本地化         84
4.7 Make        85
4.7.1 為C++語言內(nèi)建的Makefile變量        86
4.7.2 庫依賴        86
4.7.3 空規(guī)則        86
4.7.4 當(dāng)前目標(biāo)        86
4.7.5 SCCS和RCS文件        87
4.7.6 有條件地給宏賦值        87
4.7.7 模式替換宏的引用        87
4.7.8 VPATH        87
4.7.9 命令執(zhí)行        88
4.7.10 特殊目標(biāo)        88
4.7.11 環(huán)境變量        88
4.7.12 退出狀態(tài)        89
4.8 調(diào)試器        89
4.9 線程        89
4.9.1 Solaris libthread與Linux libpthread        89
4.9.2 Solaris libpthread與Linux libpthread        91
4.9.3 取消點(diǎn)        94
4.9.4 C++異常和Linux線程        95
4.10 信號        98
4.10.1 信號動(dòng)作        98
4.10.2 簡單信號        99
4.10.3 Linux的信號支持        100
4.10.4 POSIX信號捕獲函數(shù)        102
4.10.5 信號集        102
4.10.6 信號信息        103
4.10.7 kill()        104
4.11 系統(tǒng)調(diào)用        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 系統(tǒng)庫        108
4.13 Solaris和Linux API        108
4.13.1 內(nèi)存管理        109
4.13.2 進(jìn)程間通信(IPC)        109
4.13.3 內(nèi)存布置優(yōu)化(MPO)        114
4.13.4 vfstab        115
4.13.5 posix_spawn()和posix_
spwawnp()        115
4.13.6 plock()        115
4.13.7 waitpid()        115
4.14 科學(xué)庫        116
4.15 大頁面支持        117
4.16 Solaris上一些不可移植的編程用法        117
4.17 小結(jié)        117
第5章 移植AIX應(yīng)用程序        119
5.1 準(zhǔn)備工作        119
5.1.1 搭建移植系統(tǒng)        119
5.1.2 搭建代碼修改管理系統(tǒng)        119
5.1.3 搭建編譯系統(tǒng)        120
5.2 常見的區(qū)別        120
5.2.1 C語言        120
5.2.2 C++語言        121
5.2.3 GNU C/C++語言        121
5.2.4 Java語言        121
5.2.5 線程        121
5.2.6 所支持的標(biāo)準(zhǔn)之間的比較        121
5.3 編譯器        122
5.4 Make        130
5.5 鏈接器        131
5.5.1 鏈接器的不兼容性        131
5.5.2 鏈接器:從AIX移植到Linux
參考手冊         133
5.6 AIX和Linux創(chuàng)建共享庫的比較        133
5.7 動(dòng)態(tài)裝載        134
5.8 AIX和Linux上模板實(shí)例化的區(qū)別        135
5.8.1 使用#pragma或#include        135
5.8.2 GNU中其他可用的模板選項(xiàng)        138
5.9 C++filt工具        138
5.10 系統(tǒng)API:AIX/Linux        139
5.11 部分AIX/Linux系統(tǒng)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上的一些非標(biāo)準(zhǔn)的編程用法        179
5.13 信號        180
5.13.1 信號動(dòng)作        180
5.13.2 簡單信號        180
5.14 網(wǎng)絡(luò)編程        185
5.15 進(jìn)程間通信(IPC)        186
5.15.1 信號量        186
5.15.2 系統(tǒng)V信號量集        187
5.15.3 消息隊(duì)列        188
5.15.4 共享內(nèi)存        190
5.16 POSIX線程        191
5.16.1 Linux和AIX的線程模型比較        191
5.16.2 內(nèi)核空間線程        192
5.16.3 用戶空間線程        192
5.16.4 AIX和Linux POSIX線程
交叉對比        192
5.17 大頁面支持        195
5.18 通用API        195
5.19 小結(jié)        195
第6章 移植HP-UX應(yīng)用程序        198
6.1 準(zhǔn)備工作        198
6.1.1 搭建移植系統(tǒng)        198
6.1.2 搭建代碼修改管理系統(tǒng)        198
6.1.3 搭建編譯環(huán)境        199
6.2 常見的區(qū)別        199
6.2.1 C語言        199
6.2.2 C++語言        200
6.2.3 GNU C/C++語言        200
6.2.4 Java語言        200
6.2.5 線程        200
6.2.6 所支持標(biāo)準(zhǔn)之間的比較        200
6.3 編譯器        201
6.3.1 C編譯器選項(xiàng)        202
6.3.2 C++編譯器選項(xiàng)        205
6.3.3 GNU g++的模板實(shí)例化        208
6.3.4 編譯32/64位二進(jìn)制程序         210
6.3.5 編譯器優(yōu)化和性能選項(xiàng)        210
6.3.6 使用GNU進(jìn)行移植和編譯        211
6.3.7 Linux平臺(tái)上的命名空間選擇        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 動(dòng)態(tài)鏈接和共享庫        215
6.7 移植shell腳本到Linux         216
6.8 國際化(I18N)         217
6.9 軟件開發(fā)工具        220
6.9.1 Makefile語法        221
6.9.2 調(diào)試器        222
6.10 線程        223
6.10.1 HP-UX和Linux上的線程支持        224
6.10.2 HP-UX DCE和POSIX線程的
區(qū)別        227
6.10.3 調(diào)試Linux線程        228
6.10.4 C++異常和Linux線程        233
6.10.5 鏈接線程安全的庫        239
6.11 信號        239
6.11.1 信號動(dòng)作        239
6.11.2 簡單信號        240
6.11.3 信號發(fā)送        241
6.11.4 Linux的信號支持        242
6.11.5 POSIX信號捕獲函數(shù)        242
6.11.6 信號信息        243
6.11.7 信號默認(rèn)動(dòng)作        245
6.12 HP-UX上的系統(tǒng)調(diào)用和Linux上的
對應(yīng)調(diào)用        246
6.12.1 檢查POSIX API支持        246
6.12.2 檢查Linux內(nèi)核版本        251
6.13 系統(tǒng)庫        251
6.14 GNU科學(xué)庫        252
6.15 HP-UX和Linux API        253
6.15.1 glibc版本        253
6.15.2 glibc遵循的標(biāo)準(zhǔn)        254
6.15.3 HP-UX上的一些不可移植的
編程用法        254
6.16 進(jìn)程間通信        254
6.16.1 管道        255
6.16.2 FIFO        255
6.16.3 POSIX消息隊(duì)列        255
6.16.4 POSIX信號量        256
6.16.5 POSIX共享內(nèi)存        257
6.16.6 系統(tǒng)V共享內(nèi)存        257
6.16.7 系統(tǒng)V消息        257
6.16.8 系統(tǒng)V信號量        258
6.17 小結(jié)        258
第7章 測試和調(diào)試        260
7.1 使用GNU調(diào)試器        260
7.1.1 編譯可以使用GDB的程序        260
7.1.2 調(diào)用GDB        261
7.1.3 GDB基本命令        261
7.1.4 調(diào)試多進(jìn)程        262
7.1.5 調(diào)試多線程應(yīng)用程序        263
7.1.6 停止多線程程序        266
7.1.7 GDB初始化文件        267
7.1.8 GDB和信號        267
7.1.9 GDB的圖形化前端        269
7.2 strace和ltrace        270
7.3 cscope工具        270
7.4 glibc調(diào)試支持        272
7.5 內(nèi)存調(diào)試工具        274
7.5.1 Electric Fence        274
7.5.2 GNU/Linux mtrace、mcheck、MALLOC_CHECK        275
7.5.3 Mpatrol        276
7.5.4 dmalloc        277
7.5.5 valgrind        277
7.5.6 Rational Purify        278
7.5.7 Insure++        278
7.6 靜態(tài)程序檢查器        279
7.6.1 Splint        279
7.6.2 CodeSonar        279
7.7 線程跟蹤工具        279
7.8 性能監(jiān)測工具        280
7.8.1 內(nèi)部視角        280
7.8.2 外部視角        286
7.8.3 其他工具        290
7.9 小結(jié)        292
附錄A Solaris到Linux參考表        293
附錄B AIX到Linux參考表        319
附錄C HP-UX到Linux參考表        334
附錄D POWER上的Linux        384
附錄E gprof helper        387
附錄F IBM zSeries大型機(jī)相關(guān)的
移植問題        390
附錄G Solaris到Linux移植:系統(tǒng)
管理員指南        397

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號