商品簡介
本書講述構建程序的關鍵工具——鏈接器和加載器,內容包括鏈接和加載、體系結構、目標文件、存儲分配、符號管理、庫、重定位、加載和覆蓋、共享庫、動態鏈接和加載、動態鏈接的共享庫,以及著眼于成熟的現代鏈接器所做的一些變化;并介紹一個持續的實踐項目,即使用Perl語言開發一個可用的小鏈接器。
本書適合高校計算機相關專業的學生、實習程序員、語言設計者和開發人員閱讀參考。
作者簡介:
萊文(John R.Levine)是很多書籍的作者或合作者,包括Lex & Yacc(O'Reilly),Programming for Graphics Files in C and C++(Wiley),以及7-heIntemetforDummies(IDG)。他還是Journal of C Language Translation的榮譽退休發行人、comp.compilers新聞組的長期仲裁人員,以及某個最早的商用Fortran 77編譯器的創建考。他在耶魯大學獲得了計算機科學的博士學位。
作者簡介
萊文(John R.Levine)是很多書籍的作者或合作者,包括Lex & Yacc(O'Reilly),Programming for Graphics Files in C and C++(Wiley),以及The Internet for Dummies(IDG)。他還是Journal of C Language Translation的榮譽退休發行人、comp.compilers新聞組的長期仲裁人員,以及某個最早的商用Fortran 77編譯器的創建考。他在耶魯大學獲得了計算機科學的博士學位。
目次
第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.8 Intel 386分段
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.7 UNIX的ELF格式
3.8 IBM 360目標格式
3.9 微軟可移植、可執行體格式
3.10 Intel/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章 庫
……
第7章 重定位
第8章 加載和覆蓋
第9章 共享庫
第10章 動態鏈接和加載
第11章 高級技術
參考文獻