重讀《深入理解計算機系統》
在徵得作者同意的情況下,本網站的作品允許非盈利性引用,並請註明出處:「作者:luomuxiaoxiao 轉載自:www.luomuxiaoxiao.com"字樣,以尊重作者的勞動成果。版權歸原作者所有。未經允許,嚴禁轉載。
作為一個入行五年多的BSP工程師,越來越感覺深入的理解計算機的原理對於一個底層工程師的重要性了。比如,在面對一些很難調試的crash bug的時候,最終的辦法是將發生crash時的內存dump出來,結合log分析當時的函數調用棧和寄存器信息,最終定位導致錯誤發生的代碼。又比如,想深入學習linux時候,發現對於很多基本的計算機概念似懂非懂,這樣導致在理解linux系統相關知識的特別吃力。於是,決定重讀一下計算機原理的經典書籍----《深入理解計算機系統》。
這本書的經典程度我就不多介紹了,如果立志成為一個嵌入式工程師或者當前是一名和計算機底層相關的軟體工程師,我強烈推薦你讀一下,相信我你一定會愛不釋手的。在開始重讀《深入理解計算機系統》這本書一段時間之後,我發現自己對於其中的一些概念和原理比第一次讀的時候有了更深入的認識。為了及時總結這些知識,並且確保自己真正理解這些知識,我決定以博客的形式寫出來。因此,博客也算是自己的讀書筆記。由於這本書看了已經不止一遍,因此,博客內容可能不完全按照書中的章節順序來寫(甚至有些章節我可能會略過),我試圖以這樣一個主線去理解和學習這本書:一個以文本形式存在的C程序是如何變成可執行文件,並被計算機執行的。以下是這個系列文章的目錄:
- 一、計算機原理系列之一 -------- 初識計算機系統
- 二、計算機原理系列之二 -------- 詳解ELF文件
- 三、計算機原理系列之三 -------- 如何編譯目標文件
- 四、計算機原理系列之四 -------- 可重定位文件詳解
- 五、計算機原理系列之五 -------- 編譯過程分析
- 六、計算機原理系列之六 ——– 可執行文件詳解
- Linux X86 程序啟動 – main函數是如何被執行的?
- 七、計算機原理系列之七 ——– 鏈接過程分析
- 八、計算機原理系列之八 -------- 可執行文件的PLT和GOT
持續更新中...
當然,由於知識水平有限,在學習過程中我也不可避免的會發生一些錯誤,如果有朋友發現了,請及時聯繫我,一來可以幫助我改正錯誤,二來也可以避免我的文章誤導更多的人。謝謝!
如果你覺得有收穫,請點擊左下角的贊,你的支持是我繼續寫的動力!謝謝!
如果你覺得有收穫,請點擊左下角的贊,你的支持是我繼續寫的動力!謝謝!想第一時間查看我的文章嗎?請關注我的微信公眾號,搜索「落木蕭蕭技術論壇」,更多精彩文章等你。
[微信公眾號](https://img-blog.csdn.net/20180929112131841?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x1b211eGlhb3hpYW85OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
推薦閱讀: