該專欄是為Linux內核開發編程做鋪墊,如果你對操作系統很熟悉,想瞭解一些Linux內核發開的知識,請直接跳轉至《Linux內核編程專欄》,如果你對Linux內核編程也很熟悉,想瞭解Linux內核的各個模塊,可移步至《Linux內核分析專欄》,帶你領略Linux內核的絕美風光。 操作系統導學 ...
該專欄是為Linux內核開發編程做鋪墊,如果你對操作系統很熟悉,想瞭解一些Linux內核發開的知識,請直接跳轉至《Linux內核編程專欄》,如果你對Linux內核編程也很熟悉,想瞭解Linux內核的各個模塊,可移步至《Linux內核分析專欄》,帶你領略Linux內核的絕美風光。
操作系統導學會對一些基本的概念進行講解,但並不是單純的講解概念,而是通過操作系統發展歷史的脈絡,解釋一些概念。操作系統不斷改進,針對電腦硬體發展,用戶需求的變化,而提出的一些高效的設計。永遠記住,操作系統是管理硬體的藝術,將重要關鍵的資源高效且安全的抽象給用戶。我們按照是什麼?為什麼?怎麼做?的方法,針對操作系統的各個組件進行抽絲剝繭,達到讀者能掌握操作系統核心概念的目的,為後面Linux內核開發,深入理解Linux內核打下堅實的基礎。
一、專欄內容概覽
二、操作系統中重要的三個抽象
操作系統中有三個重要的抽象,分別是虛擬化,併發和持久化。
虛擬化與我們經常聽到的另一個虛擬化(運行虛擬機)有所區分,但也有相似之處,本質核心都是一個物理資源如何被覆用。
虛擬化分為虛擬化CPU和虛擬化記憶體;虛擬化CPU,主要是講CPU分時復用的問題,同樣會引出進程這個概念,從而讓CPU看起來支持多個程式同時運行的假象。虛擬化記憶體是主要是講物理記憶體的復用,將單一的物理記憶體虛擬化為每個進程獨占的記憶體地址空間,而且進程可用的實際記憶體空間是遠多於物理記憶體的,讓每個進程看起來擁有自己的記憶體。
併發涉及多線程概念以及多線程編程,抽象來說,線程是進程的抽象,一個進程可有多個線程組成。你可能有疑問,既然有了進程,為什麼還需要線程?這個我們將在併發給大家細細說來。
最後一部分是持久化,我們知道CPU計算出的數據是保存在記憶體上的,有些重要的數據是需要斷電仍可恢復的,就需要操作系統支持持久化。持久化涉及到磁碟,硬碟等硬體設備,需要將CPU產生的數據回寫到硬碟這類可持久保存的媒介上,可以將數據組織成文件,同時也需要具備從磁碟上找到該文件,這就要求操作系統需要對硬碟內容進行組織,這就需要文件系統參與,方面快速存儲和讀取文件。
該專欄會持續更新,期待與大家一起,一點點探索操作系統的內部世界。
如果你想瞭解Linux內核發開的知識,《Linux內核編程專欄》正在更新中,期待你的關註與訂閱;如果你想深入理解Linux內核的各個模塊,《Linux內核分析專欄》連載中,也期待你的關註與訂閱,讓我們一起領略Linux內核的絕美風光。
你的關註與訂閱是我們更新的最大動力!
更多技術內容和書籍資料獲取,入群技術交流敬請關註“明解嵌入式”
本文來自博客園,作者:Sharemaker,轉載請註明原文鏈接:https://www.cnblogs.com/Sharemaker/p/17071254.html