在徵得作者同意的情況下,本網站的作品允許非盈利性引用,並請註明出處:「作者:luomuxiaoxiao 轉載自:www.luomuxiaoxiao.com"字樣,以尊重作者的勞動成果。版權歸原作者所有。未經允許,嚴禁轉載。
這篇文章我們主要從整體上了解一下計算機程序是如何運行的。在此過程中,我們將會引出操作系統中一些很重要的概念,並在後續的文章中對這些概念將強化和深入理解。
首先從計算機的硬體開始談起。在這裡我們只考慮和程序運行直接相關的硬體。其基本的硬體如下圖所示:
圖1. 一個典型的計算機系統構成
圖片來源於Computer Systems: A Programmers Perspective 2nd Edition Page 8
各硬體及其作用如下:
那麼,程序究竟是怎樣在上述硬體組成的計算機中運行呢?
在思考這個問題之前,我們需要了解一些事實:
位元組
bit
圖2. 32位系統中主存中地址與數據的對應關係
> 左邊數字表示內存的地址,右邊每個格子表示一位(bit),其中存放「0」或者「1」,這些「0」或者「1」組成了一個二進位的數據,該數據表示對應的內存地址存放的數據。
位(bit)
其實,程序運行的基本邏輯很簡單:
那麼請思考以下問題:
1. 代碼是經過編譯生成的二進位文件。編譯的過程是什麼樣的呢? 2. 載入器根據什麼載入把二進位文件到主存中去的呢? 3. CPU是如何載入指令和數據的呢?
後續我們將一一回答這些問題。
如果你覺得有收穫,請點擊左下角的贊,你的支持是我繼續寫的動力!謝謝!
想第一時間查看我的文章嗎?請關注我的微信公眾號號,搜索「落木蕭蕭技術論壇」,更多精彩文章等你。
微信公眾號