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

UNIX到Linux的移植

UNIX到Linux的移植

定 價:¥49.00

作 者: Alfedo Mendoza,ARTIS WALKER
出版社: 機械工業(yè)出版社
叢編項:
標 簽: Linux

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

目錄:
譯者序
序言
致謝
關(guān)于作者
第1章 項目移植思考        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 定義項目范圍和目標        4
1.4 估計        5
1.4.1 技能水平和移植經(jīng)驗        6
1.4.2 編譯器        6
1.4.3 第三方軟件和中間件的可用性        6
1.4.4 編譯環(huán)境和工具        7
1.4.5 平臺依賴的結(jié)構(gòu)        7
1.4.6 平臺/硬件依賴的代碼        7
1.4.7 搭建測試環(huán)境        8
1.4.8 用戶接口需求        8
1.5 創(chuàng)建項目移植進度表        9
1.6 從商業(yè)角度看移植過程        10
1.7 帶注解的技術(shù)調(diào)查問卷樣例        10
1.7.1 平臺相關(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 項目移植時間進度內(nèi)容        14
1.7.5 測試相關(guān)的內(nèi)容        14
1.7.6 項目移植的執(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二進制工具        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推薦的基準打包格式        25
2.6 項目管理任務(wù)        25
2.7 小結(jié)        26
第3章 分析        28
3.1 Linux標準        28
3.2 GNU libc庫        29
3.3 GNU科學庫        30
3.4 共享庫         31
3.5 庫版本化        32
3.5.1 外部庫版本化        32
3.5.2 符號版本化        34
3.6 動態(tài)鏈接器(運行時鏈接器)        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 常見的移植錯誤        56
3.12.2 最優(yōu)方法        57
3.13 小結(jié)        57
第4章 移植Solaris應(yīng)用程序        59
4.1 準備工作        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 所支持的標準之間的比較        61
4.3 編譯器        62
4.3.1 C編譯器        63
4.3.2 C編譯器選項        63
4.3.3 C++編譯器選項        69
4.3.4 GNU g++的模板實例化        76
4.3.5 編譯32位或64位目標文件        77
4.3.6 編譯器的優(yōu)化和性能選項        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 動態(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 當前目標        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 特殊目標        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 取消點        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信號捕獲函數(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 進程間通信(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 科學庫        116
4.15 大頁面支持        117
4.16 Solaris上一些不可移植的編程用法        117
4.17 小結(jié)        117
第5章 移植AIX應(yīng)用程序        119
5.1 準備工作        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 所支持的標準之間的比較        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 動態(tài)裝載        134
5.8 AIX和Linux上模板實例化的區(qū)別        135
5.8.1 使用#pragma或#include        135
5.8.2 GNU中其他可用的模板選項        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上的一些非標準的編程用法        179
5.13 信號        180
5.13.1 信號動作        180
5.13.2 簡單信號        180
5.14 網(wǎng)絡(luò)編程        185
5.15 進程間通信(IPC)        186
5.15.1 信號量        186
5.15.2 系統(tǒng)V信號量集        187
5.15.3 消息隊列        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 準備工作        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 所支持標準之間的比較        200
6.3 編譯器        201
6.3.1 C編譯器選項        202
6.3.2 C++編譯器選項        205
6.3.3 GNU g++的模板實例化        208
6.3.4 編譯32/64位二進制程序         210
6.3.5 編譯器優(yōu)化和性能選項        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 動態(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 信號動作        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 信號默認動作        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科學庫        252
6.15 HP-UX和Linux API        253
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 FIFO        255
6.16.3 POSIX消息隊列        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)試多進程        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大型機相關(guān)的
移植問題        390
附錄G Solaris到Linux移植:系統(tǒng)
管理員指南        397

本目錄推薦

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