1. 程式人生 > >2017-2018-1 20179215 《深入理解計算機操作系統》第一章

2017-2018-1 20179215 《深入理解計算機操作系統》第一章

包括 有效 漏洞 內存分配 sca 機制 () str 內存

《深入理解計算機操作系統》第一章

?這一章主要是讓我們對計算機系統有個整體的了解,系統介於軟件與硬件之間,通過軟件與硬件的相互交互來運行應用程序.而每個環節又分為各種層次,從而更好的提供上層抽象。理解一個系統的實質的運行機制,才能真正了解程序,了解一些實際發生的情況是什麽原理。

?書中也說到通過這一章的漫遊你會了解到之後你要投入心力學習的方向,以及學習一些實踐的技巧,包括如何優化自己的代碼,如何避免緩沖區溢出錯誤帶來的安全漏洞等,深入學習後學會如何編寫自己的Unix Shell,自己的動態分配存儲包甚至是自己的Web服務器,要想實現這些目標,必須堅實的打下良好的基礎。

?就比如我們要了解緩沖區溢出錯誤帶來的漏洞,首先就得了解內存運行機制,以及棧的操作等,我們要理解數據和控制信息存儲在程序棧上的方式會引起的後果。為什麽溢出錯誤會帶來嚴重的後果,不就是簡單的內存分配不夠嗎?例如C語言一些非安全字符串:strpy(),strcpy(),strcat(),sprintf(),gets(),scanf()等都是沒有邊界檢查數組和指針的引用的,那麽開發人員要如何檢查邊界?又是新的問題。

?我發現這本書以及《從問題到程序》第一章都有以hello.c為例講程序編譯的過程,並且作者都有強調了解編譯系統如何工作是大有益處的,比如我們會了解一個函數調用開銷多大?while循環比for循環更有效嗎?等等。書中還分析了從鍵盤上讀取hello命令,shell程序將字符逐一讀入寄存器,再把它放到內存中在實際的硬件上的流程圖。我想作者是在給我們描繪一個整體框架,之後的章節會一一攻破。

2017-2018-1 20179215 《深入理解計算機操作系統》第一章