Linux探秘之使用者態與核心態

2021-08-21 19:07:08 字數 659 閱讀 5239

unix/linux的體系架構

如下圖所示,從巨集觀上來看,linux 作業系統的體系架構分為使用者態和核心態(或者使用者空間和核心)。

核心從本質上看是一種軟體——控制計算機的硬體資源,並提供上層應用程式執行的環境。使用者態即上層應用程式的活動空間,應用程式的執行必須依託於核心提供的資源,包括 cpu 資源、儲存資源、i/o 資源等。為了使上層應用能夠訪問到這些資源,核心必須為上層應用提供訪問的介面:即系統呼叫。

系統呼叫是作業系統的最小功能單位,這些系統呼叫根據不同的應用場景可以進行擴充套件和裁剪,現在各種版本的 unix 實現都提供了不同數量的系統呼叫,如 linux 的不同版本提供了 240-260 個系統呼叫,freebsd 大約提供了 320 個(reference:unix 環境高階程式設計)。

我們可以把系統呼叫看成是一種不能再化簡的操作(類似於原子操作,但是不同概念),有人把它比作乙個漢字的乙個「筆畫」,而乙個「漢字」就代表乙個上層應用,我覺得這個比喻非常貼切。因此,有時候如果要實現乙個完整的漢字(給某個變數分配記憶體空間),就必須呼叫很多的系統呼叫。如果從實現者(程式設計師)的角度來看,這勢必會加重程式設計師的負擔,良好的程式設計方法是:重視上層的業務邏輯操作,而盡可能避免底層複雜的實現細節。

Linux探秘之使用者態與核心態

一 unix linux的體系架構 如上圖所示,從巨集觀上來看,linux作業系統的體系架構分為使用者態和核心態 或者使用者空間和核心 核心從本質上看是一種軟體 控制計算機的硬體資源,並提供上層應用程式執行的環境。使用者態即上層應用程式的活動空間,應用程式的執行必須依託於核心提供的資源,包括cpu資...

Linux探秘之使用者態與核心態

一 unix linux的體系架構 如上圖所示,從巨集觀上來看,linux作業系統的體系架構分為使用者態和核心態 或者使用者空間和核心 核心從本質上看是一種軟體 控制計算機的硬體資源,並提供上層應用程式執行的環境。使用者態即上層應用程式的活動空間,應用程式的執行必須依託於核心提供的資源,包括cpu資...

Linux探秘之使用者態與核心態

注 本文 一 unix linux的體系架構 下圖是對上圖的乙個細分結構,從這個圖上可以更進一步對核心所做的事有乙個 全景式 的印象。主要表現為 向下控制硬體資源,向內管理作業系統資源 包括程序的排程和管理 記憶體的管理 檔案系統的管理 裝置驅動程式的管理以及網路資源的管理,向上則向應用程式提供系統...