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

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

  • 一:操做系統的核心抽象有哪些?
  • 二:無符號數的編碼是什麼?
  • 三:棧幀結構是什麼?
  • 四:如何比較IA32和Y86的指令編碼?
  • 五:優化程序性能的技巧有哪些?
  • 六:存儲器是由哪些層次結構組成的?
  • 七:連接器起到的功能是什麼?
  • 八:系統是如何處理遇到的突發情況?
  • 九:儲存器怎麼管理最高效?
  • 十:系統級的I\O和原來java中遇到的I\O有什麼不一樣?
  • 十一:如何編寫客戶端-服務器程序?
  • 十二:三種不一樣的併發程序技術的區別?

第一第七章教材內容總結

第一章:
  • 計算機系統是由硬件和系統軟件組成的,它們共同工做來運行應用程序;html

  • 信息就是位+上下文;java

  • hello.c--->hello.i--->hello.s--->hello.o;linux

  • 瞭解編譯系統的益處:緩存

    • 優化程序性能;
    • 理解連接是出現的錯誤;
    • 避免安全漏洞;
  • 硬件:安全

    • 總線:貫穿整個系統的一組電子管道。
    • I/O設備:輸入/輸出設備。
    • 內存:臨時存儲設備,用來存放程序和程序處理處理的數據。
    • 處理器:中央處理單元,簡稱處理器。
  • 只由ASCII字符構成的文件稱爲文本文件,全部其餘文件都成爲二進制文件服務器

  • 存儲設備造成了層次的結構網絡

    從上之下,設備變得訪問速度愈來愈慢,容量也愈來愈大,而且每字節造價也愈來愈低儲存器結構的主要思想是一層上的存儲器做爲低一層存儲器的高速緩存
  • 進程是操做系統對一個正在運行的程序的一種抽象。須要運行的進程數是多於能夠運行他們的cpu個數的。一個cpu看上去都像是在併發地執行多個進程,這是經過處理器在進程間切換來實現的。操做系統的這種交錯機制稱上下文交換。併發

  • 處理器讀取並解釋存放在主存裏的二進制指令函數

  • 操做系統內核是應用程序和硬件之間的媒介。它提供三個基本的抽象:1)文件是對I/O設備的抽象;2)虛擬存儲器是對主存和磁盤的抽象;3)進程是對處理器、主存和I/O設備的抽象。性能

  • 網絡提供了計算機系統之間通訊的手段。從特殊系統的角度來看,網絡就是一種I/O設備。

第七章:

  • 連接能夠在編譯時由靜態編譯器來完成,也能夠在加載時和運行時由動態連接器來完成。
  • 連接處理器分爲:1)可重定位的、2)可執行的、3)共享的
  • 靜態連接器是由像GCC這樣的編譯驅動器調用的。
  • 多個目標文件能夠被連接到一個單獨的靜態庫中。
  • 加載器將可執行文件的內容映射到存儲器,並運行這個程序。
  • 被編譯爲位置無關代碼共享庫能夠加載到任何地方,也能夠在運行時被多個進程共享,爲了加載、連接和訪問共享庫的函數和數據,應用程序還能夠在運行時使用動態連接。

教材學習中的問題和解決過程

  • 問題1 what is GCC?

  • 問題1 解決:

    • GNU CC(簡稱爲gcc)是GNU項目中符合ANSI C標準的編譯系統
    • 預處理: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
    • 前三步,GCC的參數連起來是「ESc」,相應輸入的文件的後綴是「iso」
    • GCC經常使用選項:
      • c 只編不鏈,目標文件.o
      • S 只編不匯,彙編代碼
      • E 只進行預編,不作任何處理
      • g 在可執行程序中包含標準調試信息
      • I dir 在頭文件的搜索路徑列表中添加dir目錄
  • 問題2 彙編到機械以及機械到彙編的轉換?

  • 問題2 解決:

    • gcc-c hello.s-s hello.o 彙編--->機械

    • objdump - d hello.o 機械--->彙編

  • 問題3 符號和符號表是什麼?

  • 問題3解決:

    • 程序編譯的連接階段,將函數和變量統稱爲符號;符號表是由彙編器構造的,使用編譯器輸出到彙編語言.s文件中的符號。
  • 問題4 瞭解ELF頭包含哪些信息?

  • 問題4解決:(參考狄維佳的博客)

上週考試錯題總結

結對學習

  • 20155315
  • 結對學習內容:
    • 學習第一、7章
    • 交流課堂學習內容
    • 大體瞭解本學期實驗

本週代碼

老師,我電腦出現了一些問題,可是本週我在嘗試訓練編譯了一些簡單的代碼以下

(1)vi hello.c
	#include<stdio.h>
	main()
	{
	printf("Hello");
	}
	gcc hello.c
	ls
	a.out hello.c
	以後就會出現結果
	./out
	Hello!
	(2)預處理:
	ls
	./out hello.c hello.o
	gcc-E hello.c -o hello.o
	vi hello.i
	(3)編譯
	gcc-S hello.i -o hello.s
	ls
	a.out hello.c hello.i hello.s
	vi hello.s
	(4)彙編
	gcc - c hello.s - o	hello.o
	ls
	hello.c hello.i hello.o hello.s
	vi hello.o

我會盡快修復好電腦,完成代碼上傳,望老師見諒!

其餘(感悟、思考等,可選)

這學期相比上學期,可以更多的跟着老師在課堂上學習。並且老師也改變了教學方式,從原先的一週一篇博客到如今的兩篇博客,減輕了咱們的壓力。看着如此如此厚的一本書,我倍感焦急,不知道可以從中習得多少知識,可以掌握多少知識,但願這學期可以把書本從厚學薄再學厚,先從中精煉而後本身再拓展,讓本身可以充分理解。加油!

學習進度條

| | 代碼行數(新增/累積)| 博客量(新增/累積)|學習時間(新增/累積)|重要成長|
| ----- | :---------😐:------😐:----------: |
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一週 | 40/40 | 1/1 | 15/15 | |

參考資料

相關文章
相關標籤/搜索