20145235《信息安全系統設計基礎》課程總結

每週做業連接彙總

第0周做業

簡要內容:

二維碼

第1周做業

簡要內容:

  • Linux操做系統概述
  • 核心的Linux命令:find/locate/cheat/grep/which/whereis
  • 使用Linux中用戶管理命令/系統相關命令/文件目錄相關命令/打包壓縮相關命令/比較合併相關命令/網絡相關命令等

二維碼

 

第2周做業

簡要內容:

  • Linux系統下的開發環境
  • vi的基本操做
  • gcc編譯器的基本原理
  • 使用gcc編譯器的經常使用選項
  • 使用gdb調試技術
  • makefile基本原理及語法規範
  • 靜態庫和動態庫的生成與調用方法
  • C程序中模塊的概仿,模塊分解的「高內聚,低耦合」的原則
  • 連接的概念

二維碼

 

第3周做業

簡要內容:

  • 二進制在計算機中的重要地位
  • 布爾運算在C語言中的應用
  • 有符號整數、無符號整數、浮點數的表示
  • 補碼
  • 如何C避免語言中溢出,數據類型轉換中的陷阱和可能會致使的漏洞
  • 理解「信息=位+上下文」

二維碼

第5周做業

簡要內容:

  • 程序的機器級表示
  • 算術和邏輯操做
  • 彙編語言中的控制指令
  • GDB調試器

二維碼:

 

第6周做業

簡要內容:

  • ISA抽象的做用
  • ISA,並能觸類旁通學習其餘體系結構
  • 流水線和實現方式

二維碼

第7周做業

簡要內容:

  • 常見的存儲技術(RAM、ROM、磁盤、固態硬盤等)
  • 局部性原理
  • 緩存思想
  • 局部性原理和緩存思想在存儲層次結構中的應用
  • 高速緩存的原理和應用

二維碼

 

第8周做業

簡要內容:

  • 複習 Linux經常使用命令
  • 複習 教材1-7章

二維碼

 

第9周做業

簡要內容:

  • 系統編程和系統調用的概念
  • 系統編程錯誤處理的方式
  • Unix/Linux系統級I/O:open close read write seek stat
  • RIO
  • I/O重定向的方法

二維碼

 

第10周做業

簡要內容:

  • 掌握系統編程和系統調用的概念
  • 掌握系統編程錯誤處理的方式
  • 掌握Unix/Linux系統級I/O:open close read write seek stat
  • 掌握RIO
  • 掌握I/O重定向的方法

二維碼

 

第11周做業

簡要內容:

  • 瞭解異常及其種類
  • 理解進程和併發的概念
  • 掌握進程建立和控制的系統調用及函數使用:fork,exec,wait,waitpid,exit,getpid,getppid,sleep,pause,setenv,unsetenv,
  • 理解數組指針、指針數組、函數指針、指針函數的區別
  • 理解信號機制:kill,alarm,signal,sigaction
  • 掌握管道和I/O重定向:pipe, dup, dup2

二維碼

 

第12周做業

簡要內容:

  • 第九周代碼檢查
  • 第十週代碼檢查
  • 第十一週代碼檢查

二維碼

 

 

第13周做業

簡要內容:

  • 掌握三種併發的方式:進程、線程、I/O多路複用
  • 掌握線程控制及相關係統調用
  • 掌握線程同步互斥及相關係統調用

二維碼

 

 

第14周做業

簡要內容:

  • 理解虛擬存儲器的概念和做用
  • 理解地址翻譯的概念
  • 理解存儲器映射
  • 掌握動態存儲器分配的方法
  • 理解垃圾收集的概念
  • 瞭解C語言中與存儲器有關的錯誤

二維碼

實驗報告彙總連接

                     

 

代碼託管

 

  • 提交歷史:虛擬機進不去了。。。。。爆炸,修好以後補上。
  •  

  •  

     

  • 代碼總量:

 

  • 代碼驅動的學習作到沒有?

勉強作到了,前幾周的的學習,代碼不多,因此對代碼驅動的學習體會不多。到後面幾周的學習,代碼量忽然增長,感受有點措手不及,但結合書上的知識去分析代碼,收穫是巨大的。html

  • 加點代碼,改點代碼是理解的最好方式,談談你的心得

對於老師所給的代碼,若是停留只是去運行一下的層面的話,收穫就很淺,就算懂代碼,只能說理解皮毛。只有經過本身加點代碼,改點代碼去理解書上的知識,這樣的話纔會作到所謂的「玩轉代碼」,我想老師想讓咱們作到即是將代碼玩得轉,精通代碼,活學活用吧。linux

  • 實踐上有什麼經驗教訓?

實踐這學期作了兩個,一個是經過gdb瞭解調用函數過程棧的變化,另外一個是緩衝區溢出實踐。我以爲最大的教訓是:必需要手動畫一下棧,本身分析分析一下過程。我以爲這一點很重要,由於經過gdb,你獲得的是寄存器和存儲的值,惟有本身動手畫一下棧,並分析,纔會將抽象的東西展示在你面前,這樣就會很好理解。git

總體評價一下第0周做業中本身提出的問題是否是抓住了學習重點

抓住了大部的分析重點。web

回答一下第0周做業中本身提出的問題

  • 什麼是計算機系統漫遊?
    • 這個問題當時問的太沒水平了,所謂計算機系統漫遊,即是讓初學者對計算機系統有個初步的瞭解。
  • 信息如何表示如何處理?
    • 計算機要處理的信息是多種多樣的,如平常的十進制數、文字、符號、圖形、圖像和語言等。可是計算機沒法直接「理解」這些信息,因此計算機須要採用數字化編碼的形式對信息進行存儲、加工、和傳送。
      信息的數字化表示就是採用必定的基本符號,使用必定的組合規則來表示信息。計算機中採用的二進制編碼,其基本符號是「0」和「1」。
      主要有數的表示和非數值表示
      1、計算機中數的表示
      在普通數字中,用「+」或「—」符號在數的絕對值以前來區分數的正負。在計算機中有符號數包含三種表示方法:原碼、反碼、補碼。
      一、原碼錶示法:
      用機器數的最高位表明符號位,其於各位是數的絕對值。符號位若爲0則表示正數,若爲1則表示負數。
      二、反碼錶示法:
      正數的反碼和原碼相同,負數的反碼是對原碼除符號位外各位取反。
      三、補碼錶示法:
      正數的補碼和原碼相同,負數的補碼是該數的反碼加1。
      2、非數值數據表示
      一、字符的表示:
      在計算機處理信息的過程當中,要處理數值數據和字符數據,所以須要將數字、運算符、字母、標點符號等字符用二進制編碼來表示、存儲和處理。目前通用的是美國國家標準學會規定的ASCII碼——美國標準信息交換代碼(如圖1-4-1 ——7位ASCII碼錶)。每一個字符用7位二進制數來表示,共有128種狀態,這128種狀態表示了128種字符,包括大小字母、0…九、其它符號、控制符。
  • 什麼是程序的機器級表示?
    • 計算機系統使用了多種不一樣形式的抽象,利用更簡單的抽象模型來隱藏實現的細節。編程

      對於機器級編程來講,其中兩種抽象尤其重要:數組

      一、指令集體系結構(Instruction set architecture ISA)緩存

      二、機器級程序使用的存儲器地址是虛擬地址安全

      提供的存儲器模型看上去是一個很是大的字節數組。存儲器系統的實際實現是將多個硬件存儲器和操做系統軟件組合起來。服務器

  • 處理器體系結構包含哪些?
    • Y86指令集體系結構
    • 邏輯設計和硬件控制語言HCL
    • 流水線
  • 如何優化程序性能?
    • 第五章的內容,本學習沒有學習,也不懂這個問題如何回答。
  • 存儲器結構層次有哪些?
    •  

  • 如何在系統上運行程序?
    • 就拿一個.c文件來收,要讓它運行,首先要進行預處理,而後編譯,接着彙編,最後連接成可執行完文件,才能在系統上運行。
  • 異常控制流是什麼?
    • 異常控制流:現代操做系統經過使控制流發生突變來對系統狀態作出反應,這些突變稱爲異常控制流。
  • 虛擬存儲器是什麼?
    • 虛擬內存是計算機系統內存管理的一種技術。它使應用程序認爲它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它一般是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在須要時進行數據交換。目前,大多數操做系統都使用了虛擬內存,如Windows家族的「虛擬內存」;Linux的「交換空間」等。
  • 系統級I/O是什麼?
    • I/O (input/output) 實際上就是主存與外圍設備的之間的數據拷貝。input就是將某個外圍設備上的數據拷貝到主存,而output則是將主存上的數據拷貝到外圍設備。 全部全部語言的運行時系統都提供了一個I/O處理工具。
  • 網絡編程要注意哪些?
      • 我以爲要注意套接字的建立以及一些函數的調用,還要明白web服務器是怎麼一回事。
  • 什麼事併發編程?
    • 所謂併發編程是指在一臺處理器上「同時」處理多個任務。併發是在同一實體上的多個事件。多個事件在同一時刻發生。有基於進程的併發編程、基於I/O多路複用的併發編程、基於線程的併發編程。
  • 你有什麼項目被加分,談談你的經驗
    • 項目(給出連接和二維碼):
  • 你有什麼項目被扣分,談談你的教訓
    • 沒有檢查代碼
    • 教訓:代碼必定要及時去驗收,越拖越糟糕,平時必定要積極主動去敲代碼,認真進行代碼驅動學習。
  • 待及格管理制度的優缺點(進入過的同窗必寫)
    • 待及格期間多發的博客列表:在待及格區的時候,是我學習效率最好的時候,每週兩篇博客,書上的知識消化的很好,我以爲這個應該繼續下去。
    • 優缺點:優勢:對於想擺脫及格區的同窗至關有用,有必定的強制力。缺點:對於待及格區的同窗應當給予一些鼓勵,增長對於學習的興趣。
    • 建議:對於待及格區的同窗,若是表現好,應當充分給予一些鼓勵。對從從待及格脫離的的我來講,脫離以後,學習主動性比待及格區的時候明顯有所降低,因此我以爲對於脫離幾個區的同窗,應該繼續執行待及格區的管理辦法,等到與及格區有必定分數差的時候,不在要求一週兩篇博客和每週代碼驗收。也就是說只要進了及格區,要想在脫離出去,必須比及格區高出必定的分數才能脫離。這樣的,不會出現,一出及格區就回到原來的狀態。
  • 課程收穫與不足
    • 本身的收穫(投入,效率,效果等)
      • 首先我以爲最大的收穫,即是對整個計算機系統的結構層次有了一個很是深入的認識。
      • 對於計算機底層的東西,從開始略知一二,到如今實現gdb函數調用的棧分析以及緩衝區溢出,收穫很大。
      • 對於邊學習,邊寫博客的這種學習方法,有了更生的理解,就像此次的總結做業同樣,可以這種學習方法的好處。記錄了本身的整個學習過程,反映出本身的學習狀況。就像一面鏡子,看到曾經的本身。
      • 做爲信息安全的學生來講,對於從此的專業課學習,有了必定的基礎。
    • 本身須要改進的地方
      • 就拿學習主動性來講,我在這方面作的不夠到位,每週老是在最後幾天開始一週的學習任務,這點應該批評本身,之後的學習中必定要改正。
      • 代碼驅動學習作的不夠好,對於有些代碼理解的不是很透徹。
    • 若是有結對,寫一下你提供的幫助或接受了什麼幫助,並對老師提供參考建議
      • 我以爲每週寫一篇博客會致使一個嚴重的問題,你們都是週日那一天開始每週的學習任務,應該避免這種現象,我以爲每軸博客應該增長。
  • 給開學初的你和學弟學妹們的學習建議
    • 若是從新學習這門課,怎麼作才能夠學的更好:
      • 必定要好好把可能的看完,必定要先把書上的知識消化了,才能去作老師所給的實踐以及代碼。
      • 學習應該是個天天積累的過程,不能由於週日是提交作的截止時間就在週日完任務似的把一週的學習任務應付了。我以爲這點很重要。
  • 問卷調查
    • 你平均每週投入到本課程多長時間?
      • 十個小時
    • 每週的學習效率有提升嗎?
      • 通常
    • 學習效果本身滿意嗎?
      • 不滿意
    • 課程結束後會繼續一週至少一篇博客嗎?(若是能作到,畢業時我把你的博客給你集結成一本書送給你做記念)
      • 有時會
    • 你以爲這門課老師應該繼續作哪一件事情?
      • 課堂測驗
    • 你以爲這門課老師應該中止作哪一件事情?
    • 你以爲這門課老師應該開始作什麼新的事情?
      • 抽查學習狀況,每週考試有必定的水分,
  • 其餘任意發揮
  • 給出你的總結的連接和二維碼

         總結連接網絡

      二維碼:

相關文章
相關標籤/搜索