20145227鄢曼君 《信息安全系統設計基礎》課程總結

20145227鄢曼君 《信息安全系統設計基礎》課程總結

每週做業連接彙總

  • 第0周做業
    • 簡要內容:翻閱了課本的感想;使用虛擬機VirtualBox成功安裝Linux系統;預習了Linux基礎入門;閱讀了老師推薦的博客並寫出了本身的感悟。
    • 二維碼:
  • 第一週做業
    • 簡要內容:介紹了Linux操做系統;介紹了核心的Linux命令:find/locate/cheat/grep/which/whereis;使用Linux中用戶管理命令/系統相關命令/文件目錄相關命令/打包壓縮相關命令/比較合併相關命令/網絡相關命令等。
    • 二維碼:
  • 第二週做業
    • 簡要內容:介紹了了Linux系統下的開發環境、vi的基本操做、gcc編譯器的基本原理;介紹了gcc編譯器的經常使用選項、如何使用gdb調試技術;介紹了makefile基本原理及語法規範以及靜態庫和動態庫的生成與調用方法;介紹了C程序中模塊的概仿,模塊分解的「高內聚,低耦合」的原則;介紹了連接的概念。
    • 二維碼:
  • 第三週做業
    • 簡要內容:介紹了二進制在計算機中的重要地位、布爾運算在C語言中的應用;介紹了有符號整數、無符號整數、浮點數的表示;介紹了補碼的重要性、C語言中溢出、數據類型轉換中的陷阱和可能會致使的漏洞;介紹了「信息=位+上下文」。
    • 二維碼:
  • 第五週做業
    • 簡要內容:介紹了X86彙編基礎、ISA;介紹了函數調用棧幀的概念、用GDB進行調試;總結了教材第三章《程序的機器級表示》內容。
    • 二維碼:
  • 第六週做業
    • 簡要內容:介紹了ISA;介紹了流水線和實現方式;總結了教材第四章《處理器體系結構》的內容。
    • 二維碼:
  • 第七週做業
    • 簡要內容:介紹了常見的存儲技術(RAM、ROM、磁盤、固態硬盤等);介紹了局部性原理、緩存思想、局部性原理和緩存思想在存儲層次結構中的應用以及高速緩存的原理和應用;總結了教材第六章《存儲器層次結構》的內容。
    • 二維碼:
  • 第八週做業
    • 簡要內容:複習了 Linux經常使用命令以及教材1-7章,總結了本身新學到的知識點、本身的收穫、本身的不足;提出了課程建議和意見。
    • 二維碼:
  • 第九周做業
    • 簡要內容:介紹了系統編程和系統調用的概念、系統編程錯誤處理的方式、Unix/Linux系統級I/O、RIO以及I/O重定向的方法;總結了教材第10章《系統級I/O》和附錄A的內容。
    • 二維碼:
  • 第十週做業
    • 簡要內容:完成了課後練習;學習視頻並總結了知識點,運行分析了相關代碼。
    • 二維碼:
  • 第十一週做業
    • 簡要內容:介紹了異常及其種類、進程和併發的概念、進程建立和控制的系統調用及函數;介紹了數組指針、指針數組、函數指針、指針函數的區別;介紹了信號機制、管道和I/O重定向;總結了教材第八章《異常控制流》的內容,運行分析了相關代碼。
    • 二維碼:
  • 第十二週做業
    • 簡要內容:分析、檢查、總結了第九周代碼,第十週代碼,第十一週代碼。
    • 二維碼:
  • 第十三週做業
    • 簡要內容:介紹了三種併發的方式:進程、線程、I/O多路複用;介紹了線程控制及相關係統調用、線程同步互斥及相關係統調用;總結了教材第十一章《網絡編程》、教材第十二章《併發編程》的內容, 運行分析了相關代碼。
    • 二維碼:
  • 第十四周做業
    • 簡要內容:介紹了虛擬存儲器的概念和做用、地址翻譯的概念、存儲器映射、動態存儲器分配的方法、垃圾收集以及C語言中與存儲器有關的錯誤;總結了教材第九章《虛擬存儲器》的內容,運行分析了相關代碼。
    • 二維碼:

實驗報告連接彙總

  • 實驗一 開發環境的熟悉
    • 簡要內容:介紹了Linux開發環境的配置和使用,使用Linux的arm編譯,使用基於NFS方式的下載調試,以及嵌入式開發的基本過程。
    • 二維碼:
  • 實驗二 固件開發
    • 簡要內容:分析了02_pthread 03_tty中的代碼;介紹了怎樣使用linux的armv4l-unknown-linux-gcc編譯、使用基於NFS方式的下載調試以及嵌入式開發的基本過程。
    • 二維碼:
  • 實驗三 內核驅動設計入門
    • 簡要內容:介紹了安裝ADS、安裝GIVEIO驅動、安裝JTAG驅動的正確方法,並介紹瞭如何測試基本安裝是否正確。
    • 二維碼:
  • 實驗四 外設驅動程序設計
    • 簡要內容:介紹了在LINUX下進行驅動設計的原理以及使用模塊方式進行驅動開發調試的過程。
    • 二維碼:
  • 實驗五 簡單嵌入式WEB服務器實驗
    • 簡要內容:介紹了在ARM開發板實現一個簡單的WEB服務器的過程;在宿主機和實驗箱中實現了老師給的代碼並分析了代碼。
    • 二維碼:

代碼託管連接和二維碼:

  • 連接:https://git.oschina.net/20145227/IS-Design-20145227
  • 二維碼:
    html

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

  • 代碼量彙總(用wc命令,有截圖):
    linux

  • 代碼驅動的學習作到沒有?
    • 作到了。這學期開始的前幾周並無按照老師的要求作,而是直接像學習java同樣在本身電腦裏面git,並不規範。後面按照老師發的博客代碼驅動的程序設計學習中的要求在Ubuntu上安裝配置好了git,並按照要求每週規範的git了代碼。而後又學會了代碼的編譯與運行、使用gdb輔助學習、GDB代碼調試、CGDB代碼調試、彙編代碼調試、DDD代碼調試以及多進程與多線程的學習等等內容,基本完成了要求。
  • 加點代碼,改點代碼是理解的最好方式,談談你的心得。
    • 不少時候,敲了教材上的代碼編譯運行以後只是知道了這個代碼運行的結果,要想要更好的理解代碼就能夠改動代碼或者加點代碼來運行加深理解。我這樣作了屢次,發現效果確實很好,比起僅僅看教材上的代碼,這種方法真的頗有效果。
  • 實踐上有什麼經驗教訓?
    • 這學期實踐內容不少,以我作的GDB的深刻研究爲例談談本身的想法吧。在作以前,一直感受GDB調試是很困難的一件事,可是本身真正去實踐才發現它並無我想象中的那麼難。因此不少時候只要咱們本身積極主動的學習,那麼其實就已經成功了一半了。實踐過程當中出現的不少問題上一屆的學長學姐們也遇到過,多學習他們的學習總結和經驗對咱們有不少幫助。遇到問題時,本身能夠多想一想,盡本身最大努力去解決這個問題。也能夠查閱資料、向老師同窗請教,最終必定可以有很大收穫的。

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

  • 1.GCC編譯程序的過程分爲哪些階段階段?
    • 答:分爲預處理、編譯、彙編、連接四個階段。
  • 2.IEEE浮點數標準包含哪些部分?
    • 答:IEEE浮點數標準包含符號、尾數、(階碼)三部分。
  • 3.C語言中的循環結構,彙編中怎樣才能實現?
    • 答:能夠用條件測試和跳轉組合起來實現。
  • 4.HCL中,多路複用函數如何描述?
    • 答:使用狀況表達式來描述。
  • 5.主存儲器的性能指標主要有哪些?
    • 答:存儲容量、存取時間、存儲週期、存儲器帶寬。
  • 6.高速緩存的容量如何計算?
    • 答:能夠用 C=S*E*B 來計算。
  • 7.靜態連接和動態連接的區別?
    • 答:動態連接是指在生成可執行文件時不將全部程序用到的函數連接到一個文件,由於有許多函數在操做系統帶的dll文件中,當程序運行時直接從操做系統中找。而靜態連接就是把全部用到的函數所有連接到exe文件中。動態連接是隻創建一個引用的接口,而真正的代碼和數據存放在另外的可執行模塊中,在運行時再裝入;而靜態連接是把全部的代碼和數據都複製到本模塊中,運行時就再也不須要庫了。
  • 8.故障指令包括什麼?
    • 答:故障指令包括陷阱、故障、終止。
  • 9.Linux的虛擬存儲器分爲哪些部分?
    • 答:分爲內核虛擬存儲器和進程虛擬存儲器兩部分。
  • 10.Unix/Linux中,鍵盤被當作什麼來處理?
    • 答:Unix/Linux中,鍵盤是被當作文件來讀和寫的。
  • 11.網絡協議必須提供的基本能力是什麼?
    • 答:命名機制和傳送機制。
  • 12.Linux下C程序處理線程的標準接口是什麼?
    • 答:Posix線程。

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

課程收穫與不足

本身的收穫

  • 學習信息安全系統設計基礎已經一學期了。這一學期的時間,我感受我對不少知識還只是停留在比較淺的層面上,還有好多東西是須要本身去探索的。學習這門課應該是循環漸進,善始善終,循序漸進,腳踏實地。
  • 這學期開始前,我已經學習過c語言、java、彙編、數據結構等知識,不過學的並非很好。我以爲這學期最好的就是這門課程把以前學過的東西串聯了起來,讓咱們對之前學的東西有了更深的理解。還有就是每週寫博客,已經寫了一年了。我感受博客園真的是一個集思廣益的地方,你們把本身的學習心得體會都經過博客的形式發表出來,而後其餘人就能夠去閱讀、去參考別人成功的方法,有什麼問題也能夠在下面評論,而後博主會和你們互動,共同探討,解決問題。

本身須要改進的地方

  • 學這門課千萬不要浮躁。說到浮躁,這也是一個很值得我深思的問題。我以爲我本身也有這樣的傾向,所以不少時候學習只是停留在很表面,並無去深刻理解。不只是我,估計大多數的人都有這個毛病。真正學習的時候,浮躁會使你失去不少。在學習過程當中,我很努力地使本身保持心理的平靜,從基礎學起。但願之後本身能夠改掉浮躁的毛病。

若是有結對,寫一下你提供的幫助或接受了什麼幫助,並對老師提供參考建議

  • 本學期的實驗所有都是我和隊友結對完成的。經過結對,我深入地明白了團隊合做的重要性。團隊精神能推進團隊運做和發展。在團隊精神的做用下,團隊成員產生了互相關心、互相幫助的交互行爲,顯示出關心團隊的主人翁責任感,並努力自覺地維護團隊的集體榮譽,自覺地以團隊的總體聲譽爲重來約束本身的行爲,從而使團隊精神成爲自由而全面發展的動力。一個具備團隊精神的團隊,能使每一個團隊成員顯示高漲的士氣,有利於激發員工做的主動性,由此而造成的集體意識,共同的價值觀,高漲的士氣、團結友愛,團隊成員纔會自願地將本身的聰明才智貢獻給團隊,同時也使本身獲得更全面的發展。
  • 我以爲結對實驗這一環節很好,不只讓你們可以明確分工,合做的編寫出程序,並且能培養你們的默契,讓咱們可以在實際操做過程當中更好的編寫代碼。要想成功編寫程序,這一過程是很複雜的,而團隊方式可使其簡單許多,遇到問題的時候能夠你們一塊兒想,集思廣益,並且團隊操做在很大程度上還能夠實現優點的互補。

給學弟學妹們的學習建議

若是從新學習這門課,怎麼作才能夠學的更好

  • 若是從新學習這門課的話,我想我會作的更好。首先,好好啃教材,輔助看教學視頻。一本好的教材,可讓你更快更好的進入學習狀態。而後看視頻是學習比較直觀的方式。建議先看課本,不懂的地方,更看視頻,這樣效果更好。
  • 最重要的是要多動手實踐。這門課的學習,在學懂理論後,必定要實踐。有時候,教材上給出的語法和例子很簡單,很容易看懂,但到本身動手寫的時候,又是另外一種感受。只有多動手編程,哪怕是簡單的小程序,重複實現書上簡單的例子,也是在積累和提升。動手作是最爲重要的。不少人學習就是看書、聽課,當時是明白了,但事後立刻就忘記。若是不肯意敲鍵盤,就不如不學。即便有時候所敲的代碼你不明白,能夠先運行,看看結果,增長感性認識,而後上升到理性的認識。特別是在你們作考題的時候,不少東西,概念,你只要隨便敲一個程序作作實驗就能很深入的理解,但不少人都是不肯意動手,這樣的學習效率就很低。 動腦,動嘴, 就是要多想問題,多思考,多實踐。

問卷調查

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

  • 30小時。

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

  • 有提升。一開始效率很低,老是靜不下來,後面就漸入佳境了。

學習效果本身滿意嗎?

  • 基本滿意。不少時候感受本身的付出和回報仍是成正比的,可是有些時候明明花了不少時間去準備最終效果卻並很差。

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

  • 扇貝打卡而後期末加分這種方法很值得提倡,但願可以繼續作下去。這不只能夠調動你們學習的積極性,並且還讓咱們的英語水平提升了不少,對於四六級以及其餘的方面都有很大的幫助。
  • 在博客園裏發表博客也是很好的一種總結心得體會的方法,值得提倡。博客園是一個集思廣益的地方,你們把本身的學習心得體會都經過博客的形式發表出來,而後你們能夠提出意見,有什麼不懂的也能夠直接在評論裏提出來,共同探討,共同解決問題。

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

  • 老師的教學方法都很好,目前我以爲全部的均可以繼續應用下去。

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

  • 每次實驗以前,但願老師可以講解一下實驗內容,有些實驗難度較大,本身想要作出來仍是有點費勁的。就算按照教程作出來,但事實上不少東西也理解不了。因此但願老師能夠着重爲你們講解一下實驗,特別是代碼的理解。

給出本文連接和二維碼

相關文章
相關標籤/搜索