作 者:俞甲子,石凡,潘愛國 著
定 價:99
出 版 社:電子工業出版社
出版日期:2009年04月01日
頁 數:492
裝 幀:平裝
ISBN:9787121085116
"√ 每個技術專題都配備大量圖、表和代碼實例,力求將復雜的機制以簡潔的形式表達出來。√ 提供了一個小巧且跨平臺的C/C++運行庫MiniCRT,綜合展示了與運行庫相關的各種技術。√ 能將程序的編譯和運行過程所涉及的各種技術全面地串連起來介紹的,至今尚未有先例。√ 覆蓋Windows和Linux兩個平臺,詳述應用程序在編譯、鏈接和運行時所發生的各種事項。√ 學習研究他人的代碼是枯燥而耗時的,先行者的經驗能避免重復勞動,直指經驗和關鍵。√ 學會編程“易筋經”,等
●第1部分簡介
第1章溫故而知新
1.1從HelloWorld說起
1.2萬變不離其宗
1.3站得高,望得遠
1.4操作繫統做什麼
1.4.1不要讓CPU打噸
1.4.2設備驅動
1.5內存不夠怎麼辦
1.5.1關於隔離
1.5.2分段(Segmentation)
1.5.3分頁(Paging)
1.6眾人拾柴火焰高
1.6.1線程基礎
1.6.2線程安全
1.6.3多線程內部情況
1.7本章小結
第2部分靜態鏈接
第2章編譯和鏈接
2.1被隱藏了的過程
2.1.1預編譯
2.1.2編譯
2.1.3彙編
2.1.4鏈接
2.2編譯器做了什麼
2.2.1詞法分析
2.2.2語法分析
2.2.3語義分析
2.2.4中間語言生成
2.2.5目標代碼生成與優化
2.3鏈接器年齡比編譯器長
2.4模塊拼裝——靜態鏈接
2.5本章小結
第3章目標文件裡有什麼
3.1目標文件的格式
3.2目標文件是什麼樣的
3.3挖掘SimpleSection
3.3.1代碼段
3.3.2數據段和隻讀數據段
3.3.3BSS段
3.3.4其他段
3.4ELF文件結構描述
3.4.1文件頭
3.4.2段表
3.4.3重定位表
3.4.4字符串表
3.5鏈接的接口——符號
3.5.1ELF符號表結構
3.5.2特殊符號
3.5.3符號修飾與函數簽名
3.5.4extern“C”
3.5.5弱符號與強符號
3.6調試信息
3.7本章小結
第4章靜態鏈接
4.1空間與地址分配
4.1.1按序疊加
4.1.2相似段合並
4.1.3符號地址的確定
4.2符號解析與重定位
4.2.1重定位
4.2.2重定位表
4.2.3符號解析
……
第5章WindowsPE/COFF
第3部分裝載與動態鏈接
第6章可執行文件的裝載與進程
第7章動態鏈接
第8章Linux共享庫的組織
第9章Windows下的動態鏈接
第4部分庫與運行庫
第10章內存
第11章運行庫
第12章繫統調用與API
第13章運行庫實現
附錄A
索引
本書主要介紹繫統軟件的運行機制和原理,涉及在Windows和Linux兩個繫統平臺上,一個應用程序在編譯、鏈接和運行時刻所發生的各種事項,包括:代碼指令是如何保存的,庫文件如何與應用程序代碼靜態鏈接,應用程序如何被裝載到內存中並開始運行,動態鏈接如何實現,C/C++運行庫的工作原理,以及操作繫統提供的繫統服務是如何被調用的。每個技術專題都配備了大量圖、表和代碼實例,力求將復雜的機制以簡潔的形式表達出來。本書最後還提供了一個小巧且跨平臺的C/C++運行庫MiniCRT,綜合展示了與運行庫相關的各種技術。本書對裝載、鏈接和庫進行了深入淺出的剖析,並且輔以大量的例子和圖表,可以作為計算機軟件專業和其他相關專業大學本科高年級學生深入學習繫統軟件的參考書。同時,還可作為各行業從事軟件開發的工程師、研究人員以及其他對繫統軟件實現機制和技術感興趣者的自學教材。