《連結器和載入器》

《連結器和載入器》由北京航空航天大學出版社出版,適合高校計算機相關專業的學生、實習程式設計師、語言設計者和開發人員閱讀參考。

基本信息

內容簡介

封面封面
本書講述構建程式的關鍵工具——連結器載入器,內容包括連結和載入、體系結構、目標檔案、存儲分配、符號管理、庫、重定位、載入和覆蓋、共享庫、動態連結和載入、動態連結的共享庫,以及著眼於成熟的現代連結器所做的一些變化;並介紹一個持續的實踐項目,即使用Perl語言開發一個可用的小連結器。

首先通過實例深入淺出地闡述了在不同的編譯器和作業系統中連結和載入過程的差異。在這個基礎上,作者提出了清晰實用的忠告,來幫助讀者創建更快、更清晰的代碼。讀者將會學習如何規避和WindowsDLL相關的陷阱,充分利用UNIXELF庫模式等。如果讀者對程式設計抱有非常認真的態度,那么可以通過這本書充分地理解這個領域內最難懂的主題之一。本書對於編譯器作業系統課程同樣也是一本理想的補充讀物。

圖書特點

覆蓋了Windows,UNIX,Linux,BeOS和其它作業系統的動態連結過程。
解釋了Java連結模式,以及它是如何套用在網路小應用程式和可擴展Java代碼中的。
幫助讀者編寫更優雅、更高效的代碼,以及構建能夠被更加高效地編譯、加裁和運行的應用程式。
包含了一個用Perl構建連結器的練習項目,項目檔案可以從網路下載得到。

作者簡介

本書由萊文著,李勇譯。

萊文(JohnR.Levine),是很多書籍的作者或合作者,包括Lex&Yacc(oreilly),ProgrammingforGraphicsFilesinCandC++(Wiley),以及7-heIntemetforDummies(IDG)。他還是JournalofCLanguageTranslation的榮譽退休發行人、comp.compilers新聞組的長期仲裁人員,以及某個最早的商用Fortran77編譯器的創建者。他在耶魯大學獲得了計算機科學的博士學位。

圖書目錄

第1章連結和載入
1.1連結器和載入器做什麼?
1.2地址綁定:從歷史的角度
1.3連結與載入
1.4編譯器驅動
1.5連結:一個真實的例子
練習
第2章體系結構的問題
2.1應用程式二進制接口
2.2記憶體地址
2.3地址構成
2.4指令格式
2.5過程調用和定址能力
2.6數據和指令引用
2.7分頁和虛擬記憶體
2.8Intel386分段
2.9嵌入式體系結構
練習
第3章目標檔案
3.1目標檔案中都有什麼?
3.2空目標檔案格式:MS-DOS的COM檔案
3.3代碼區段:UNIX的a.out檔案
3.4重定位:MS-DOS的EXE檔案
3.5符號和重定位
3.6可重定位的a.out格式
3.7UNIX的ELF格式
3.8IBM360目標格式
3.9微軟可移植、可執行體格式
3.10Intel/Microsoft的OMF檔案格式
3.11不同目標格式的比較
練習
項目
第4章存儲空間分配
4.1段和地址
4.2簡單的存儲布局
4.3多種段類型
4.4段與頁面的對齊
4.5公共塊和其他特殊段
4.6連結器控制腳本
4.7實際中的存儲分配
練習
項目
第5章符號管理
5.1綁定和名字解析
5.2符號表格式
5.3名稱修改
5.4弱外部符號和其他類型符號
5.5維護調試信息
練習
項目
第6章庫
6.1庫的目的
6.2庫的格式
6.3建立庫檔案
6.4搜尋庫檔案
6.5性能問題
6.6弱外部符號
練習
項目
第7章重定位
7.1硬體和軟體重定位
7.2連結時重定位和載入時重定位
7.3符號和段重定位
7.4基本的重定位技術
7.5可重連結和重定位的輸出格式
7.6其他重定位格式
7.7特殊情況的重定位
練習
項目
第8章載入和覆蓋
8.1基本載入
8.2帶重定位的基本載入
8.3位置無關代碼
8.4自舉載入
8.5樹狀結構的覆蓋
練習
項目
第9章共享庫
9.1綁定時間
9.2實際的共享庫
9.3地址空間管理
9.4共享庫的結構
9.5創建共享庫
9.6使用共享庫連結
9.7使用共享庫運行
9.8mallochack和其他共享庫問題
練習
項目
第10章動態連結和載入
10.1ELF動態連結
10.2ELF檔案內容
10.3載入一個動態連結程式
10.4使用PLT的惰性過程連結
10.5動態連結的其他特性
10.6運行時的動態連結
10.7微軟動態程式庫
10.8OSF/1偽靜態共享庫
10.9讓共享庫快一些
10.10幾種動態連結方法的比較
練習
項目
第11章高級技術
11.1C++的技術
11.2增量連結和重新連結
11.3連結時的垃圾收集
11.4連結時最佳化
11.5連結時代碼生成
11.6Java連結模型
練習
項目
參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們