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

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

每週做業連接彙總

  • 第0周:預習課本問題及安裝虛擬機

  • 第1周:瞭解linux核心命令

  • 第2周:熟悉vim操做,用gcc編譯代碼

  • 第3周:初步學習計算機中各類數的表示和運算

  • 第5周:學習彙編,瞭解了逆向的思想應用

  • 第6周:按裝了Y86處理器,瞭解ISA抽象

  • 第7周:學習掌握了存儲器的體系結構

  • 第10周:學習了經常使用的Linux指令,加深對指令的理解

  • 第12周:複習九、十、11的代碼與實驗

  • 第13周:學習網絡編程和併發編程

實驗連接總結

代碼託管連接

  • 開源中國代碼託管連接html

    舊的項目地址託管連接java

    注:以前的項目地址Linux-besti-is-20145335發生了損壞,上傳的文件打不開,而且以前上傳的格式沒有完整的按照要求來,將bin文件和src文件上傳到了一塊兒。因而從新創建了一個新的項目Linux-bestiality-is-2016-2017-1-20145335,並將原來舊項目地址的文件git clone下來按照要求區分出binsrc文件從新傳入新的項目中linux

  • 使用git log --pretty=format:"%h - %an, %ar : %s"的截圖git


  • 代碼量彙總使用命令wc -l find src -name *.c出現問題,因而使用命令find .-name '*.c'|xargs wc -l *.c,總用量以下。(裏面部分代碼是用來嘗試虛擬機下git 是否可以鏈接成功可以上傳的測試代碼,還有一部分當時處於不及格隊列中加練的代碼)


  • 關於代碼驅動學習是否作到,個人答案是確定的,作到了代碼驅動學習,最開始對於婁老師的給出的代碼託管,須要區分出src文件和bin文件,在使用開源中國git上傳的時候是如何作到能夠分開傳的,在學期的開始仍是存在問題的,後來經過仔細閱讀婁老師的《代碼驅動的程序設計學習》,獲得了問題是如何解決的,就好比原來使用gcc的命令只知道使用gcc a.c -o a編譯a.c文件,後來學習了《代碼驅動程序設計學習》知道gcc命令還可使用成gcc /src 13/a.c -o /bin 13/a這樣就能夠將src 13文件夾中的a.c文件編譯到bin 13中,這樣就能夠區分出srcbin文件,此時在使用git上傳條理性就會清楚許多。 還有經過學習《代碼驅動的程序設計學習》也會使用tree命令來查看上傳的代碼是否有條理性。


  • 在實踐代碼的基礎上也是有所體會,在第九周的時候婁老師曾今發了學習代碼,然而我只是編譯並運行了而已,並附上了代碼運行結果的截圖,就覺得完成了任務。但是婁老師的評論是代碼不只要運行更多要理解。後來明白了代碼不能僅是運行,否則學習更多的是經常使用命令了,並非所須要完成所學的代碼。因此在第十、11周婁老師發的代碼後就會在運行以前打開.c文件,看源代碼,對於不動函數上網去百度,去查閱資料。就好比最開始接觸的fork()函數,對於剛瞭解到的子進程和父進程,就經過在源代碼中加減fork()函數的個數觀察代碼運行結果,在實踐中學習。

第0周提出的學習問題

  • 總的來講,只有小部分我提出的問題能抓住了重點,好比第6章:存儲器是由哪些單元組成的,可是也大部分問題提出的太大,不夠細緻,好比第8章:系統是如何處理遇到的突發狀況;第五章的:如何最大化的優化程序。雖然有些問題當時是認真思考過提出來的,可是如今看起來就像糊弄做業同樣···編程

    還有不少知識通過一學期的學習和最開始什麼都不知道去對比仍是很不同。包括思考問題的角度和解決問題的方法,畢竟是當時是看着目錄提出的問題,如今是學了一學期,更深的理解了課本的知識。vim

  • Q1:計算機的組件是如何工做?緩存

    答:計算機是由硬件和系統軟件組成,它們共同工做來運行應用程序。安全

  • Q2:各類不一樣編碼的運算區別?服務器

    答:現代計算機存儲和處理信息以二進制信號表示。計算機用幾種不一樣的二進制表示形式來編碼數值。網絡

  • Q3:程序語言如何轉換成機器語言?

    答:計算機執行機器代碼,用字節序列編碼低級的操做。GCC c語言編譯器以彙編代碼的形式產生輸出,彙編代碼是及其代碼的文本表示,給出程序中的每一條指令。而後GCC 調用匯編器和連接器,從而根據彙編代碼生成可執行的機器代碼。

  • Q4:計算機處理器是如何設計的?

    答:基於順序操做,將這個處理器每條指令的執行分爲五步,每一個步驟由一個獨立的硬件部分或者階段來處理。

  • Q5:怎麼最大化的優化程序?

    答:第一步是消除沒必要要的內容,讓代碼儘量有效地執行它指望的工做。第二步,利用處理器提供的指令集並行能力,同時執行多條指令。

  • Q6:存儲器是由哪些層次結構組成的?

    答:L0:寄存器;L1:告訴緩存;L2:告訴緩存;L3:高速緩存;L4:主存;L5:本地二級存儲(本地磁盤);L6:遠程二級存儲(分佈式文件系統、Web服務器);

  • Q7:連接器起到的功能是什麼?

    答:連接器是將箇中國代碼和數據收集起來並組合成一個單一文件的過程。

  • Q8:系統是如何處理遇到的突發情況?

    答:經過控制異常控制流來處理遇到的突發情況。

  • Q9:儲存器怎麼管理最高效?

    答:現代操做系統對主存提供了一個抽象概念,叫作虛擬存儲器。

  • Q10:系統級的I\O和原來java中遇到的I\O有什麼不一樣?

    答:系統及I/O是指全部計算機操做系統中文件的輸入與輸出。而java中的I/O是指數據信息經過程序的寫入和寫出

  • Q11:如何編寫客戶端-服務器程序?

    答:經過經常使用的socket()、linsten()、connection()函數來編寫程序。

  • Q12:三種不一樣的併發程序技術的區別?

    答:使用進程併發必須使用某種顯式的進程間通訊機制;使用I/O多路複用,全部的流都會共享一個地址空間。;使用線程,像進程流同樣由內核進行調度,而像I/O多路複用流同樣共享一個虛擬地址空間。

加分項目

  • 有些加分項目是遇到了問題,將問題放在了小組論壇上,和同窗一塊兒討論。關於計算機的學習,每一個人老是會遇到各類各樣的問題,當把問題放到一塊兒,你們一塊兒討論一下,不只遇到的問題能夠解決,經過討論,印象更深入。

  • 另外一個加分項目是《GDB調試彙編堆棧過程分析》最開始完成這個項目的時候,最後的表格即堆棧的變化不太清楚,後來再次執行了一次,並修改了博客內容,獲得了加分。

    二維碼:

  • 還有加分博客

    第六週:[click here](http://www.cnblogs.com/20145335hh/p/5990427.html)
    
    
    
    
    
    第八週:[click here](http://www.cnblogs.com/20145335hh/p/6035068.html)
    
    
    
    第十一週:[click here](http://www.cnblogs.com/20145335hh/p/6107369.html)
  • 還有一個做業是《MarkdownPad2使用心得》雖然不是加分做業,可是是主動去寫的一篇博客,也是很認真去完成的。

    二維碼:

扣分項目

  • 沒有過項目被扣分。雖然成績不是很高,可是每一步都按照老師的要求的來,因此沒有過項目被扣分。

待及格隊列管理制度

  • 優勢

    首先待及格管理制度會有憂患意識。就是知道本身已經不及格了,就會更加努力的去學習,達到及格線而且努力取得更好的成績。這種授課方式,一步跟不上,步步跟不上。同時也能督促着多學習。

  • 缺點

    是額外增長的學習內容。進入不及格隊列的緣由是由於以前的考試不及格或者前幾回積累下來致使不及格。因此但願增長額外學習內容是與之有關的,而不是隨便學習一部份內容發篇博客就算完成任務,這樣該沒有掌握的內容還依然沒有掌握。但願老師可以監督待及格同窗圈定學習內容。

課程的收穫與不足

  • 本身收穫的地方

    這門課程是《深刻理解計算機操做系統》目的是系統的理解計算機中硬件和操做系統是具體如何實現應用的,存儲器、處理器、還有機器語言都是如何使用的。已是第6個學期了,雖然原來不管是《計算機導論的課程》仍是《c語言程序設計基礎》、《Java程序設計基礎》都會多多少少了解部分計算機硬件知識。可是經過這一學期的學習對於就計算機這些知識有了更加深刻的理解和感悟。

    一樣以爲最大的收穫是會使用Linux操做系統,會使用各類各樣的命令來操做計算機包括虛擬機,當在虛擬機下完成一些簡單的操做,打開文件,編譯運行文件,查看幫助手冊,用git託管代碼,查看託管日誌,都是經過熟練的掌握命令時候就發現成就感滿滿。

  • 本身不足的地方

    不足的地方仍是在於學習上。在第一節課上老師對於這門課程作出了學習計劃。首先,對於每週代碼的編譯數量存在不足,沒有嚴格的按照計劃實行。有些老師給的帶代碼僅僅只是編譯了運行告終果,掌握了代碼功能,可是並不清楚具體使用的函數是如何實現這些功能的。

    有時候惰性太大,博客做業老是想拖到週末去完成。偶爾加上其它課程老是完成的不夠好。

給學弟學妹的建議

  • 若是從新學習,怎麼作才能夠學的更好:

    若是從新學習《深刻理解計算機操做》這門課程,我以爲首先須要按照每週的學習計劃完成,不管是代碼仍是課本知識的學習,可能知識量會很大,可是仍是須要堅持去作。就如同《java程序設計基礎》同樣,一部跟不上步步跟不上,因此必定要堅持去作

    其次是多編譯程序,已經學習過c語言和java語言,可能掌握的不是很紮實,但仍是須要多編程多訓練。尤爲是虛擬機的使用,用經常使用的Linux命令去完成一些打開文件,編譯運行文件,查看幫助手冊,用git託管代碼,查看託管日誌等簡單操做。也不須要 強行去記憶命令,多多使用,孰能生巧,長時間去練習就能夠掌握。

問卷調查

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

    大概25-35個小時,平均都在30個小時左右。

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

    有提升,通過上學期的java課程的學習,已經基本適應這種授課方式,效率會有所提升

  • 學習效果本身滿意嗎?

    不是很滿意,由於進過一次待及格對列,以後再想追趕就很難了,即便一步步去按照要求去作,也仍是和其餘同窗相比會差一些。因此對於此次的學習效果不是很是滿意。

  • 課程結束後會繼續一週至少一篇博客嗎?(若是能作到,畢業時我把你的博客給你集結成一本書送給你做記念)

    課程結束後應該會繼續去寫博客吧,除了做業必需要求的以外也許會寫一些有關電腦等知識面的隨筆。

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

    我以爲老師應該堅持讓同窗學會使用git來管理代碼,不只方便老師的堅持,對於本身的查看也會十分方便。

    還有堅持待及格管理制度,這樣會有很強的憂患意識可以督促學習

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

    我以爲老師能夠減小組隊的次數,有些人會由於其餘客觀或者主觀或者懶惰等緣由沒有很好的完成內容致使影響隊友的成績。

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

    我以爲這門課是一門計算機的課程,老師應該在一些重點的知識點方面講解一下,或者對於測試題目難度大的進行講解,畢竟每一個人的接受能力不同,並非徹底的自學均可以獲得好的成績。

本文連接

課程總結

相關文章
相關標籤/搜索