摘要:
虛擬文件系統(VFS)是linux內核和具體I/O設備之間的封裝的一層共通訪問接口,通過這層接口,linux內核可以以同一的方式訪問各種I/O設備。 虛擬文件系統本身是linux內核的一部分,是純軟件的東西,并不需要任何硬件的支持。 主要內容: 虛擬文件系統的作用 虛擬文件系統的4個主要對象 文件系 閱讀全文
posted @ 2017-08-24 18:25
閆寶平
閱讀(248)
評論(0)
推薦(0)
摘要:
內核的內存使用不像用戶空間那樣隨意,內核的內存出現錯誤時也只有靠自己來解決(用戶空間的內存錯誤可以拋給內核來解決)。 所有內核的內存管理必須要簡潔而且高效。 主要內容: 內存的管理單元 獲取內存的方法 獲取高端內存 內核內存的分配方式 總結 1. 內存的管理單元 內存最基本的管理單元是頁,同時按照內 閱讀全文
posted @ 2017-08-24 18:17
閆寶平
閱讀(230)
評論(0)
推薦(0)
摘要:
系統中有很多與時間相關的程序(比如定期執行的任務,某一時間執行的任務,推遲一段時間執行的任務),因此,時間的管理對于linux來說非常重要。 主要內容: 系統時間 定時器 定時器相關概念 定時器執行流程 實現程序延遲的方法 定時器和延遲的例子 1. 系統時間 系統中管理的時間有2種:實際時間和定時器 閱讀全文
posted @ 2017-08-24 18:10
閆寶平
閱讀(261)
評論(0)
推薦(0)
摘要:
內核中提供了多種方法來防止競爭條件,理解了這些方法的使用場景有助于我們在編寫內核代碼時選用合適的同步方法, 從而即可保證代碼中臨界區的安全,同時也讓性能的損失降到最低。 主要內容: 原子操作 自旋鎖 讀寫自旋鎖 信號量 讀寫信號量 互斥體 完成變量 大內核鎖 順序鎖 禁止搶占 順序和屏障 總結 1. 閱讀全文
posted @ 2017-08-24 17:47
閆寶平
閱讀(182)
評論(0)
推薦(0)
摘要:
存在共享資源(共享一個文件,一塊內存等等)的時候,為了防止并發訪問時共享資源的數據不一致,引入了同步機制。 主要內容: 1. 同步的概念 了解同步之前,先了解另外2個概念: 臨界區 - 也稱為臨界段,就是訪問和操作共享數據的代碼段。 競爭條件 - 2個或2個以上線程在臨界區里同時執行的時候,就構成了 閱讀全文
posted @ 2017-08-24 17:46
閆寶平
閱讀(208)
評論(0)
推薦(0)
摘要:
在前一章也提到過,之所以中斷會分成上下兩部分,是由于中斷對時限的要求非常高,需要盡快的響應硬件。 主要內容: 中斷下半部處理 實現中斷下半部的機制 總結中斷下半部的實現 中斷實現示例 1. 中斷下半部處理 那么對于一個中斷,如何劃分上下兩部分呢?哪些處理放在上半部,哪些處理放在下半部? 這里有一些經 閱讀全文
posted @ 2017-08-24 17:45
閆寶平
閱讀(320)
評論(0)
推薦(0)
摘要:
中斷處理一般不是純軟件來實現的,需要硬件的支持。通過對中斷的學習有助于更深入的了解系統的一些底層原理,特別是驅動程序的開發。 主要內容: 什么是中斷 中斷類型 中斷相關函數 中斷處理機制 中斷控制方法 總結 1. 什么是中斷 為了提高CPU和外圍硬件(硬盤,鍵盤,鼠標等等)之間協同工作的性能,引入了 閱讀全文
posted @ 2017-08-24 17:33
閆寶平
閱讀(205)
評論(0)
推薦(0)
摘要:
內核數據結構貫穿于整個內核代碼中,這里介紹4個基本的內核數據結構。 利用這4個基本的數據結構,可以在編寫內核代碼時節約大量時間。 主要內容: 鏈表 隊列 映射 紅黑樹 1. 鏈表 鏈表是linux內核中最簡單,同時也是應用最廣泛的數據結構。 內核中定義的是雙向鏈表。 1.1 頭文件簡介 內核中關于鏈 閱讀全文
posted @ 2017-08-24 17:28
閆寶平
閱讀(169)
評論(0)
推薦(0)
摘要:
主要內容: 1. 什么是系統調用 簡單來說,系統調用就是用戶程序和硬件設備之間的橋梁。 用戶程序在需要的時候,通過系統調用來使用硬件設備。 系統調用的存在,有以下重要的意義: 1)用戶程序通過系統調用來使用硬件,而不用關心具體的硬件設備,這樣大大簡化了用戶程序的開發。 比如:用戶程序通過write( 閱讀全文
posted @ 2017-08-24 17:24
閆寶平
閱讀(219)
評論(0)
推薦(0)
摘要:
主要內容: 什么是調度 調度實現原理 Linux上調度實現的方法 調度相關的系統調用 1. 什么是調度 現在的操作系統都是多任務的,為了能讓更多的任務能同時在系統上更好的運行,需要一個管理程序來管理計算機上同時運行的各個任務(也就是進程)。 這個管理程序就是調度程序,它的功能說起來很簡單: 此外,為 閱讀全文
posted @ 2017-08-24 17:22
閆寶平
閱讀(241)
評論(0)
推薦(0)
摘要:
進程是所有操作系統的核心概念,同樣在linux上也不例外。 主要內容: 進程和線程 進程的生命周期 進程的創建 進程的終止 1. 進程和線程 進程和線程是程序運行時狀態,是動態變化的,進程和線程的管理操作(比如,創建,銷毀等)都是有內核來實現的。 Linux中的進程于Windows相比是很輕量級的, 閱讀全文
posted @ 2017-08-24 17:21
閆寶平
閱讀(217)
評論(0)
推薦(0)
摘要:
在嘗試內核開發之前,需要對內核有個整體的了解。 主要內容: 獲取內核源碼 內核源碼的結構 編譯內核的方法 內核開發的特點 1. 獲取內核源碼 內核是開源的,所有獲取源碼特別方便,參照以下的網址,可以通過git或者直接下載壓縮好的源碼包。 http://www.kernel.org 2. 內核源碼的結 閱讀全文
posted @ 2017-08-24 17:14
閆寶平
閱讀(221)
評論(0)
推薦(0)
摘要:
本篇簡單介紹內核相關的基本概念。 主要內容: 單內核和微內核 內核版本號 1. 單內核和微內核 原理 優勢 劣勢 單內核 微內核 Linux的內核雖然是基于單內核的,但是經過這么多年的發展,也具備微內核的一些特征。(體現了Linux實用至上的原則) 主要有以下特征: 2. 內核版本號 內核的版本號主 閱讀全文
posted @ 2017-08-24 17:10
閆寶平
閱讀(301)
評論(0)
推薦(0)

浙公網安備 33010602011771號