深入理解電腦系統(1.2)---hello world的程式是如何啟動並執行

來源:互聯網
上載者:User

標籤:

本文轉載地址:http://www.cnblogs.com/zuoxiaolong/p/computer2.html

 

hello world的執行

 

           我們以linux系統為例,當我們執行一個簡單的列印字串的C程式時,我們需要在命令列輸入./hello以及斷行符號去執行該程式。在整個執行過程中,電腦主要做了三件事,或者說經曆了三個階段來完成程式的運行。

 

一、linux的外殼掃描使用者輸入的字元

 

           當我們在鍵盤輸入./hello時,linux的外殼程式(也就是命令列)會掃描我們輸入的字元,將這些字元一一讀入到寄存器當中,然後再一一放入主存。換句話說,./hello這幾個字元是經過了CPU中的寄存器從而到達了主存。下面LZ將這一過程的圖示畫出來。

 

二、載入hello檔案的代碼以及資料到主存

 

            這一過程的觸發是在我們按下斷行符號的那一刻,此時系統會將儲存在磁碟上的hello檔案載入到主存,而此過程會利用一種叫做儲存空間存取的技術,使得資料不通過寄存器直接到達主存。是這一過程的圖示。

 

 

三、根據主存中代碼的指令執行程式

 

            在代碼以及程式所需要的資料載入到主存後,CPU就開始從main函數的起始位置,依次執行代碼中的指令。由於我們的代碼只是簡單的輸出“hello world”這樣的字串,因此系統只是將這個字串依次載入到寄存器,然後傳輸到顯示器終端顯示。這個過程如。

 

本章小結

 

          本章只是簡單的介紹了一下hello程式的執行過程,我們可以簡單的這麼理解,hello程式的執行,其實就是將資料和代碼載入到主存,並由CPU從主存擷取指令從而執行的過程。

深入理解電腦系統(1.2)---hello world的程式是如何啟動並執行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.