20145234黄斐《信息安全系统设计基础》第二周学习总结
教材學習內容總結
vi的基本操作
1.vim 文件名:打開當前目錄下相應的文件(如果不存在會自動新建)
2.光標移動:
h-←,j-↓,k-↑,l-→,方向鍵也可以控制相應的光標移動方向;w-移動到下一個單詞,b-移動到上一個單詞。
[[ 轉到上一個位于第一列的"{";]] 轉到下一個位于第一列的"{";{ 轉到上一個空行;} 轉到下一個空行
3.插入模式:(不同模式之間需要先esc退出后才能切換)
i 在當前光標處進行編輯
I 在行首插入
A 在行末插入
a 在光標后插入編輯
o 在當前行后插入一個新行
O 在當前行前插入一個新行
cw 替換從光標所在位置后到一個單詞結尾的字符
保存和退出vim:
w 保存文檔
:q! 強制退出,不保存
:q 退出
:wq! 強制保存并退出
:w <文件路徑> 另存為
:saveas 文件路徑 另存為
:x 保存并退出
:wq 保存并退出
4.刪除文本
x 刪除游標所在的字符
X 刪除游標所在前一個字符
Delete 同x
dd 刪除整行
dw 刪除一個單詞(不適用中文)
d$或D 刪除至行尾
d^ 刪除至行首
dG 刪除到文檔結尾處
d1G刪至文檔首部
GCC
1.預處理:
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
注意:編譯時要加“-g”參數(參數連起來是“ESc”,相應輸入的文件的后綴是“iso”)
2.gcc預處理源文件的時候(第一步),不會進行語法錯誤的檢查,語法檢查會在第二步進行。
3.gcc hello.c -o hello--- 第二個hello為文件名。
4.大致流程:
首先gcc會調用預處理程序cpp,由它負責展開在源程序中定義的宏.hello.i這是一個經過預處理器處理之后的C源文件——>將hello.i編譯為目標代碼,gcc默認將.i文件看成是預處理后的C語言源代碼---->gcc連接器將目標文件鏈接為一個可執行文件。
GDB
1.啟動gdb的方法有以下幾種:
gdb program也就是執行文件,一般在當前目錄下。
gdb core 用gdb同時調試一個運行程序和core文件,core是程序非法執行后,core dump后產生的文件。
gdb 如果程序是一個服務程序,那么可以指定這個服務程序運行時的進程ID。
2.設置斷點
(gdb) break func <-------------------- 設置斷點,在函數func()入口處。
(gdb) info break <-------------------- 查看斷點信息。
(gdb) r <--------------------- 運行程序,run命令簡寫
(gdb) n <--------------------- 單條語句執行,next命令簡寫。
(gdb) c <--------------------- 繼續運行程序,continue命令簡寫。
(gdb) p I <--------------------- 打印變量i的值,print命令簡寫。
(gdb) bt <--------------------- 查看函數堆棧。
(gdb) finish <--------------------- 退出函數。
(gdb) c <--------------------- 繼續運行。
(gdb) q <--------------------- 退出gdb。
3.其他調試命令有:
display 跟蹤變量值的改變
until 跳出循環
finish 跳出函數
help 幫助
make工程管理器
1.一個Makefile文件主要含有一系列的規則,每條規則包含一下內容:
一個目標,即make最終需要創建的文件,如可執行文件和目標文件;目標也可以是要執行的動作,如‘clean’;
一個或多個依賴文件的列表,通常是編譯目標文件所需要的其他文件。
之后的一系列命令,是make執行的動作,通常是把指定的相關文件編譯成目標文件的編譯命令,每個命令占一行,并以tab開頭 執行以上Makefile后就會自動化編譯。
2.Makefile還可以定義和使用宏(也稱做變量):
定義宏的格式為:macroname = macrotext
使用宏的格式為:$(macroname)
3.Makefile的一般寫法:
test(目標文件): prog.o code.o(依賴文件列表)
tab(至少一個tab的位置) gcc prog.o code.o -o test(命令)
課本知識總結
第一章
1.信息就是位+上下文,系統中所有信息——包括磁盤文件、存儲器中的程序、存儲器中存放的用戶數據以及網上傳送的數據,都是由一串位表示的,區分不同數據對象的唯一方法是我們讀到這些數據對象時的上下文。ASCII字符構成的文件是文本文件,所有其他文件都是二進制文件。
2.Hello程序的生命周期從高級C語言程序開始,每條C語句被轉化為一系列“低級機器語言”指令,然后這些指令按照“可執行目標程序”的格式打包,并以二進制磁盤文件的形式存放起來,目標程序也稱為“可執行目標文件”。
3.源文件到目標文件的轉化由編譯器驅動程序完成,unix> gcc -o hello hello.c 這里GCC編譯器驅動程序讀取源文件并把它翻譯成一個可執行目標文件。翻譯過程分為四個階段:預處理、編譯、匯編、鏈接,預處理器、編譯器、匯編器、鏈接器一起構成編譯系統。
4.系統的硬件組成:總線、I/O設備、內存、處理器
5.文件就是字節序列
6.并發:一個同時具有多個活動的系統。并行:用并發使一個系統運行地更快,并行可以在計算機系統多個抽象層次上運用。按照系統層次結構由高到低的順序強調三個層次:線程級并發、指令級并行、單指令多數據并行
7.在處理器里,指令集結構提供了對實際處理器硬件的抽象
8.計算機系統是由硬件和系統軟件組成的,程序被其他程序翻譯成不同的形式,開始時是ASCII文本,然后被編譯器和鏈接器翻譯成二進制可執行文件
9.處理器讀取并解釋存放在主存里的二進制指令
10.操作系統內核是應用程序和硬件之間的媒介,提供三個基本的抽象:
-
文件是對I/O設備的抽象
-
虛擬存儲器是對主存和磁盤的抽象
-
進程是對處理器、主存和I/O設備的抽象
11.網絡提供了計算機系統之間通信的手段
第七章
1.靜態鏈接器主要任務:符號解析、重定位
2.目標文件形式:可重定位目標文件、可執行目標文件、共享目標文件
3.每個可重定位目標模塊m都有一個符號表,它包含m所定義和引用的符號的信息。有三種不同的符號:
- 由m定義并能被其他模塊引用的全局符號
- 由其他模塊定義并被模塊m引用的全局符號
- 只被模塊m定義和引用的本地符號
代碼托管
已上傳
做的過程中忘記截圖了所以圖很少……
轉載于:https://www.cnblogs.com/taigenzhenjun/p/5907272.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的20145234黄斐《信息安全系统设计基础》第二周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Spring]IoC容器之进击的注解
- 下一篇: 如何选择一个合适的建站系统?