第一章 計算機系統漫遊----《深入理解計算機系統》 第二版
今天開始惡補計算機基礎,第一本書《深入理解計算機系統》 第二版
原文:像hello.c這樣只由ASCⅡ字符構成的文件稱爲文本文件,所有其他文件都稱爲二進制文件。
有點疑惑,百度了下,各種說法都不一樣,如下:
從文件編碼的方式來看,文件可分爲ASCII碼文件和二進制碼文件兩種。
ASCII文件也稱爲文本文件,這種文件在磁盤中存放時每個字符對應一個字節,用於存放對應的ASCII碼。例如,數5678的存儲形式爲:
ASC碼: 00110101 00110110 00110111 00111000
↓ ↓ ↓
↓
十進制碼: 5 6 7 8 共佔用4個字節。
ASCII碼文件可在屏幕上按字符顯示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可顯示文件的內容。 由於是按字符顯示,因此能讀懂文件內容。
二進制文件是按二進制的編碼方式來存放文件的。 例如, 數5678的存儲形式爲: 00010110 00101110只佔二個字節。二進制文件雖然也可在屏幕上顯示, 但其內容無法讀懂。C系統在處理這些文件時,並不區分類型,都看成是字符流,按字節進行處理。 輸入輸出字符流的開始和結束只由程序控制而不受物理符號(如回車符)的控制。 因此也把這種文件稱作“流式文件”。
找了給關於文本文件的帖子:http://www.amobbs.com/forum.php?mod=viewthread&tid=752335
1.7.1節講到的進程的虛擬地址空間,其中包括用戶棧,編譯器用它來實現函數調用,這裏的編譯器和編譯系統中把hello.i編譯成hello.s的編譯器(ccl)相同嗎?
根據我的理解,編譯器的功能應該是用來把源程序編譯成可執行目標文件的,進程的虛擬地址空間是用來執行可執行目標文件的,那既然已經是可執行目標文件了,這裏講的編譯器用它(用戶棧)來實現函數調用又是什麼意思,編譯器在這裏的功能是什麼?
超線程的概念