1. 程式人生 > >20155312 《信息安全系統設計基礎》課程總結

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

cnblogs 試圖 有符號數 故障 機器 net 服務 配置 名稱

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

  • 每周作業鏈接匯總
  • 第一周作業:學習教材第一章、第七章,二維碼:

技術分享圖片

  • 第三周作業:第二章《信息的表示和處理》,二維碼:

技術分享圖片

  • 第四周作業:課上未完成內容+完成head,tail的使用,相關API的分析,偽代碼,產品代碼,測試代碼的編寫,二維碼:

技術分享圖片

  • 第五周作業:學習緩沖區溢出,二維碼:

技術分享圖片

  • 第六周作業:第八章《異常控制流》,第十章《系統級I/O》,二維碼:

技術分享圖片

  • 第七周作業:第四章《處理器體系結構》,二維碼:

技術分享圖片

  • 第八周作業:完成課上未完成的實踐任務,二維碼:

技術分享圖片

  • 第九周作業:第六章《存儲器層次結構》,二維碼:

技術分享圖片

  • 第十一周作業:第九章《虛擬存儲器》,二維碼:

技術分享圖片

  • 第十三周作業:深入學習第四章,二維碼:

技術分享圖片

  • 第十四周作業:深入學習第十二章,二維碼:

技術分享圖片

  • 第十五周作業:課程總結,二維碼:

技術分享圖片

  • 實驗報告鏈接匯總
  • 實驗一 實驗名稱:開發環境的熟悉,二維碼:

技術分享圖片

  • 實驗二 實驗名稱:固件程序設計,二維碼:

技術分享圖片

  • 實驗三 實驗名稱:實時系統,二維碼:

技術分享圖片

  • 實驗四 實驗名稱:外設驅動程序設計,二維碼:

技術分享圖片

  • 實驗五 實驗名稱:外設驅動程序設計,二維碼:

技術分享圖片

  • 代碼托管鏈接和二維碼:
    • 截圖 git log --pretty=format:"%h - %an, %ar : %s" 的結果:
      技術分享圖片

    • 代碼量匯總提交statistics.sh的支持截圖
      技術分享圖片

    • 代碼驅動的學習做到沒有?
    • 答:感覺與上學期java課程相比,這學期自己編寫的代碼量一般,沒有完全做到代碼驅動的學習。
    • 加點代碼,改點代碼是理解的最好方式,參考編程的智慧,談談你的心得
    • 答:利用代碼學習知識,在改寫代碼的過程中加深對知識點的理解,是一種很好的方法,但前提不是一味的復制粘貼,而是要理解每個語句的意思,經過自身的思考,其實改寫代碼只是一個檢驗我們對知識點理解程度的方式。
    • 實踐上有什麽經驗教訓
    • 答:要看老師在實驗樓上資源,課下根據每章學習重點有側重性的學習,課上進行實踐時掌握好時間。
  • 整體評價一下第1周作業中自己提出的問題是不是抓住了學習重點:感覺個別章節抓住了重點,但整體上還是與各章重點內容有所偏頗。
  • 回答一下第1周作業中自己提出的問題
    • 第一章:數據和控制信息以不同的方式存儲在棧上為什麽會引發安全漏洞?
    • 如果應用程序試圖將超過緩沖區容量的數據存放在其中時,就產生了緩沖區溢出漏洞的條件。從外部寫入到緩沖區可以使攻擊者覆蓋鄰近內存塊的內容,從而導致數據遭到破壞,程序崩潰,甚至可以執行任何惡意代碼。在典型的攻擊中,攻擊者將數據發送給一個應用程序,而後者是一個將數據存儲在小容量的堆棧緩沖區的程序,這會導致覆蓋調用堆棧上的信息,其中包括函數的返回指針。通過這種方法,在合法的功能完成之後,攻擊者就可以運行自己的惡意代碼,並且可以將控制交給包含攻擊者數據的漏洞利用代碼。
    • 第二章:無符號數和數的補碼表示有哪些特性?
    • 在計算機中無符號數用原碼表示,有符號數用補碼表示。w位的補碼表示的數值範圍是[-2w-1, 2w-1-1],如4位的補碼表示的最小值是-8(1000),最大值是7(0111)。w位補碼表示的值為:
      技術分享圖片

    • 第三章:寄存器的使用慣例提出依據是什麽?
    • 答:在多任務系統中,給定的時刻只能有一個過程是活動的,它占使用CPU的程序寄存器組.程序寄存器組作為一個單個資源被所有的函數過程共享. 所以,我們必須保證:一個過程(調用者)調用另一個(被調用者)時,被調用者不會覆蓋某個調用者稍後會使用到的寄存器的值.為此, IA32(x86)采用了一組統一的寄存器使用慣例., 所有的過程調用都必須遵守, 包括程序庫中的過程.
    • 第四章:組合和時序邏輯元素如何在數據通路中組合到一起?
    • 答:組合邏輯不許奧任何時序或控制,只要輸入變化,值就通過邏輯門網絡傳播,而程序計數器、條件碼寄存器、數據內存和寄存器文件這些硬件單元需要對其時序進行明確的控制,具體實現:通過一個時鐘信號來控制,它出發將新值裝載到寄存器以及將值寫到隨機訪問存儲器。
    • 第五章:如何減少程序需要做的工作的變換?
    • 答:編寫出編譯器能夠有效優化以轉換成高效可執行代碼的源代碼。
    • 第六章:RAM、ROM、磁盤和固態硬盤是如何放置在層次結構中的?
    • 答:RAM分一下兩類:1.靜態RAM(SRAM):用來作為高速緩存存儲器,每個位存儲在一個雙穩態的存儲器單元裏。雙穩態:電路可以無限期的保持在兩個不同的電壓配置或者狀態之一。只要供電,就會保持不變。2.動態RAM(DRAM):用來作為主存以及圖形系統的幀緩沖區。將每個位存儲為對一個電容的充電,當電容的電壓被擾亂之後,就永遠都不會再恢復了。暴露在光線下會導致電容電壓改變。如果斷電,DRAM和SRAM都會丟失信息,非易失性存儲器——只讀存儲器:ROM。ROM是以他們能夠被重編程的次數和對他們重編程的機制來區分的。磁盤由盤片構成,表面覆蓋著磁性記錄材料,中央有一個可以旋轉的主軸 ,旋轉速率大約為5400-15000每分鐘。磁盤的每個表面是一組稱為磁道的同心圓組成,每個磁道被劃分為一組扇區,扇區之間由一些間隙隔開,間隙存儲用來標識扇區的格式化位。固態硬盤是一種基於閃存的存儲技術。一個硬盤包由一個或者多個閃存芯片和內存翻譯層組成,閃存芯片替代旋轉磁盤中的機械驅動器,而閃存翻譯層將對邏輯塊的請求翻譯成對底層物理設備的訪問
    • 第七章:位置無關代碼主要應用於什麽情況?
    • 答:位置無關代碼可以用於以下場合:
    1. 程序在運行期間動態加載到內存;
    2. 程序在不同場合與不同程序組合後加載到內存(共享的動態鏈接庫);
    3. 在運行期間不同地址相互之間的映射(如bootloader)
    • 第八章:應用程序是如何與操作系統交互的?
    • 答:。當一個高級語言寫的程序要想能被處理器執行,那它首先要被編譯系統的編譯器編譯為二進制形式的文件,即可重定位目標文件,其次編譯系統的鏈接器還必須將這些可重定位目標文件鏈接成一個可執行文件。
    • 第九章:應用程序如何使用和管理虛擬內存?
    • 答: 操作系統利用體系結構提供的VA到PA的轉換機制實現虛擬內存管理。
    • 第十章:內核用什麽數據結構來表示打開的文件?
    • 答:文件描述符表、文件表和 V 節點表。
    • 第十一章:getaddrinfo函數和getnameinfo函數有什麽區別或聯系?
    • 答:getaddrinfo函數能夠處理名字到地址以及服務到端口這兩種轉換,返回的是一個sockaddr結構而不是一個地址列表,這些sockaddr結構隨後可由套接字函數直使用
#include <netdb.h>
 
int getaddrinfo (const char *hostname, const char *service, const struct addrinfo *hints, struct addrinfo **result) ;
 //返回:若成功為0,出錯為非0
  • getnameinfo函數與getaddrinfo互補:它以一個套接口地址為參數,返回一個描述主機的字符串和一個描述服務的字符串。這個函數以一種獨立於協議的方式提供這些信息
#include <netdb.h>
 
int getnameinfo (const struct sockaddr *sockaddr, socklen_t addrlen, char *host, socklen_t hostlen, 
                 char *serv, socklen_t servlen, int flags) ;
//成功為0,出錯為非0(如gai_strerror函數中的表)
- 第十二章:如何理解互斥鎖加鎖順序規則?
- 答:如果對於程序中每隊互斥鎖(s,t),給出所有的鎖分配一個銓敘,每個線程按照這個順序來申請鎖,並且按照逆序來釋放,那麽這個程序就是無死鎖的。一條路有兩個方向,一輛車要通過這條路需要同時從一個方向往另一個方向開,如果兩輛車相向而行,那就是死鎖,如果兩輛車同向行駛,那就不會死。
  • 你有什麽項目被加分,談談你的經驗
    • 優秀作業(不太清楚自己有沒有被加分)
    • 教程:處理器體系結構,二維碼:(15)
  • 你有什麽項目被扣分,談談你的教訓
    • 沒有
  • 課程收獲與不足
    • 自己的收獲(投入,效率,效果等)
    • 答:我最大的收獲是能夠在忙碌的時候調整好心態,把事情一件一件的完成,學會了如何進行自我調節。
    • 自己需要改進的地方
    • 答:自己的學習效率和學習後的掌握程度還是有待提高。
  • 給開學初的你和學弟學妹們的學習建議
    • 如果重新學習這門課,怎麽做才可以學的更好
    • 建議學弟學妹們堅守內心,學習知識的目的是豐富自己、提升自我,博客、藍墨雲班課都是為了達到這一目的的手段,大家不要本末倒置,跟緊婁老師的節奏,只要學了,就要把這個東西學會,如果沒用心學,那做什麽都只是在浪費時間。
  • 問卷調查
    • 你平均每周投入到本課程多長時間?
    • 答:15小時。
    • 每周的學習效率有提高嗎?
    • 答:有所提高。
    • 學習效果自己滿意嗎?
    • 答:不是十分滿意,只有個別幾章學的比較透徹,還有很多內容只是大概了解,沒有深入研究。
    • 課程結束後會繼續一周至少一篇博客嗎?(如果能做到,畢業時我把你的博客給你集結成一本書送給你作紀念)
    • 答:我更喜歡用筆和紙這種傳統的方式記錄自己的學習過程,既可以練字,又很有成就感,所以如果不是課程要求,自己應該不會再主動寫博客了。
    • 你覺得這門課老師應該繼續做哪一件事情?
    • 答:我覺得老師應該繼續讓大家提交出門門票,提前給同學們公布實驗的具體任務,讓大家有充足的時間做好準備(例如實驗五)。
    • 你覺得這門課老師應該停止做哪一件事情?
    • 答:①提交出門門票後應該取消隨機組隊進行互評,因為如果一個人連自己的問題都不願意去解決,又怎麽會用心去解決別人的問題呢?根據我的觀察,大家在這個過程中並沒有太多收獲;②實驗中應該取消和交叉編譯有關的內容,因為實驗室的設備故障率太大,而且實驗室的機器每次開機都需要重新裝一個虛擬機,很麻煩,強烈建議把實驗室的系統好好搞一搞,可以參照信息安全概論這門課中實驗的模式。
    • 你覺得這門課老師應該開始做什麽新的事情?
    • 答:我覺得老師應該給有不同目標的同學分配不同的任務,只想及格的同學需要至少完成……想要拿滿分的同學在此基礎上還需要完成……,每周都分配不同的任務。
  • 給出你的總結的鏈接和二維碼
    • 課程總結,二維碼:

技術分享圖片

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