《深入理解計算機系統(第三版)》第一章

2022-05-23 07:57:08 字數 762 閱讀 1777

(1)計算機提供不同層次的抽象表示,來隱藏實際實現的複雜性

(2)程式設計師必須知道編譯系統是如何工作的原因:

(3)執行hello程式

(4)併發是乙個通用的概念,指乙個同時具有多個活動的系統;並行指的是用併發使乙個系統執行的更快

(5)意識到快取記憶體的存在,可以利用快取記憶體將程式的效能提高乙個數量級。

執行時堆:**和資料區是在程序一開始執行時就被規定了大小,而當呼叫如malloc和free這樣的標準庫函式時,堆可以在程式執行時動態的擴充套件和收縮。

共享庫:儲存c標準庫和數學庫等的**和資料。

使用者棧:實現函式呼叫。

核心虛擬記憶體:不允許應用程式讀寫,或者直接呼叫核心**定義的函式。

緩衝區溢位錯誤如何造成免安全漏洞?

參考緩衝區溢位攻擊原理分析,結合學習過的棧幀變化,知道了緩衝區溢位攻擊會通過某種方式修改eip的值,讓其指向惡意**。當buf變數發生溢位時會往高位址空間覆蓋,先是覆蓋本函式的其它區域性變數,然後是呼叫函式的ebp,再次是eip,最後是呼叫函式的棧空間。如果讀取的檔案內容覆蓋掉eip,就可以修改程式的執行路徑(傳入乙個超長的帶有shellcode的字元緩衝,覆蓋棧中的eip值,這樣當函式執行完成返回後就會返回到有shellcode的地方,執行惡意**)。

《深入理解計算機系統(第三版)》第一章學習總結

hello程式的生命週期是從乙個源程式開始的,檔名是hello.c。源程式實際上就是由0和1 組成的位序列,8個被組織成一組,稱位元組,每個位元組表示程式中的某些字元。由ascii字元構成的檔案稱為文字檔案,所有其他檔案稱為二進位制檔案。gcc編譯驅動程式讀取原始檔hello.c,並把它翻譯成乙個可...

深入理解計算機系統第一章

即每個程式中的每個字元都在ascii標準中被乙個具體的數值來標明。這些字元稱之為ascii字元,由ascii字元構成的檔案叫做文字檔案,其他都是二進位制檔案 從原始檔到目標檔案需要4個階段,預處理,編譯,彙編,鏈結。系統的硬體組成 匯流排 貫穿系統的是一組電子管道,稱為匯流排,它攜帶資訊位元組並負責...

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

計算機系統是由硬體和系統軟體組成的,他們共同工作來執行應用程式。深入理解底層計算機系統以及它對應用程式的影響有助於提高程式的效能。1.1 資訊就是位 上下文 源程式實際上就是乙個由值0和1組成的位序列。程式是由文字字元表示的,8個位被組織成一組,成為位元組,每個位元組表示為程式中的文字字元。文字字元...