《深入理解計算機系統》 第1章 計算機系統漫遊

2021-09-12 17:53:14 字數 1517 閱讀 4750

4. 執行hello程式

最近重啟了寫部落格,都說念念不忘必有迴響。自從上一遍部落格,到現在已經過去了快兩年的時間。在這期間一直在想著什麼時候寫個部落格呀,什麼時候再摸著鍵盤一點點的碼字啊,心裡一直在想,直到現在,終於有了行動。

看著乙個乙個的字,隨著鍵盤的敲擊,一串串躍然於螢幕之上,心裡有說不出來的平靜與喜悅。平靜的是,好像世間只有自己,任憑思想在激盪;喜悅的是,世間竟然有這麼奇妙的東西,可以靠著幾下簡單的敲擊,就能把腦中所想記錄下來。

這篇部落格主要是總結下,最近在看的《深入理解計算機系統》的第一章。

第一章的主要內容就像標題所說的那樣,是計算機系統的漫遊。漫遊漫遊,顧名思義,漫漫的遊覽。有慢之意,也有遊之意。主要是帶領大家慢慢的看看計算機是什麼,都有什麼,大概是怎麼執行,熟悉一下這個奇妙的東西。

首先我們來看乙個象徵了計算機生命起源的程式,hello.c

#include

intmain()

這就是乙個源程式,它其實是程式設計師寫的乙個文字,最終在計算機儲存的都是一串串0和1的序列。

每種字元都有它的編碼,比如『a』對應的數字是97,轉換成2進製就是01100001,計算機就是儲存了這麼多的0和1。

我們看到的這個int main實際就是計算機把好多的0和1,然釋成我們可以理解的文字,顯示在螢幕上的。

hello.c的表示方法說明了乙個基本思想:系統中所有的資訊——包括磁碟檔案、記憶體中的程式、記憶體中存放的和使用者資料以及網路上傳送的資料,都是一串位元(0和1)表示的。區分不同資料物件的唯一方法是我們讀取到這些資料物件的上下文。

比如乙個同樣的位元組序列(一串位元)可能表示乙個整數、浮點數、字串或者機器指令。

總結起來就是,資訊就是位+上下文

對於剛才的hello.c計算機是不能直接執行的,到現在為止,計算機對這個檔案的理解只是乙個文字檔案,就是用來給人讀的。

我們要想這個文字檔案執行,需要把它轉換成另一種檔案格式。

(ps:把程式設計師和人類分為兩個範疇似乎有點不太友好哈)

在這個過程中,位(01串)發生了變化,上下文也發生了變化,資訊也就不同了,這也印證了上文所說資訊就是位+上下文

剛才我們大致了看了下原始檔是怎麼儲存,和如何由文字檔案變成可執行檔案的。

不過這些都有點虛,我們還想看看這些東西是如何落到實處的,也就是怎麼和現實世界聯絡起來的。

也就是承載這些運算的載體——硬體,是怎麼樣的。

深入理解計算機系統1

hello.c include int main 源程式 原始檔 實際上就是乙個由0和1組成的位 又成位元bit 序列,8個位被組組成一組,稱為位元組。每個位元組表示程式中的某些文字字元 大部分的現代計算機系統都使用ascii標準來表示文字字元 hello.c 預處理器 cpp hello.i 修改...

深入理解計算機系統 筆記1 計算機系統漫遊

從今天開始學習深入計算機系統這本教材,以前還是寫了一些 的,但是由於不是計算機出身的,所以關於這方面的知識掌握的比較少,現在趁著有時間好好的學習下。1.文字檔案到ascii編碼的轉換。2.各個裝置之間的複製就是系統開銷。3.對處理器來說,讀取乙個位元組資料住儲存器要比磁碟快1000萬倍,從暫存器中讀...

1 深入理解計算機系統 計算機系統漫遊

1.資訊就是 位 上下文 由 ascii字元 乙個唯一的單位元組大小的整數值來表示每個字元 構成的檔案叫文字檔案,其他所有的檔案叫二進位制檔案 2.程式被其他程式翻譯成不同格式 gcc o hello hello.c 每條 c 語句必須被其他程式轉化為一些列的低階機器語言指令。然後這些指令按照一種稱...