第一週:http://www.cnblogs.com/hxl681207/p/7988760.htmlhtml
在Linux環境下C語言程序的gcc編譯運行彙編方法,使用gdb進行調試、設置斷點等方法。
第三週:http://www.cnblogs.com/hxl681207/p/7988768.htmljava
教材內容第二章《信息的表示和處理》的自主學習,教材內容總結,以及教材和代碼學習中遇到的問題和解決。
第四周:http://www.cnblogs.com/hxl681207/p/7988771.htmlgit
課上未提交題目命令行傳入文件實現myod,第十章教材內容學習以及兩個重要命令 man -k key1 | grep key2| grep 2和grep -nr XXX /usr/include的掌握。
第五週:http://www.cnblogs.com/hxl681207/p/7988784.html算法
教材內容第三章《程序的機器級表示》的自主學習,教材內容總結,以及教材和代碼學習中遇到的問題和解決。
第六週:http://www.cnblogs.com/hxl681207/p/7988791.html編程
教材內容第八章《異常控制流》,第十章《系統級I/O》的自主學習,教材內容總結,以及教材和代碼學習中遇到的問題和解決。
第七週:http://www.cnblogs.com/hxl681207/p/7988797.html緩存
教材內容第四章《處理器體系結構》的自主學習,教材內容總結,以及教材和代碼學習中遇到的問題和解決。
第八週:http://www.cnblogs.com/hxl681207/p/7988805.html安全
教材內容第十一章《網絡編程》簡單過一下,教材第十二章《併發編程》的自主學習,教材內容總結,以及教材和代碼學習中遇到的問題和解決。
第九周:http://www.cnblogs.com/hxl681207/p/7988809.html服務器
教材內容第六章《存儲器層次結構》的自主學習,教材內容總結,以及教材和代碼學習中遇到的問題和解決。
第十一週:http://www.cnblogs.com/hxl681207/p/7966813.html網絡
教材內容第九章《虛擬存儲器》的自主學習,教材內容總結,以及教材和代碼學習中遇到的問題和解決。
第十三週:http://www.cnblogs.com/hxl681207/p/8051767.html多線程
從新精學第八章,自認很是重要的一章,對課本內容反覆學習,而且所有家庭做業的編寫製做,以及藍墨雲中的試題總結,結對學習,給同伴講解收穫和疑惑,共同窗習,共同進步。
第十四周:http://www.cnblogs.com/hxl681207/p/8082268.html
本週老師讓咱們學習本身認爲學的最差的一章,我學習的是第十二章。一方面,併發進場出如今計算機系統許多不一樣的層面上,使用很是普遍;另外一方面,這個知識背景的硬件異常處理程序,Linux信號處理程序很是常見。因此爲了更好的深刻理解計算機系統,必需要掌握好這一章的知識,因此藉此機會從新學習這一章的內容。
實驗(1):http://www.cnblogs.com/hxl681207/p/7988843.html
實驗一 開發環境的熟悉:交叉編譯環境,目標機與宿主機的聯通,目標機運行程序以及最後的清理工做,實驗一爲小組共同完成。
實驗(2):http://www.cnblogs.com/hxl681207/p/7988850.html
實驗二 固件程序設計:要用系統管理員身分運行uVision4,破解MDK(破解程序中target必定選ARM),KEIL-MDK 中添加 Z32 SC-000 芯片庫,打開Z32的電源開關前,按住Reboot按鍵不放,兩次打開電源開關,Z32便可被電腦識別,進行下載調試。網上找一下國密算法標準的代碼和標準測試代碼,在Ubuntu中分別用gcc和gcc-arm編譯,並回答四個算法的用途。小組共同完成。
實驗(3):http://www.cnblogs.com/hxl681207/p/7988855.html
實驗三 實時系統:基於Linux Socket程序設計實現wc(1),使用多線程實現wc服務器並使用同步互斥機制保證計數正確。我的完成。
實驗(4):http://www.cnblogs.com/hxl681207/p/7967178.html
實驗四 外設驅動程序設計:學習資源中全課中的「hqyj.嵌入式Linux應用程序開發標準教程.pdf」中的第十一章,在Ubuntu完成資源中全課中的「hqyj.嵌入式Linux應用程序開發標準教程.pdf」中的第十一章的test試驗。我的完成。
實驗 (5) :http://www.cnblogs.com/hxl681207/p/8046524.html
實驗五 通訊協議設計:瞭解學習Linux下openssl,測試對稱算法中的AES,非對稱算法中的RSA,Hash算法中的MD5,在Ubuntu中實現對實驗二中的「wc服務器」經過混合密碼系統進行防禦。我的完成。
(1)2017-9-27課堂實踐:http://www.cnblogs.com/hxl681207/p/7988764.html
在Linux環境下C語言程序的gcc編譯運行彙編方法,使用gdb進行調試、設置斷點等方法。 有關設置gdb斷點,創建靜動態庫等課上未提交的題目補充,以及自主編程製做MYOD的實現。
(2)2017-10-25課堂實踐:http://www.cnblogs.com/hxl681207/p/7988816.html
課上有關彙編代碼的轉換和刪除的未提交題目的補充,以及教材 p97 2.96 2.97,完備的測試。 課上相關未提交題目的補充,在本身的電腦中完成https://www.shiyanlou.com/courses/231緩衝區溢出漏洞實驗的詳細實驗過程。
(3)第八週課堂測試:http://www.cnblogs.com/hxl681207/p/7988824.html
課上有關X86轉Y86和代碼反彙編的相關未提交題目的補充,以及課下實踐書後習題的實踐測試和多線程併發服務器的製做與測試。
(4)第十週課堂實踐:http://www.cnblogs.com/hxl681207/p/7988830.html
內心很難受,課上覺得是自動提交,就沒有本身去點提交做業,結果誰知道又多了這樣一次的學習機會
(5)IPC: http://www.cnblogs.com/hxl681207/p/7988836.html
課上未提交題目有關stat(1)指令的學習及編寫的提交以及課下自主學習IPC相關知識。
截圖 git log --pretty=format:"%h - %an, %ar : %s" 的結果
代碼驅動的學習作到沒有?
答案是確定的!最開始對於婁老師的給出的代碼託管,須要區分出`src`文件和`bin`文件,在使用開源中國git上傳的時候是如何作到能夠分開傳的,在學期的開始仍是存在問題的,後來經過仔細閱讀婁老師的[《代碼驅動的程序設計學習》](http://www.cnblogs.com/rocedu/p/5927306.html),獲得了問題是如何解決的,就好比原來使用gcc的命令只知道使用`gcc a.c -o a`編譯`a.c`文件,後來學習了《代碼驅動程序設計學習》知道gcc命令還可使用成`gcc /src 13/a.c -o /bin 13/a`這樣就能夠將`src 13`文件夾中的`a.c`文件編譯到`bin 13`中,這樣就能夠區分出`src`和`bin`文件,此時在使用git上傳條理性就會清楚許多。 還有經過學習《代碼驅動的程序設計學習》也會使用`tree`命令來查看上傳的代碼是否有條理性。
加點代碼,改點代碼是理解的最好方式,參考編程的智慧,談談你的心得
咱們在進行代碼學習時,運行完代碼後能夠刪改一些代碼的內容來查看代碼的運行結果有何改變,這樣能夠更好的理解代碼的含義。
實踐上有什麼經驗教訓
咱們在進行代碼實踐時,必定要先了解代碼再運行,由於好比線程代碼運用到了庫的知識,咱們不能用簡單的gcc格式直接編譯,不然是不能成功的。
其實本身提出的問題,大多都是應付式的問題,有一些是學習的重點但大多都是顯而易見的基礎知識。可是總的來講本身仍是學到了東西,知道了
無
本身收穫的地方
這門課程是《深刻理解計算機操做系統》目的是系統的理解計算機中硬件和操做系統是具體如何實現應用的,存儲器、處理器、還有機器語言都是如何使用的。已是第6個學期了,雖然原來不管是《計算機導論的課程》仍是《c語言程序設計基礎》、《Java程序設計基礎》都會多多少少了解部分計算機硬件知識。可是經過這一學期的學習對於就計算機這些知識有了更加深刻的理解和感悟。
一樣以爲最大的收穫是會使用Linux操做系統,會使用各類各樣的命令來操做計算機包括虛擬機,當在虛擬機下完成一些簡單的操做,打開文件,編譯運行文件,查看幫助手冊,用git託管代碼,查看託管日誌,都是經過熟練的掌握命令時候就發現成就感滿滿。
本身不足的地方
不足的地方仍是在於學習上。在第一節課上老師對於這門課程作出了學習計劃。首先,對於每週代碼的編譯數量存在不足,沒有嚴格的按照計劃實行。有些老師給的帶代碼僅僅只是編譯了運行告終果,掌握了代碼功能,可是並不清楚具體使用的函數是如何實現這些功能的。
有時候惰性太大,博客做業老是想拖到週末去完成。偶爾加上其它課程老是完成的不夠好。
若是從新學習,怎麼作才能夠學的更好:
若是從新學習《深刻理解計算機操做》這門課程,我以爲首先須要按照每週的學習計劃完成,不管是代碼仍是課本知識的學習,可能知識量會很大,可是仍是須要堅持去作。就如同《java程序設計基礎》同樣,一部跟不上步步跟不上,因此必定要堅持去作
其次是多編譯程序,已經學習過c語言和java語言,可能掌握的不是很紮實,但仍是須要多編程多訓練。尤爲是虛擬機的使用,用經常使用的Linux命令去完成一些打開文件,編譯運行文件,查看幫助手冊,用git託管代碼,查看託管日誌等簡單操做。也不須要 強行去記憶命令,多多使用,孰能生巧,長時間去練習就能夠掌握。
我以爲這門課是一門計算機的課程,老師應該在一些重點的知識點方面講解一下,或者對於測試題目難度大的進行講解,畢竟每一個人的接受能力不同,並非徹底的自學均可以獲得好的成績。