《資訊安全系統設計基礎+Linux 核心分析》第一次學習總結
阿新 • • 發佈:2018-12-27
《資訊安全系統設計基礎+Linux 核心分析》第一次學習總結
教材學習內容總結
學習了《庖丁解牛》的第一章。知道的概念有:
- 儲存程式計算機 = 馮諾依曼計算機,主要思想是:將程式存放在計算機儲存器中,然後按儲存器中的程式的首地址來執行程式的第一條指令,接下來就是一步一步按照程式中的編寫好的指令來一步一步執行,直至程式結束。
- 馮諾依曼體系結構的要點如下圖。底層是:RAM,ROM,運算器(ALU),控制器,暫存器。 由圖可知:暫存器是在CPU中的,而RAM,ROM不是在CPU中的,它們是記憶體。
。 - CPU 像“貪吃蛇”一樣,總是在記憶體裡“吃”指令。
- CPU、記憶體和I/O裝置是通過匯流排連線的。記憶體中放著指令和資料。CPU負責解釋和執行記憶體中的指令。
- IA32 : Intel Architecture 32bit.
- 暫存器:ABCD是資料暫存器,這四個16位的暫存器可以分為兩個獨立的8位暫存器使用。E:32位;R:64位;X:128位。
- 62位中的增加的通用暫存器是可以使用者隨便使用的。
- 資料格式
- Word : 16 bit.
- Double Words : 32 bit. 4個Byte : l
- Quad Words : 64 bit.
- Word : 16 bit.
- 尋找方式:找“物件” 的方法
- 暫存器定址
- 立即定址
- 直接定址
- 間接定址
- 變址定址
- 棧:有書的那部分是棧。棧頂指標:Stack Pointer中是非空的。
- pushl 棧在增長
- popl 棧在收縮(減小)
指標、暫存器都是一個“小盒子”的“名稱”,這個小盒子裡放著“地址”(門牌號)。這個門牌號就是記憶體中的地址,地址裡面“住著”一個一個的資料們。如下圖所示:
- 下面的指令都是“複合”指令,而且最底層的“原材料”指令中有設計到對堆疊指標(堆疊小盒子)的操作(更確切的說是操作了小盒子裡的資料--地址)
- pushl : 由2條底層語句複合而成
- popl : 由2條底層語句複合而成
- call : 由3條底層語句複合而成,一個pushl 和一個 movel
- ret : 由2條底層語句複合而成,一個popl
- enter : 由3條底層語句複合而成,一個popl 和一個 movel
- leave : 由3條底層語句複合而成,一個pushl 和一個 movel
- 程式從main函式開始執行,即:main 標號(這個標號不算語句噢)下面的第一條語句。
通過函式呼叫堆疊框架,暫存了函式的上下文資訊,整個程式的執行過程變成了一個指令流,從CPU 中“流”了一遍,最終棧空間又恢復到空棧的狀態。
教材學習中的問題和解決過程
經過思考後,無。我覺得:應該把指標的指向放到中間比較好。因為:“門牌號”都是在房間門的正中央的。
程式碼除錯中的問題和解決過程
沒有敲很多程式碼,只是驗證了一下自己的實驗環境。
程式碼託管
無
上週考試錯題總結
其他(感悟、思考等,可選)
好好學!
我發現,這門課好像和“深入理解計算機系統”這門課的聯絡很緊密?但是:這應該是兩門課!可以同時進行吧。
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:XX小時
實際學習時間:XX小時
改進情況:
(有空多看看現代軟體工程 課件
軟體工程師能力自我評價表)
參考資料
- 庖丁解牛 Linux 核心分析。