注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(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 包裝: 膠版紙
開(kāi)本: 787*1092 1/16 頁(yè)數(shù): 450 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(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)理。越來(lái)越多的開(kāi)發(fā)人員、架構(gòu)師和項(xiàng)目經(jīng)理均面臨著把UNIX上的C、C++和Java應(yīng)用程序移植到Linux上的挑戰(zhàn)。本書(shū)可以完整地指導(dǎo)你從當(dāng)今最常用的UNIX平臺(tái)(Solaris、HP-UX,和AIX)上把程序移植到Linux上。本書(shū)的三位作者是IBM最有經(jīng)驗(yàn)的Linux移植專家,他們將帶領(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在API、庫(kù)函數(shù)、版本化、系統(tǒng)特性和工具等方面所提供的功能以及對(duì)你的項(xiàng)目的影響。另外,作者還詳細(xì)講述了每個(gè)獨(dú)立的UNIX平臺(tái)上特有的問(wèn)題和最實(shí)用的解決方法。..本書(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)用、線程等。*使用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)介

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

圖書(shū)目錄

目錄:
譯者序
序言
致謝
關(guān)于作者
第1章 項(xiàng)目移植思考        1
1.1 軟件程序商業(yè)過(guò)程        1
1.2 移植過(guò)程        2
1.2.1 調(diào)查        2
1.2.2 分析        3
1.2.3 移植        3
1.2.4 測(cè)試        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 搭建測(cè)試環(huán)境        8
1.4.8 用戶接口需求        8
1.5 創(chuàng)建項(xiàng)目移植進(jìn)度表        9
1.6 從商業(yè)角度看移植過(guò)程        10
1.7 帶注解的技術(shù)調(diào)查問(wèn)卷樣例        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ù)庫(kù)內(nèi)容        13
1.7.4 項(xiàng)目移植時(shí)間進(jìn)度內(nèi)容        14
1.7.5 測(cè)試相關(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 集成開(kāi)發(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庫(kù)        29
3.3 GNU科學(xué)庫(kù)        30
3.4 共享庫(kù)         31
3.5 庫(kù)版本化        32
3.5.1 外部庫(kù)版本化        32
3.5.2 符號(hào)版本化        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 大頁(yè)面支持        43
3.9 Native POSIX線程庫(kù)(NPTL)        48
3.10 國(guó)際化(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 常見(jiàn)的移植錯(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 常見(jiàn)的區(qū)別        60
4.2.1 C語(yǔ)言        61
4.2.2 C++語(yǔ)言        61
4.2.3 GNU C/C++語(yǔ)言        61
4.2.4 Java語(yǔ)言        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 共享庫(kù)        82
4.4.4 庫(kù)版本化        83
4.4.5 動(dòng)態(tài)鏈接器        83
4.5 移植shell腳本到Linux        83
4.6 國(guó)際化和本地化         84
4.7 Make        85
4.7.1 為C++語(yǔ)言內(nèi)建的Makefile變量        86
4.7.2 庫(kù)依賴        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 信號(hào)        98
4.10.1 信號(hào)動(dòng)作        98
4.10.2 簡(jiǎn)單信號(hào)        99
4.10.3 Linux的信號(hào)支持        100
4.10.4 POSIX信號(hào)捕獲函數(shù)        102
4.10.5 信號(hào)集        102
4.10.6 信號(hào)信息        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)庫(kù)        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é)庫(kù)        116
4.15 大頁(yè)面支持        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 常見(jiàn)的區(qū)別        120
5.2.1 C語(yǔ)言        120
5.2.2 C++語(yǔ)言        121
5.2.3 GNU C/C++語(yǔ)言        121
5.2.4 Java語(yǔ)言        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
參考手冊(cè)         133
5.6 AIX和Linux創(chuàng)建共享庫(kù)的比較        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 信號(hào)        180
5.13.1 信號(hào)動(dòng)作        180
5.13.2 簡(jiǎn)單信號(hào)        180
5.14 網(wǎng)絡(luò)編程        185
5.15 進(jìn)程間通信(IPC)        186
5.15.1 信號(hào)量        186
5.15.2 系統(tǒng)V信號(hào)量集        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線程
交叉對(duì)比        192
5.17 大頁(yè)面支持        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 常見(jiàn)的區(qū)別        199
6.2.1 C語(yǔ)言        199
6.2.2 C++語(yǔ)言        200
6.2.3 GNU C/C++語(yǔ)言        200
6.2.4 Java語(yǔ)言        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 庫(kù)版本化        214
6.5.1 HP-UX上的庫(kù)版本化        214
6.5.2 Linux上的庫(kù)版本化        215
6.6 動(dòng)態(tài)鏈接和共享庫(kù)        215
6.7 移植shell腳本到Linux         216
6.8 國(guó)際化(I18N)         217
6.9 軟件開(kāi)發(fā)工具        220
6.9.1 Makefile語(yǔ)法        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 鏈接線程安全的庫(kù)        239
6.11 信號(hào)        239
6.11.1 信號(hào)動(dòng)作        239
6.11.2 簡(jiǎn)單信號(hào)        240
6.11.3 信號(hào)發(fā)送        241
6.11.4 Linux的信號(hào)支持        242
6.11.5 POSIX信號(hào)捕獲函數(shù)        242
6.11.6 信號(hào)信息        243
6.11.7 信號(hào)默認(rèn)動(dòng)作        245
6.12 HP-UX上的系統(tǒng)調(diào)用和Linux上的
對(duì)應(yīng)調(diào)用        246
6.12.1 檢查POSIX API支持        246
6.12.2 檢查L(zhǎng)inux內(nèi)核版本        251
6.13 系統(tǒng)庫(kù)        251
6.14 GNU科學(xué)庫(kù)        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信號(hào)量        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信號(hào)量        258
6.17 小結(jié)        258
第7章 測(cè)試和調(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和信號(hào)        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)測(cè)工具        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)的
移植問(wèn)題        390
附錄G Solaris到Linux移植:系統(tǒng)
管理員指南        397

本目錄推薦

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