作 者:陸小風 著
定 價:118
出 版 社:電子工業出版社
出版日期:2023年04月01日
頁 數:324
裝 幀:平裝
ISBN:9787121452772
"互聯網大廠專家為你揭示編程高手的心智模型和計算機繫統的底層奧秘,341幅精心設計的插圖把對技術的理解門檻盡量降低。像高手那樣,對自己寫下的每一行代碼到底會對計算機繫統產生怎樣的影響了如指掌,遇到問題瞬間解決。"
●第1章從編程語言到可執行程序,這是怎麼一回事/1
1.1假如你來發明編程語言/2
1.1.1創世紀:CPU是個聰明的笨蛋/3
1.1.2彙編語言出現了/3
1.1.3底層的細節vs高層的抽像/4
1.1.4套路滿滿:高級編程語言的雛形/6
1.1.5《盜夢空間》與遞歸:代碼的本質/7
1.1.6讓計算機理解遞歸/9
1.1.7優秀的翻譯官:編譯器/9
1.1.8解釋型語言的誕生/10
1.2編譯器是如何工作的/12
1.2.1編譯器就是一個普通程序,沒什麼大不了的/12
1.2.2提取出每一個符號/13
1.2.3token想表達什麼含義/14
1.2.4語法樹是不是合理的/14
1.2.5根據語法樹生成中間代碼/15
1.2.6代碼生成/15
1.3鏈接器不能說的秘密/16
1.3.1鏈接器是如何工作的/17
1.3.2符號決議:供給與需求/18
1.3.3靜態庫、動態庫與可執行文件/20
1.3.4動態庫有哪些優勢及劣勢/25
1.3.5重定位:確定符號運行時地址/27
1.3.6虛擬內存與程序內存布局/29
1.4為什麼抽像在計算機科學中如此重要/32
1.4.1編程與抽像/32
1.4.2繫統設計與抽像/33
1.5總結/34
第2章程序運行起來了,可我對其一無所知/35
2.1從根源上理解操作繫統、進程與線程/36
2.1.1一切要從CPU說起/36
2.1.2從CPU到操作繫統/37
2.1.3進程很好,但還不夠方便/40
2.1.4從進程演變到線程/41
2.1.5多線程與內存布局/44
2.1.6線程的使用場景/44
2.1.7線程池是如何工作的/45
2.1.8線程池中線程的數量/46
2.2線程間到底共享了哪些進程資源/47
2.2.1線程私有資源/47
2.2.2代碼區:任何函數都可放到線程中執行/49
2.2.3數據區:任何線程均可訪問數據區變量/49
2.2.4堆區:指針是關鍵/50
2.2.5棧區:公共的私有數據/50
2.2.6動態鏈接庫與文件/52
2.2.7線程局部存儲:TLS/53
2.3線程安全代碼到底是怎麼編寫的/55
2.3.1自由與約束/55
2.3.2什麼是線程安全/56
2.3.3線程的私有資源與共享資源/57
2.3.4隻使用線程私有資源/58
2.3.5線程私有資源+函數參數/58
2.3.6使用全局變量/60
2.3.7線程局部存儲/61
2.3.8函數返回值/62
2.3.9調用非線程安全代碼/63
2.3.10如何實現線程安全代碼/64
2.4程序員應如何理解協程/65
2.4.1普通的函數/65
2.4.2從普通函數到協程/66
2.4.3協程的圖形化解釋/68
2.4.4函數隻是協程的一種特例/69
2.4.5協程的歷史/69
2.4.6協程是如何實現的/70
2.5理解回調函數/71
2.5.1一切要從這樣的需求說起/72
2.5.2為什麼需要回調/73
2.5.3異步回調/74
2.5.4異步回調帶來新的編程思維/75
2.5.5回調函數的定義/77
2.5.6兩種回調類型/78
2.5.7異步回調的問題:回調地獄/79
2.6理解同步與異步/80
2.6.1辛苦的程序員/80
2.6.2打電話與發郵件/81
2.6.3同步調用/83
2.6.4異步調用/84
2.6.5同步、異步在網絡服務器中的應用/86
2.7哦!對了,還有阻塞與非阻塞/91
2.7.1阻塞與非阻塞/92
2.7.2阻塞的核心問題:I/O/92
2.7.3非阻塞與異步I/O/93
2.7.4一個類比:點比薩/94
2.7.5同步與阻塞/95
●
●2.7.6異步與非阻塞/96
●
●……
本書以圖解的方式通俗易懂的講解計算機繫統中各項技術的本質,包括編程語言的本質是什麼、操作繫統、進程線程協程等的本質是什麼、到底什麼是內存、什麼是堆區棧區、內存分配等是怎麼一回事、怎樣從晶體管構建出CPU、I/O是如何實現的,等等。從根源出發,一步步講解一項技術到底是怎麼來的,同時內容可視化――輔助大量精心設計的插圖,幾乎做到了平均一頁有一圖,把對技術的理解門檻降到大力度優惠。
陸小風 著
陸小風(@碼農的荒島求生),碩士畢業於北京航空航天大學計算機學院,先後就職於VMware和京東,具有多年軟件繫統研發經驗,擅長用通俗易懂的語言講解計算機技術。