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

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

每週做業連接彙總linux

第零周 預習課程知識,安裝環境git

第一週 Linux 目錄結構及一些基本的linux操做和命令編程

第二週 ubuntu

學習內容數組

熟悉Linux系統下的開發環境瀏覽器

熟悉vi的基本操做緩存

熟悉gcc編譯器的基本原理安全

熟練使用gcc編譯器的經常使用選項服務器

熟練使用gdb調試技術

熟悉makefile基本原理及語法規範

掌握靜態庫和動態庫的生成與調用方法

理解C程序中模塊的概仿,模塊分解的「高內聚,低耦合」的原則

瞭解連接的概念

 

第三週 

學習內容

理解二進制在計算機中的重要地位

掌握布爾運算在C語言中的應用

理解有符號整數、無符號整數、浮點數的表示

理解補碼的重要性

能避免C語言中溢出,數據類型轉換中的陷阱和可能會致使的漏洞

進一步理解「信息=位+上下文」

 

第五週

學習內容

理解逆向的概念

掌握X86彙編基礎,可以閱讀(反)彙編代碼

瞭解ISA(指令集體系結構)

理解函數調用棧幀的概念,並能用GDB進行調試

 

 

第五週續

 

第六週

學習內容

瞭解ISA抽象的做用

掌握ISA,並能觸類旁通學習其餘體系結構

瞭解流水線和實現方式

 

第六週續

 

第七週 

學習內容

瞭解常見的存儲技術(RAM、ROM、磁盤、固態硬盤等)

理解局部性原理

理解緩存思想

理解局部性原理和緩存思想在存儲層次結構中的應用

高速緩存的原理和應用

 

第七週續

 

第八週

學習內容

複習 Linux經常使用命令

複習 教材1-7章

 

期中總結

 

第九周

學習內容

掌握系統編程和系統調用的概念

掌握系統編程錯誤處理的方式

掌握Unix/Linux系統級I/O:open close read write seek stat

掌握RIO

掌握I/O重定向的方法

 

第九周續

 

第十週

學習內容

掌握系統編程和系統調用的概念

掌握系統編程錯誤處理的方式

掌握Unix/Linux系統級I/O:open close read write seek stat

掌握RIO

掌握I/O重定向的方法

 

第十一週

學習內容

瞭解異常及其種類

理解進程和併發的概念

掌握進程建立和控制的系統調用及函數使用

理解數組指針、指針數組、函數指針、指針函數的區別

理解信號機制:kill,alarm,signal,sigaction

掌握管道和I/O重定向:pipe, dup, dup2

 

第十二週

學習內容

第九周代碼檢查

第十週代碼檢查

第十一週代碼檢查

 

第十三週

學習內容

掌握三種併發的方式:進程、線程、I/O多路複用

掌握線程控制及相關係統調用

掌握線程同步互斥及相關係統調用

 

第十四周

學習內容

理解虛擬存儲器的概念和做用

理解地址翻譯的概念

理解存儲器映射

掌握動態存儲器分配的方法

理解垃圾收集的概念

瞭解C語言中與存儲器有關的錯誤

 

實驗報告連接彙總

實驗一

 

實驗二

 

實驗三

 

實驗四

 

實驗五

 

 

代碼託管連接和二維碼

截圖 git log --pretty=format:"%h - %an, %ar : %s" 的結果:

 

代碼量彙總

 

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

按照老師的指導去完成了代碼驅動的學習任務,可是必定要把本身的ubuntu。vmx文件保管好,不要誤刪了,否則所有git又得從新弄一遍,我就裝了兩次虛擬機。

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

可以在原有的代碼基礎上加改代碼而且能成功運行,這說明已經掌握了原有的代碼。並且這樣的學習方式對此代碼更加印象深入。

實踐上有什麼經驗教訓

當天任務當天完成,拖泥帶水只會越拖越累,由於咱們沒法預知下一秒會遇到什麼問題,以前的問題不解決只會成爲後面的累贅。

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

第一章

什麼緣由促使咱們必須瞭解編譯系統是如何工做的?

1 優化程序性能

2 理解連接時出現的錯誤

3 避免安全漏洞

第二章

計算機算數運算怎麼引起計算機的安全漏洞?

P53 函數getpeername的安全漏洞裏講到,還有例若有符號數轉無符號數的隱式轉換,也會致使漏洞。

第三章

機器級代碼是如何轉換的?

例如

彙編C語言的代碼用:gcc -01 -S xxx.c

彙編並編譯:gcc -01 -c xxx.c

第四章

處理器的體系結構

各類狀態元素、指令集和它們的編碼、一組編程規範和異常事件處理

 

第五章

怎樣優化程序?須要注意哪些方面?

消除循環的低效率;減小過程調用和消除沒必要要的存儲器引用,在第五章裏有詳細說明。

第六章

存儲器的結構

第七章

靜態連接和動態連接有何區別?

靜態連接

在生成可執行文件的時候,把全部須要的函數的二進制代碼都包含到可執行文件中去。連接器須要知道參與連接的目標文件須要哪些函數,同時也要知道每一個目標文件都能提供什麼函數,這樣連接器才能知道是否是每一個目標文件所須要的函數都能正確地連接。

動態連接

 在編譯的時候不直接拷貝可執行代碼,而是經過記錄一系列符號和參數,在程序運行或加載時將這些信息傳遞給操做系統,操做系統負責將須要的動態庫加載到內存中,而後程序在運行到指定的代碼時,去共享執行內存中已經加載的動態庫可執行代碼,最終達到運行時鏈接的目的。

第八章

如何迴避並處理異常?

經過異常表,進行間接過程調用,到達異常處理程序。

第九章

虛擬存儲器的做用

虛擬存儲器中運用了虛擬內存技術,拿出一部分硬盤空間來充當內存使用,當內存佔用完時,電腦會自動調用硬盤來充當內存。

第十章

系統級的I\O是什麼意思?

在主存和外部設備之間拷貝數據的過程。

第十一章

十一:如何編寫一個Web服務器

Web服務器使用HTTP協議和它們的客戶端彼此通訊的。瀏覽器向服務器請求靜態或者動態的內容。對靜態內容的請求是經過從服務器磁盤取得文件並把它返回給客戶端來服務的。

你有什麼項目被加分,談談你的經驗

GDB調試堆棧過程分析

 

優缺點

優勢就是能把咱們學習任務分的很清楚,咱們不會混淆,跟着老師的進度走很順利的學習。沒有缺點,總是這麼負責認並且效率這麼高,我認爲沒有缺點。

課程收穫與不足

這門課我學到最重要的一點是在每週的開始把本身一門科目的學習任務定好了,而後在本週內必須學完,這樣既能提早計劃好學習進度又不能落下,是個很好的學習方法。對於寫博客這塊,我感受書上的學習內容寫在博客園上,一方面複習了本身學習的知識,另外一方面還能夠在週一的考試中忘了那一塊知識點的時候能迅速找到答案。不足就是本身在開學的時候沒好好學,欠下了學習的債,後面還的很辛苦,而且學習狀態不穩定,仍是得調整學習心態,在學習的時候屏蔽掉可有可無的事情,專心學習。

給學弟學妹的學習建議

真的真的不要欠債,欠本身學習的債,不但不能讓本身輕鬆,反而更累,你們都是學生,來上學,欠下的總要還的,因此必定要緊跟老師的指導步驟,甚至提早預習。

多動手,多思考。尤爲多動手,加改代碼,可讓本身更加深入地理解代碼。

做息必定要規律,否則哪能每次都集中注意力學習,要否則就會學的時間特別多完了還學不到多少知識,就是學不進去的意思(深有體會)

問卷調查

你平均每週投入到本課程多長時間?

20個小時

每週的學習效率有提升嗎?

端正學習態度以後效率高了

學習效果本身滿意嗎?

不滿意,不少時候精力不集中

課程結束後會繼續一週至少一篇博客嗎?

寫的話必定是本身以爲必須用博客記錄。

你以爲這門課老師應該繼續作哪一件事情?

每週博客總結以及測試,還有扇貝打卡!

你以爲這門課老師應該中止作哪一件事情?

沒有

你以爲這門課老師應該開始作什麼新的事情?

對咱們要求作您推薦的書的筆記,可加分

 

本文連接

相關文章
相關標籤/搜索