第0周做業:對本書每章提一個問題html
http://www.cnblogs.com/lmc1998/p/8011599.htmljava
第一週做業:熟悉Linux系統下的開發環境及一些軟件的使用,學習連接的知識。git
http://www.cnblogs.com/lmc1998/p/7587541.html算法
第二週做業:複習C語言中關於二進制文件和文本文件讀寫的相關內容,模仿od完成myod。編程
http://www.cnblogs.com/lmc1998/p/7606215.html緩存
第三週做業:學習第二章《信息的表示和處理》進一步理解「信息=位+上下文」。安全
http://www.cnblogs.com/lmc1998/p/7657916.htmlbash
第四周做業:完成myod改進版,學習第十章,掌握系統編程錯誤處理的方式。服務器
http://www.cnblogs.com/lmc1998/p/7673924.html網絡
第五週做業:掌握X86彙編基礎,瞭解ISA(指令集體系結構),學習函數調用棧幀的概念,並用GDB進行調試。
http://www.cnblogs.com/lmc1998/p/7709305.html
第六週做業:學習教材第八章,瞭解異常及其種類,理解進程和併發的概念,掌握進程建立和控制的系統調用及函數使用。
http://www.cnblogs.com/lmc1998/p/7751335.html
第七週做業:學習第四章,瞭解並掌握ISA,觸類旁通學習其餘體系結構。
http://www.cnblogs.com/lmc1998/p/7782962.html
第八週做業:學習第十一十二章內容,掌握三種併發的方式:進程、線程、I/O多路複用,線程控制及相關係統調用,線程同步互斥及相關係統調用
http://www.cnblogs.com/lmc1998/p/7821487.html
第九周做業:學習第六章《存儲器層次結構》,掌握有關知識。
http://www.cnblogs.com/lmc1998/p/7859606.html
第十週做業:無
第十一週做業:學習第九章《虛擬存儲器》的內容。
http://www.cnblogs.com/lmc1998/p/7967387.html
第十二週做業:無
第十三週做業:回顧一學期所學知識,我感受網絡編程和併發很重要,因此從新作了總結。
http://www.cnblogs.com/lmc1998/p/8051942.html
第十四周做業:我認爲我學的最差的是存儲器這一章,因此我從新學習了一遍。
http://www.cnblogs.com/lmc1998/p/8093181.html
第十五週做業:課程總結
第五週加分題--mybash的實現:使用fork,exec,wait實現mybash。
http://www.cnblogs.com/lmc1998/p/8011063.html
第六週課上做業:完成課上沒完成的以及補充做業。
http://www.cnblogs.com/lmc1998/p/7750251.html
第六章課上考試題:課上沒交上的做業的博客補交。
http://www.cnblogs.com/lmc1998/p/7897485.html
第八週課下總結:完成課上沒完成的以及補充做業。
http://www.cnblogs.com/lmc1998/p/7821975.html
課下加分項mypwd實現:經過getcwd和readdir()來實現mypwd。
http://www.cnblogs.com/lmc1998/p/7859280.html
第十週課下做業-IPC:研究Linux下IPC機制:原理,優缺點。
http://www.cnblogs.com/lmc1998/p/8011521.html
實驗一 開發環境的熟悉:學習了交叉編譯,分清了宿主機與目標機,瞭解了NFC和超級終端的使用。
http://www.cnblogs.com/lmc1998/p/7690037.html
課下實驗 緩衝區溢出漏洞:漏洞的出現是因爲數據緩衝器和返回地址的暫時關閉,溢出會引發返回地址被重寫,利用該漏洞進行攻擊。
http://www.cnblogs.com/lmc1998/p/7749681.html
實驗二 固件程序設計:學習使用並安裝MDK,JLink驅動,完成LED實驗。
http://www.cnblogs.com/ljq1997/p/7786639.html
實驗三 實時系統:基於Linux Socket程序設計實現wc(1)服務器(端口號是你學號的後6位)和客戶端,以及多線程的改進版。
http://www.cnblogs.com/lmc1998/p/7862586.html
實驗四 外設驅動程序設計:學習資源中全課中的「hqyj.嵌入式Linux應用程序開發標準教程.pdf」中的第十一章,並完成其中的test試驗。
http://www.cnblogs.com/lmc1998/p/7967340.html
實驗五 通信協議設計:基於Socket實現TCP通訊,研究OpenSSL算法,測試對稱算法中的AES,非對稱算法中的RSA,Hash算法中的MD5。選用合適的算法,基於混合密碼系統實現對TCP通訊進行機密性、完整性保護。實現對實驗二中的「wc服務器」經過混合密碼系統進行防禦。
http://www.cnblogs.com/lmc1998/p/8040473.html
https://gitee.com/lmc1998/lmc20155326/tree/master/src
截圖 git log --pretty=format:"%h - %an, %ar : %s" 的結果
代碼量彙總提交statistics.sh的支持截圖
很慚愧,沒有徹底作到。
多練習的確是提升的最有效的辦法,勤於動手,知識才能學到手。
纔開始時,沒有進行有效的實踐,只是運行了代碼,沒有思考代碼的意義是什麼,致使效率低下。
我以爲開學初提出的問題比較膚淺,只是抓住了表面。
第一章、什麼是計算機系統?
計算機系統由計算機硬件和軟件兩部分組成。硬件包括中央處理機、存儲器和外部設備等;軟件是計算機的運行程序和相應的文檔。計算機系統具備接收和存儲信息、按程序快速計算和判斷並輸出處理結果等功能。
第二章 浮點運算中IEEE標準的運算規則是什麼樣的?
IEEE定義了多種浮點格式,但最多見的是三種類型:單精度、雙精度、擴展雙精度,分別適用於不一樣的計算要求。通常而言,單精度適合通常計算,雙精度適合科學計算,擴展雙精度適合高精度計算。一個遵循IEEE 754標準的系統必須支持單精度類型(強制類型)、最好也支持雙精度類型(推薦類型),至於擴展雙精度類型能夠隨意。
第三章 爲何要懂彙編語言,彙編語言能帶來哪些方便?
彙編語言可以保持機器語言的一致性,直接、簡捷,並能像機器指令同樣訪問、控制計算機的各類硬件設備,如磁盤、存儲器、CPU、I/O端口等,使用匯編語言,能夠訪問全部可以被訪問的軟、硬件資源。
第四章 處理器的流水線原理是什麼?
CPU將操做分紅一個一個的階段(stage)。每一個stage都是由一個組合邏輯電路和一個流水線寄存器構成的。它經過時鐘週期來控制信號,若是遇到了時鐘的上升沿,那麼就會轉移到下一個階段。在CPU內部,造成了一套取指令-譯碼-執行-訪存-寫回的硬件設計。當有數據完成了取指令的操做的時候,就能夠發下一個取指令的信號了,這樣能夠保證取指令的硬件邏輯不會閒着。
第五章 如何進行程序優化?具體在哪些方面
1)高級設計。選擇恰當的數據結構和算法;
2)基本編碼原則:消除連續的函數調用;消除沒必要要的存儲器引用;
3)低級優化。循環展開;提升並行性,如多個累積變量,從新結合技術,條件傳送代替條件選擇。
第六章 存儲器的層次結構有哪些?
存儲器層次結構示例以下圖所示:
存儲器層次結構的中心思想是,對於每一個k,位於k層的更快更小的存儲設備做爲位於k+1層的更大更慢的存儲設備的緩存。數據老是以塊大小做爲傳送單元在第k層和k+1層之間來回拷貝的。
第七章 動態連接靜態連接有什麼不一樣分別怎樣進行呢?
連接是將各類代碼和數據部分收集起來並組合成爲一個單一文件的過程,這個文件可被加載(拷貝)到存儲器中並執行。連接能夠執行於編譯時,也就是源代碼翻譯成機器碼時,也能夠執行於加載時,也就是程序被加載到存儲器並執行時,甚至執行於運行時,由應用程序來執行。
動態連接是指在生成可執行文件時不將全部程序用到的函數連接到一個文件,由於有許多函數在操做系統帶的dll文件中,當程序運行時直接從操做系統中找。而靜態連接就是把全部用到的函數所有連接到exe文件中。動態連接是隻創建一個引用的接口,而真正的代碼和數據存放在另外的可執行模塊中,在運行時再裝入;而靜態連接是把全部的代碼和數據都複製到本模塊中,運行時就再也不須要庫了。
第八章 怎麼處理異常,如何有效避免異常?
當處理器檢測到有事件發生時,它會經過跳轉表,進行一個間接過程調用(異常),到異常處理程序。
系統中可能的某種類型的異常都分配了一個惟一的非負整數的異常號。異常號是到異常表中的索引。
第九章 虛擬存儲器的功能
將主存看做是一個存儲在磁盤上的地址空間的高速緩存,在主存中只保護活動的區域,並根據須要在磁盤和主存之間來回傳送數據;爲每一個進程提供了一致的地址空間,從而簡化了存儲器管理;
保護了每一個進程的地址空間不被其它進程破壞。
第十章 I/O函數常見的有哪些?
CPU與外部設備、存儲器的鏈接和數據交換都須要經過接口設備來實現,前者被稱爲I/O接口,然後者則被稱爲存儲器接口。存儲器一般在CPU的同步控制下工做,接口電路比較簡單;而I/O設備品種繁多,其相應的接口電路也各不相同,所以,習慣上說到接口只是指I/O接口。
第十一章 網絡編程是什麼具體怎樣實現?
客戶端的編程主要由三個步驟實現:
一、 創建網絡鏈接
二、 交換數據
三、 關閉網絡鏈接
服務器端的編程步驟和客戶端不一樣,是由四個步驟實現,依次是:
一、 監聽端口
二、 得到鏈接
三、 交換數據
四、關閉和客戶端的鏈接。
第十二章 併發編程是什麼爲何要學習它?
所謂併發編程是指在一臺處理器上「同時」處理多個任務。併發是在同一實體上的多個事件。多個事件在同一時間間隔發生。
因爲不知道全部的加分博客,只列出了已知的加分博客:
我認爲當你深刻學習,講你的學習歷程一一展示時,就會是優秀博客了。
http://www.cnblogs.com/lmc1998/p/8128633.html
不動手實踐,致使課上做業完不成
沒交上做業
這學期其實比起上學期的java,我認真了很多,多是習慣了這種方法吧,可是我心裏仍是對這種偏自學的模式不太感冒。
我以爲我應該須要提升個人學習積極性和效率。
個人結對對象是20155320,在結對過程當中咱們一塊兒對學習過程當中遇到的問題進行了討論,便於兩方的學習。
加油吧~
加大學習熱情和效率。
平均花了三十五小時的樣子,花在了學習書上內容以及課上沒完成的做業和補充做業上。
感受和上學期學習java相比提升了很多。
說實話,跟上學期的java課程比起來是滿意的,可是和其餘相似於c語言這樣的學習效果差了一點。
課程結束後,估計是不能保持一週一篇博客了。
我認爲應該繼續講課,這學期不光光自學感到很好。
中止使用不能自動提交的藍墨雲,有時候明明作了(雖然可能沒作完)可是卻由於時間截止一分都沒有很難過。
多與學生交流吧。
感受這學期比起以前,改變了部分教學模式,老師也開始講課了,纔開始講的第一節課我真的是有流淚的衝動,終於不是徹底自學了。
http://www.cnblogs.com/lmc1998/p/8128633.html