20145221 《信息安全系統設計基礎》期中總結
知識點梳理
第一週博客連接及主要內容
- 20145221 《信息安全系統設計基礎》第1周學習總結
- Shell(命令解析器)重要快捷鍵
- Linux重要命令
man
find
locate
cheat
grep
which
whereis
- 文件操做
- 文件打包/解壓:
zip/unzip
df
:查看磁盤的容量
du
:查看目錄的容量
touch
:建立空白文件
mkdir
:建立一個空目錄
cp
:複製一個文件或目錄到指定目錄
em
:刪除一個文件或目錄
mv
:
- 移動文件(剪切):mv 源目錄文件 目的目錄
- 文件重命名:mv 舊的文件名 新的文件名
第二週博客連接及主要內容
- 20145221 《信息安全系統設計基礎》第2周學習總結
- vim三種經常使用模式
- vim基本操做
- GCC 使用
- 源文件—預處理—編譯—彙編—連接—可執行文件
- 預處理:
gcc –E hello.c –o hello.i
;gcc –E調用cpp
- 編 譯:
gcc –S hello.i –o hello.s
;gcc –S調用ccl
- 匯 編:
gcc –c hello.s –o hello.o
;gcc -c 調用as
- 鏈 接:
gcc hello.o –o hello
;gcc -o 調用ld
- GDB 使用
- 查看文件:
l
- 設置斷點:
b
- 查看斷點狀況:設置完斷點後鍵入
info b
- 單步運行:
n
或s
,s
會進入函數,n
不會進入函數
- Makefile 使用
- makefile文件編寫規則
- makefile變量的定義
第三週博客連接及主要內容
第四周博客連接及主要內容
第五週博客連接及主要內容
第六週博客連接及主要內容
第七週博客連接及主要內容
測試錯題
試題連接
第一週
- Linux中沒有C盤,D盤,其文件系統的目錄是由(FHS)標準規定好的。
- Linux Bash中,使用tar命令把home目錄打包成home.tar的命令是( tar -cf home.tar ~)
- Linux Bash中,ls . | sort 命令的功能是( 顯示當前目錄內容並排序 )
- Linux Bash中,set/env/exprot三個命令功能等價 。(x)
第二週
- 實現「Display files,Sorted by size」功能的ls命令是 ( ls –S )
- 查找宏 STDOUT_FILENO 的值的命令是(grep -nr STDOUT_FILENO /usr/include)
- 查找根目錄下全部目錄的find命令是(find / -type d)
- Linux系統中,連接器程序是(ld)
- (加載器)將可執行文件的內容映射到存儲器,並運行這個程序。
- 生成靜態庫:
gcc -c hello.c
ar rcvs libhello.a hello.c
gcc main.c -o main -L. -lhello (or gcc main.c ./libhello.a -o main)
gcc -fPIC -c hello.c
gcc -shared -o libhello.so hello.o
gcc -o main main.c -L. -lhello
libhello.so 要拷貝到/lib or /usr/lib
第三週
- 計算機將信息按位編碼,一般組織成(字節)序列。
- 計算機的(字長)指明整數和指針數所的標稱大小。
- (Shannon 或香農)創建了布爾代數和數字邏輯之間的聯繫。
- IEEE浮點數標準包含符號、尾數、(階碼)三部分。
- GCC中INFINITY表示(無窮大)。
第五週
- (精通細節)是理解更深和更基本概念的先決條件。
- X86-64首先由Intel開發出來的。(X)
- 爲單個過程(函數)分配的那部分棧叫(棧幀)
- Linux彙編中,銷燬棧幀的語句是(movl %ebp,%esp popl %ebp 或leave)
- Linux彙編中,須要調用者保存的寄存器有(%eax,%edx,%ecx )。
- GDB中以16進制形式打印%eax中內容的命令是(print /x $eax)
第六週
- 解開sim.tar的Linux命令是(tar -xvf sim.tar)
- ALU是一種時序電路。(X)
- 寄存器是一種時序電路。(X)
第七週
- 程序員能夠編寫(有良好空間和時間局部性)的程序來顯著改進程序的運行時間。
- 存儲器給出的讀訪問時間是(局部性)的一個函數。
收穫
- 虛擬機的使用
- 在此以前沒有接觸過虛擬機,或據說過但沒有使用過。在學習本門課程以前,本身對虛擬機的使用是很排斥的,感受有一個windows系統就足夠用了。隨着慢慢的深刻,對虛擬機的感受在發生着轉變,從「課程學習中的被動須要」到「實際應用中的主動須要」。
- 首先,虛擬機能夠實如今同一臺電腦上安裝不一樣虛擬不一樣系統這一功能,爲咱們課程學習以及實際應用提供了更多的選擇與方便。
- 有了調查就有了發言權。在使用過Linux一段時間後,發如今不少方面確實比windows操做更加方便,強大的命令行操做以及海量的工具包大大提升了咱們學習工做的效率。
- 虛擬機能夠幹任何主機能夠乾的事,如今打開電腦,什麼活均可以在虛擬機中完成;使用完畢後還能夠將虛擬機拷貝備份,移植到任何一臺PC機上繼續使用,很是方便。
- 對C語言的再認識
- 小小的
hello world
背後盡然暗藏玄機。距第一次正式接觸C語言已經有一年多的時間了,但層度之淺,只會點擊VC6.0中的「編譯」、「運行」兩個按鈕,學習的不夠紮實,停留在表面。
- 經過這半學期的學習,將以前學習的C語言、彙編語言聯繫了起來,感受以前的支持全串了起來:高級編程語言C語言能夠一句一句的翻譯爲相應的彙編語言,而彙編語言指令又語機器指令一一對應,從而實現了機器能夠將C語言的任何正確的代碼編譯執行。
- 經過相應的彙編語言,能夠從較爲底層的這一層次結構理解C語言的編譯原理,從而更好的利用局部性優點來發揮代碼的最高效率,不只加深了對系統處理編譯的理解,更對之後的編寫高效代碼具備指導意義。
- 硬件的理解加深
- 咱們用的筆記本愈來愈高級,可咱們對它們的瞭解卻愈來愈少。
- 買電腦以前,咱們每每會問問賣家,這檯筆記本的CPU型號是多少,內存多大,硬盤多大等等這些問題;只能說咱們對操做系統的硬件設施有着一個宏觀的印象。而在上個星期的學習中,經過對內存、高速緩存、硬盤等詳細的學習,瞭解到各類存儲器及其技術是如何在一個系統中被高效地組織起來並使用的。
不足
- 學習不精
- 《深刻理解計算機系統》確實是一本很是翔實的好書,翻譯也不錯。可是畢竟有些知識過於偏理論,很難理解,或者理解不到位、理解有誤等等。
- 我一直相信理論不能理解的事實踐一下就行了,實踐能夠幫咱們鞏固理論所學,檢驗理論的正確性,加深咱們對理論的認識。但因爲各類緣由(本身懶惰、沒時間、理論過於理論沒法實踐或不會實踐),一直耽擱,致使有些知識點學習不精。有待提升。
課程建議和意見
- 老師面授機宜
- 前面也提到了,有些知識感受很難理解,我以爲能夠以半個月爲爲單位,科表明組織同窗們寫下近兩週所學的困惑(難以理解的知識點以及工具使用等等),而後彙總給老師,老師有針對性的講一講(畢竟有時候本身看越看越不懂越看越沒信心),完全解決這個問題,否則一拖再拖,到了期末仍是不懂
- 教學內容是否是能夠針對性更強一點
- 有時候老師上課會推薦不少工具,雖然都頗有用很方便,但會有一種「哎呀,怎麼又有一堆新工具新指令要學」這樣的感受;若是不是很必要的工具,能夠放在老師的工具箱彙總博客裏,咱們本身去發現。
- 老師常常會佈置一些課外任務,供同窗們去挑戰,這樣很好,能夠鍛鍊咱們自主學習的能力,從中有更大更多的收穫。若是之後的這些任務跟咱們時下所學的內容更貼切就行了,這樣會有種學以至用的感受,會有繼續學習探索的動力;若是相隔甚遠或者難度很大,可能會消磨學習的慾望。
- 總之,通過大半年的相處,咱們師生之間也磨合的很好了,都能互相適應,因此談不上有什麼課程建議和意見,相比上學期忽然接觸到的教學模式,這學期已經慢慢適應了。
學習進度條
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
200/200 |
2/2 |
20/20 |
學習了Linux經常使用命令 |
第二週 |
79/279 |
1/3 |
30/50 |
瞭解vim,gcc,gdb基本操做 |
第三週 |
182/461 |
1/4 |
25/75 |
更深層次瞭解信息處理 |
第四周 |
36/497 |
2/6 |
3/78 |
第二章知識簡單的運用 |
第五週 |
194/691 |
1/7 |
28/106 |
彙編知識與瞭解逆向 |
第六週 |
520/1211 |
1/8 |
27/133 |
Y86處理器,瞭解ISA抽象 |
第七週 |
85/1296 |
1/9 |
21/153 |
理解了局部性原理 |
第八週 |
0/1296 |
2/11 |
20/173 |
期中總結 |
參考資料