iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
自我挑戰組

當你凝視linux, linux也在凝視你系列 第 2

Day2 簡單介紹linux kernel 的架構

linux 是作業系統,是硬體與應用程式之間溝通的橋樑,應用程式想要使用硬體,都需要有作業系統的協助。

上圖是linux的架構圖,列出了linux kernel 中比較重要的功能,以下簡單介紹幾個重要的部分,也會在後續的文章中出現。

行程管理

程式(process)是linux中重要的概念,其中包含了選擇下一個要執行的程式,並且在切換運行程式的時候要進行上下文切換(context switch),更甚至要在多個程式同時運行的狀況下,能夠正常運行。在後續的文章中會介紹基本常見的排程方法,以及linux過去使用的O(1)排成,到目前的CFS算法,更甚至到現今因應效能而生的 EAS 排成器(Energy Awareness Scheduler)。除了排程器以外還會介紹 Process 基本包含的資料。

記憶體管理

記憶體管理在 linux 系統中是非常複雜的一部份,為了讓使用者能更流暢更舒服的使用,記憶體管理牽涉到實體記憶體與虛擬記憶體,虛擬記憶體讓多個程式可以同時運行,讓程式實際的大小能比記憶體的大小更大。更有頁面回收(page reclamation) 、分頁錯誤(page fault)、 記憶體共享(memory share)等等議題,還有如何選出要被替換的頁面(page),也是個學問。

中斷管理

中斷管理中包含例外(exception),與中斷(interrupt),例外包含程式錯誤例外、軟體產生例外、機械錯誤例外。 中斷則通常是外部設備透過中斷信號告知處理器,處理器會停下目前執行的指令處理中斷。在linux中提供了 softirq, tasklet 等等作法。

檔案系統

Linux 核心為了統合各個檔案系統實作,引入一層虛擬檔案系統 ((Virtual File System, VFS),後者是一組檔案操作的抽象介面,於是依循 VFS 界面開發的任何的檔案系統,可在執行時期掛載到 Linux 核心,在 FUSE (Filesystem in Userspace) 出現後,更給檔案系統開發者極大的彈性,能夠快速且多樣地延展作業系統的特徵

以上節錄自 jserv老師 Linux 核心設計: 檔案系統概念及實作手法

以上就是簡單的了解linux kernel的架構,上述的重要的概念都會在後續的文章中進行細部的分享,希望我能持續支撐下去,如果以上的內容有任何問題麻煩看官不吝賜教。

後記

day2 差點趕不及死線,以後真的要早上動筆,或是做一些存貨,才能夠偶爾偷懶。


上一篇
Day1 30天計畫總覽
下一篇
Day3 program, process, thread傻傻分不清楚
系列文
當你凝視linux, linux也在凝視你30

尚未有邦友留言

立即登入留言