上一篇序章我談了談 程序員為啥要懂底層計算機結構 ,有人贊同也有人反對也好,這都是博主的個人見解,但是博客還是要堅持學下去。這篇博客以案例驅動的模式,通過跟蹤一個簡單 Hello World 程序的生命周期開始系統的學習,包括它被程序員創建,到在系統上運行,輸出簡單的消息,然后終止。LZ ...
在寫本章的內容之前,LZ先做個小廣告。其實也不算是什么廣告,就是LZ為了和各位猿友交流方便,另外也確實有個別猿友留言或者在博客里發短消息給LZ要聯系方式。因此LZ斗膽建立了一個有關 深入理解計算機系統 這本書的交流群,當然了,如果有哪位猿友有其它方面的問題,也可以在群里提出,如果LZ有能力幫忙的話會盡量幫助各位,倘若LZ能力不足,或許也會有其它猿友可以解答。 群號在文章里就不貼了,有興趣的猿友可 ...
2013-09-20 18:04 3 5352 推薦指數:
上一篇序章我談了談 程序員為啥要懂底層計算機結構 ,有人贊同也有人反對也好,這都是博主的個人見解,但是博客還是要堅持學下去。這篇博客以案例驅動的模式,通過跟蹤一個簡單 Hello World 程序的生命周期開始系統的學習,包括它被程序員創建,到在系統上運行,輸出簡單的消息,然后終止。LZ ...
上一章我們講解了hello world 程序在計算機系統中是如何運行的。 hello 程序的機器指令最初是存放在磁盤上的,當程序加載時,他們被復制到主存;當處理器運行程序的時候,指令又從主存復制到處理器。相似的,數據串"Hello World" 初始時在磁盤上,然后復制到主存,最后從主存 ...
2021年11月27日准備發在基地微信公眾號上的推文。 綜合了多篇大佬的博客,以及自己已經知道的知識,對一些疑惑進行了現階段我認為還算滿意的解答。 不過又產生了很多疑問: 內存和磁盤的關系 CPU是如何運行機器指令的(雖然大概想過去會是數字邏輯上的電路的組合) ...... ================================================= ...
深入理解計算機系統 卡內基·梅隆一門棵。 原書第3版資料. 第三版源碼. 原書第2版資料. 計算機系統漫游 源文件到目標文件的翻譯過程可分為四個階段, 這四個階段的程序被稱為預處理器,編譯器,匯編器和鏈接器,它們一起構成了編譯系統(compilation ...
Computer Systems A Programmer's perspective 關於進程與線程的相關知識 進程 像hello這樣的程序在現代系統上運行時,操作系統會提供一種假象,就好像系統上只有這個程序在運行。程序看上去是獨占地使用處理器、主存和I/O設備。處理器看上去就 ...
你能獲得的對程序最大的加速比就是當你第一次讓它工作起來的時候。 在講解如何優化程序性能之前,我們首先要明確寫程序最主要的目標就是使它在所有可能的情況下都能正常工作,一個運行的很快的程序但是卻是錯誤的結果是沒有任何用處的,所以我們在進行程序性能優化之前,首先要保證程序能正常運行,且結果是 ...
計算機中的信息=位+上下文。進一步,信息可以分為兩大類:一類是數據,一類是指令。指令用來表明操作的動作,數據用來表明被操作的對象,這兩者同時也構成了一個完整的程序。 對於數據而言,我們先來談整數的表示和運算。無符號編碼表示無符號數,補碼表示有符號數,相信大家對這兩種編碼應該是非常熟 ...
在進行本章的講解之前,我們先說明講解的機器語言型號。上一篇匯編語言和機器語言我們講過,機器語言是直接面向處理器(Processor:CPU)的程序設計語言,但是每一種這樣的微處理器(CPU)由於硬件設計和內部結構的不同,所以每一種微處理器都有自己的機器指令集,也就是機器語言。而匯編語言是便於 ...