程序員的自我修養(yǎng)是一本軟件開發(fā)技術(shù)詳解手冊,由潘愛民、俞甲子和石凡三人共同編著。本書是一本深人闡述鏈接、裝載和庫等問題的出色圖書,從大處著眼,小處著手,以通俗易懂的語言,深入淺出地對系統(tǒng)軟件的底層形成機(jī)制進(jìn)行條理分析,并且每個(gè)技術(shù)專題都配備了大量圖示和代碼實(shí)例,力求將復(fù)雜的機(jī)制以簡潔的形式表達(dá)出來。建議每一位希望從事系統(tǒng)開發(fā)、或希望更實(shí)務(wù)地理解操作系統(tǒng)和編譯器、或不滿足于只寫代碼的出色程序員都擁有這樣一本書。
內(nèi)容介紹
《程序員的自我修養(yǎng):鏈接、裝載與庫》主要介紹系統(tǒng)軟件的運(yùn)行機(jī)制和原理,涉及在Windows和Linux兩個(gè)系統(tǒng)平臺(tái)上,一個(gè)應(yīng)用程序在編譯、鏈接和運(yùn)行時(shí)刻所發(fā)生的各種事項(xiàng),包括:代碼指令是如何保存的,庫文件如何與應(yīng)用程序代碼靜態(tài)鏈接,應(yīng)用程序如何被裝載到內(nèi)存中并開始運(yùn)行,動(dòng)態(tài)鏈接如何實(shí)現(xiàn),C/C++運(yùn)行庫的工作原理,以及操作系統(tǒng)提供的系統(tǒng)服務(wù)是如何被調(diào)用的。每個(gè)技術(shù)專題都配備了大量圖、表和代碼實(shí)例,力求將復(fù)雜的機(jī)制以簡潔的形式表達(dá)出來。本書最后還提供了一個(gè)小巧且跨平臺(tái)的C/C++運(yùn)行庫MiniCRT,綜合展示了與運(yùn)行庫相關(guān)的各種技術(shù)。《程序員的自我修養(yǎng):鏈接、裝載與庫》對裝載、鏈接和庫進(jìn)行了深入淺出的剖析,并且輔以大量的例子和圖表,可以作為計(jì)算機(jī)軟件專業(yè)和其他相關(guān)專業(yè)大學(xué)本科高年級學(xué)生深入學(xué)習(xí)系統(tǒng)軟件的參考書。同時(shí),還可作為各行業(yè)從事軟件開發(fā)的工程師、研究人員以及其他對系統(tǒng)軟件實(shí)現(xiàn)機(jī)制和技術(shù)感興趣者的自學(xué)教材。
程序員的自我修養(yǎng)章節(jié)目錄
第1部分 簡介
第1章 溫故而知新
1.1 從HELLO WORLD 說起
1.2 萬變不離其宗
1.3 站得高,望得遠(yuǎn)
1.4 操作系統(tǒng)做什么
1.5 內(nèi)存不夠怎么辦
1.6 眾人拾柴火焰高
1.7 本章小結(jié)
第2部分 靜態(tài)鏈接
第2章 編譯和鏈接
2.1 被隱藏了的過程
2.2 編譯器做了什么
2.3 鏈接器年齡比編譯器長
2.4 模塊拼裝——靜態(tài)鏈接
2.5 本章小結(jié)
第3章 目標(biāo)文件里有什么
3.1 目標(biāo)文件的格式
3.2 目標(biāo)文件是什么樣的
3.3 挖掘SIMPLESECTION.O
3.4 ELF 文件結(jié)構(gòu)描述
3.5 鏈接的接口——符號
3.6 調(diào)試信息
3.7 本章小結(jié)
第4章 靜態(tài)鏈接
4.1 空間與地址分配
4.2 符號解析與重定位
4.3 COMMON 塊
4.4 C++相關(guān)問題
4.5 靜態(tài)庫鏈接
4.6 鏈接過程控制
4.7 BFD 庫
4.8 本章小結(jié)
第5章 WINDOWS PE/COFF
5.1 WINDOWS 的二進(jìn)制文件格式PE/COFF 134
5.2 PE 的前身——COFF
5.3 鏈接指示信息
5.4 調(diào)試信息
5.5 大家都有符號表
5.6 WINDOWS 下的ELF——PE
5.7 本章小結(jié)
第3部分 裝載與動(dòng)態(tài)鏈接
第6章 可執(zhí)行文件的裝載與進(jìn)程
6.1 進(jìn)程虛擬地址空間
6.2 裝載的方式
6.3 從操作系統(tǒng)角度看可執(zhí)行文件的裝載
6.4 進(jìn)程虛存空間分布
6.5 LINUX 內(nèi)核裝載ELF 過程簡介
6.6 WINDOWS PE 的裝載
6.7 本章小結(jié)
第7章 動(dòng)態(tài)鏈接
7.1 為什么要?jiǎng)討B(tài)鏈接
7.2 簡單的動(dòng)態(tài)鏈接例子
7.3 地址無關(guān)代碼
7.4 延遲綁定(PLT)
7.5 動(dòng)態(tài)鏈接相關(guān)結(jié)構(gòu)
7.6 動(dòng)態(tài)鏈接的步驟和實(shí)現(xiàn)
7.7 顯式運(yùn)行時(shí)鏈接
7.8 本章小結(jié)
第8章 LINUX 共享庫的組織
8.1 共享庫版本
8.2 符號版本
8.3 共享庫系統(tǒng)路徑
8.4 共享庫查找過程
8.5 環(huán)境變量
8.6 共享庫的創(chuàng)建和安裝
8.7 本章小結(jié)
第9章 WINDOWS 下的動(dòng)態(tài)鏈接
9.1 DLL 簡介
9.2 符號導(dǎo)出導(dǎo)入表
9.3 DLL 優(yōu)化
9.4 C++與動(dòng)態(tài)鏈接
9.5 DLL HELL
9.6 本章小結(jié)
第4部分 庫與運(yùn)行庫
第10章 內(nèi)存
10.1 程序的內(nèi)存布局
10.2 棧與調(diào)用慣例
10.3 堆與內(nèi)存管理
10.4 本章小結(jié)
第11章 運(yùn)行庫
11.1 入口函數(shù)和程序初始化
11.2 C/C++運(yùn)行庫
11.3 運(yùn)行庫與多線程
11.4 C++全局構(gòu)造與析構(gòu)
11.5 FREAD 實(shí)現(xiàn)
11.6 本章小結(jié)
第12章 系統(tǒng)調(diào)用與API
12.1 系統(tǒng)調(diào)用介紹
12.2 系統(tǒng)調(diào)用原理
12.3 WINDOWS API
12.4 本章小結(jié)
第13章 運(yùn)行庫實(shí)現(xiàn)
13.1 C 語言運(yùn)行庫
13.2 如何使用MINI CRT
13.3 C++運(yùn)行庫實(shí)現(xiàn)
13.4 如何使用MINI CRT++
13.5 本章小結(jié)
附錄A
A.1 字節(jié)序(BYTE ORDER)
A.2 ELF 常見段
A.3 常用開發(fā)工具命令行參考
索引
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀
- 下載地址
發(fā)表評論
0條評論軟件排行榜
熱門推薦
- 南方Plus電腦版 v11.9.026.47M / 簡體中文
- 網(wǎng)易新聞電腦版 v113.197.68M / 簡體中文
- 京東讀書電腦版 v1.13.4官方版1.98M / 簡體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
- PHP語言精粹電子書 pdf掃描版25.72M / 簡體中文
- linux常用命令大全 chm版1.48M / 簡體中文
- Scala程序設(shè)計(jì)第二版 pdf高清完整版15.83M / 簡體中文
- C++黑客編程揭秘與防范第2版 冀云pdf掃描版54.58M / 簡體中文
- HotSpot實(shí)戰(zhàn)(陳濤著) 中文pdf掃描版82M / 簡體中文