20145227鄢曼君 《資訊保安系統設計基礎》課程總結

20145227鄢曼君發表於2016-12-22

20145227鄢曼君 《資訊保安系統設計基礎》課程總結

每週作業連結彙總

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

實驗報告連結彙總

  • 實驗一 開發環境的熟悉
    • 簡要內容:介紹了Linux開發環境的配置和使用,使用Linux的arm編譯,使用基於NFS方式的下載除錯,以及嵌入式開發的基本過程。
    • 二維碼:
      20145227鄢曼君 《資訊保安系統設計基礎》課程總結
  • 實驗二 韌體開發
    • 簡要內容:分析了02_pthread 03_tty中的程式碼;介紹了怎樣使用linux的armv4l-unknown-linux-gcc編譯、使用基於NFS方式的下載除錯以及嵌入式開發的基本過程。
    • 二維碼:
      20145227鄢曼君 《資訊保安系統設計基礎》課程總結
  • 實驗三 核心驅動設計入門
    • 簡要內容:介紹了安裝ADS、安裝GIVEIO驅動、安裝JTAG驅動的正確方法,並介紹瞭如何測試基本安裝是否正確。
    • 二維碼:
      20145227鄢曼君 《資訊保安系統設計基礎》課程總結
  • 實驗四 外設驅動程式設計
    • 簡要內容:介紹了在LINUX下進行驅動設計的原理以及使用模組方式進行驅動開發除錯的過程。
    • 二維碼:
      20145227鄢曼君 《資訊保安系統設計基礎》課程總結
  • 實驗五 簡單嵌入式WEB伺服器實驗
    • 簡要內容:介紹了在ARM開發板實現一個簡單的WEB伺服器的過程;在宿主機和實驗箱中實現了老師給的程式碼並分析了程式碼。
    • 二維碼:
      20145227鄢曼君 《資訊保安系統設計基礎》課程總結

程式碼託管連結和二維碼:

  • 連結:https://git.oschina.net/20145227/IS-Design-20145227
  • 二維碼:
    20145227鄢曼君 《資訊保安系統設計基礎》課程總結

  • 截圖 git log --pretty=format:"%h - %an, %ar : %s" 的結果:
    20145227鄢曼君 《資訊保安系統設計基礎》課程總結

  • 程式碼量彙總(用wc命令,有截圖):
    20145227鄢曼君 《資訊保安系統設計基礎》課程總結

  • 程式碼驅動的學習做到沒有?
    • 做到了。這學期開始的前幾周並沒有按照老師的要求做,而是直接像學習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小時。

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

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

學習效果自己滿意嗎?

  • 基本滿意。很多時候感覺自己的付出和回報還是成正比的,但是有些時候明明花了很多時間去準備最終效果卻並不好。

你覺得這門課老師應該繼續做哪一件事情?

  • 扇貝打卡然後期末加分這種方法很值得提倡,希望能夠繼續做下去。這不僅可以調動大家學習的積極性,而且還讓我們的英語水平提高了很多,對於四六級以及其他的方面都有很大的幫助。
  • 在部落格園裡發表部落格也是很好的一種總結心得體會的方法,值得提倡。部落格園是一個集思廣益的地方,大家把自己的學習心得體會都通過部落格的形式發表出來,然後大家可以提出意見,有什麼不懂的也可以直接在評論裡提出來,共同探討,共同解決問題。

你覺得這門課老師應該停止做哪一件事情?

  • 老師的教學方法都很好,目前我覺得所有的都可以繼續應用下去。

你覺得這門課老師應該開始做什麼新的事情?

  • 每次實驗之前,希望老師能夠講解一下實驗內容,有些實驗難度較大,自己想要做出來還是有點費勁的。就算按照教程做出來,但事實上很多東西也理解不了。所以希望老師可以著重為大家講解一下實驗,特別是程式碼的理解。

給出本文連結和二維碼

相關文章