注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)科學(xué)理論與基礎(chǔ)知識(shí)鏈接器和加載器

鏈接器和加載器

鏈接器和加載器

定 價(jià):¥79.00

作 者: [美]約翰·R. 萊文(John R. Levine)
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111703723 出版時(shí)間: 2022-04-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 188 字?jǐn)?shù):  

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

  本書講述構(gòu)建程序的關(guān)鍵工具——鏈接器和加載器,內(nèi)容包括鏈接和加載、體系結(jié)構(gòu)、目標(biāo)文件、存儲(chǔ)分配、符號(hào)管理、庫、重定位、加載和覆蓋、共享庫、動(dòng)態(tài)鏈接和加載、動(dòng)態(tài)鏈接的共享庫,以及著眼于成熟的現(xiàn)代鏈接器所做的一些變化;并介紹一個(gè)持續(xù)的實(shí)踐項(xiàng)目,即使用Perl語言開發(fā)一個(gè)可用的小鏈接器。本書適合高校計(jì)算機(jī)相關(guān)專業(yè)的學(xué)生、實(shí)習(xí)程序員、語言設(shè)計(jì)者和開發(fā)人員閱讀參考。

作者簡(jiǎn)介

暫缺《鏈接器和加載器》作者簡(jiǎn)介

圖書目錄

譯者序
前言
第1章 鏈接和加載 1
1.1 鏈接器和加載器做什么 1
1.2 從歷史發(fā)展的角度分析地址綁定 1
1.3 鏈接與加載 3
1.3.1 兩遍鏈接 4
1.3.2 目標(biāo)代碼庫 5
1.3.3 重定位和代碼修改 6
1.4 編譯驅(qū)動(dòng)器 7
1.5 鏈接:一個(gè)真實(shí)的例子 9
1.6 練習(xí) 12
第2章 體系結(jié)構(gòu)相關(guān)問題 13
2.1 應(yīng)用程序二進(jìn)制接口 13
2.2 內(nèi)存地址 13
2.3 地址構(gòu)成規(guī)則 15
2.4 指令格式 15
2.5 過程調(diào)用和可尋址性 16
2.6 數(shù)據(jù)訪問和指令引用 19
2.6.1 IBM 370 19
2.6.2 SPARC 21
2.6.3 Intel x86 23
2.7 分頁和虛擬內(nèi)存 24
2.7.1 程序的地址空間 26
2.7.2 文件映射 27
2.7.3 共享庫和程序 28
2.7.4 位置無關(guān)代碼 28
2.8 Intel 386分段 29
2.9 嵌入式體系結(jié)構(gòu) 31
2.9.1 怪異的地址空間 31
2.9.2 非統(tǒng)一內(nèi)存 31
2.9.3 內(nèi)存對(duì)齊 31
2.10 練習(xí) 32
第3章 目標(biāo)文件 35
3.1 目標(biāo)文件中有什么 35
3.2 空目標(biāo)文件格式:MS-DOS的.COM文件 36
3.3 代碼分段:UNIX的a.out文件 36
3.3.1 a.out文件頭 37
3.3.2 與虛擬內(nèi)存的交互 38
3.4 重定位:MS-DOS的EXE文件 41
3.5 符號(hào)和重定位 43
3.6 可重定位的a.out格式 43
3.6.1 重定位項(xiàng) 44
3.6.2 符號(hào)和字符串 44
3.6.3 a.out格式小結(jié) 45
3.7 UNIX ELF格式 45
3.7.1 可重定位文件 47
3.7.2 ELF可執(zhí)行文件 51
3.7.3 ELF格式小結(jié) 52
3.8 IBM 360目標(biāo)文件格式 52
3.8.1 ESD記錄 53
3.8.2 TXT記錄 54
3.8.3 RLD記錄 54
3.8.4 END記錄 55
3.8.5 小結(jié) 55
3.9 微軟的可移植可執(zhí)行文件格式 55
3.9.1 PE特有區(qū)段 59
3.9.2 運(yùn)行PE可執(zhí)行文件 60
3.9.3 PE和COFF 61
3.9.4 PE文件小結(jié) 61
3.10 Intel/Microsoft的OMF文件格式 61
3.10.1 OMF記錄 62
3.10.2 OMF文件的細(xì)節(jié) 63
3.10.3 OMF格式小結(jié) 65
3.11 不同目標(biāo)文件格式的比較 65
3.12 練習(xí) 66
3.13 項(xiàng)目 66
第4章 存儲(chǔ)空間管理 69
4.1 段和地址 69
4.2 簡(jiǎn)單的存儲(chǔ)布局 69
4.3 多種類型的段 70
4.4 段與頁面的對(duì)齊 72
4.5 公共塊和其他特殊段 72
4.5.1 公共塊 72
4.5.2 C 重復(fù)代碼消除 73
4.5.3 初始化和終結(jié) 75
4.5.4 IBM偽寄存器 76
4.5.5 專用鏈接表 78
4.5.6 x86的存儲(chǔ)分配策略 78
4.6 鏈接器控制腳本 79
4.7 嵌入式系統(tǒng)的存儲(chǔ)分配 81
4.8 實(shí)際使用的存儲(chǔ)分配策略 81
4.8.1 UNIX a.out鏈接器的存儲(chǔ)分配策略 81
4.8.2 ELF文件中的存儲(chǔ)分配策略 82
4.8.3 Windows鏈接器的存儲(chǔ)分配策略 83
4.9 練習(xí) 84
4.10 項(xiàng)目 85
第5章 符號(hào)管理 87
5.1 符號(hào)名綁定和解析 87
5.2 符號(hào)表的格式 87
5.2.1 模塊表 89
5.2.2 全局符號(hào)表 90
5.2.3 符號(hào)解析 91
5.2.4 特殊符號(hào) 91
5.3 名稱修改 92
5.3.1 簡(jiǎn)單的C和Fortran名稱修改 92
5.3.2 C 類型編碼:類型和范圍 93
5.3.3 鏈接時(shí)類型檢查 95
5.4 弱外部符號(hào)和其他類型的符號(hào) 95
5.5 維護(hù)調(diào)試信息 96
5.5.1 行號(hào)信息 96
5.5.2 符號(hào)和變量信息 96
5.5.3 實(shí)際的問題 97
5.6 練習(xí) 98
5.7 項(xiàng)目 98
第6章 庫 99
6.1 庫的目的 99
6.2 庫的格式 99
6.2.1 使用操作系統(tǒng) 99
6.2.2 UNIX和Windows的歸檔文件 100
6.2.3 擴(kuò)展到64位 102
6.2.4 Intel OMF庫文件 102
6.3 創(chuàng)建庫文件 103
6.4 搜索庫文件 104
6.5 性能問題 105
6.6 弱外部符號(hào) 105
6.7 練習(xí) 106
6.8 項(xiàng)目 106
第7章 重定位 109
7.1 硬件和軟件重定位 109
7.2 鏈接時(shí)重定位和加載時(shí)重定位 110
7.3 符號(hào)重定位和段重定位 110
7.4 基本的重定位技術(shù) 111
7.4.1 指令重定位 112
7.4.2 ECOFF段重定位 114
7.4.3 ELF重定位 115
7.4.4 OMF重定位 116
7.5 可重鏈接和可重定位的輸出格式 116
7.6 重定位項(xiàng)的其他格式 117
7.6.1 以鏈表形式組織的引用 117
7.6.2 以位圖形式組織的引用 117
7.6.3 特殊段 117
7.7 特殊情況的重定位 118
7.8 練習(xí) 118
7.9 項(xiàng)目 119
第8章 加載和覆蓋 121
8.1 基本的加載過程 121
8.2 帶重定位的基本加載過程 122
8.3 位置無關(guān)代碼 122
8.3.1 TSS/360的位置無關(guān)代碼 123
8.3.2 為每個(gè)例程建立的指針表 123
8.3.3 目錄表 123
8.3.4 ELF的位置無關(guān)代碼 124
8.3.5 位置無關(guān)代碼的開銷和收益 126
8.4 自舉加載 127
8.5 基于樹狀結(jié)構(gòu)的覆蓋技術(shù) 128
8.5.1 定義覆蓋技術(shù) 129
8.5.2 覆蓋技術(shù)的實(shí)現(xiàn) 131
8.5.3 覆蓋技術(shù)的其他細(xì)節(jié) 132
8.5.4 覆蓋技術(shù)小結(jié) 132
8.6 練習(xí) 13

本目錄推薦

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