1. 程式人生 > >2018-2019-1 20165327 《信息安全系統設計基礎》第一周學習總結

2018-2019-1 20165327 《信息安全系統設計基礎》第一周學習總結

應用程序 -c 反匯編 系統設計 網絡通信 執行文件 文本文 共享 鏈接

2018-2019-1 20165327 《信息安全系統設計基礎》第一周學習總結
知識總結

第一章hello程序的生命周期

1.hello程序是從源程序開始的。創建並保存hello.c的文本文件。信息=比特流+上下文

vi hello.c
編譯
hello程序分步編譯
1、預處理(包括打開頭文件和翻譯宏)
hello.c->hello.i

gcc -E hello.c -o hello.i
這時打開hello.i發現,短短幾行代碼已被展開為一千多行。

2、編譯
hello.i->hello.s

gcc -S hello.i -o hello.s
這時打開hello.s發現是匯編代碼,前面帶.的是指令,可以去掉。

3、匯編
hello.s->hello.o

gcc -c hello.s -o hello.o
這時打開hello.o發現是亂碼,其實已經是二進制文件,可以使用od命令打開。

od -tx1 hello.o
反匯編命令:

objdump -d hello.o
4、鏈接

gcc hello.o -o hello
此時將產生hello可執行文件
系統硬件組成(總線、I/O設備、主存、處理器)

運行hello程序時,硬件間的交互。

介紹了cache的重要性及存儲設備形成的層次結構

操作系統通過三個抽象概念來管理硬件(進程(線程)、虛擬內存、文件)

系統間利用網絡通信的模型

介紹計算機中三個重要主題:

Amdahld定理
並行與並發

第七章 鏈接

7.1編譯器驅動程序
編譯器驅動程序包括:語言預處理器、編譯器、匯編器、鏈接器。

7.2靜態鏈接

鏈接器的兩個任務:

符號解析
重定位
7.3目標文件

目標文件純粹是字節塊的集合

目標文件有三種形式:
1、可重定位目標文件
2、可執行目標文件
3、共享目標文件
7.4可重定位目標文件
ELF格式

7.5符號和符號表

7.6符號解析
7.6.1鏈接器如何解析多重定義的全局符號
7.6.2與靜態庫鏈接
7.6.3鏈接器如何使用靜態庫來解析引用

7.7重定位
7.7.1重定位條目
7.7.2重定位符號引用

7.8可執行目標文件

7.9加載可執行目標文件

7.10動態鏈接共享庫

7.11從應用程序中加載和鏈接共享庫

7.12位置無關代碼

7.13庫打樁機制

7.14處理目標文件的工具

2018-2019-1 20165327 《信息安全系統設計基礎》第一周學習總結