linux系列知識 使用者態和核心態

2021-10-02 14:13:24 字數 591 閱讀 9254

使用者態:只能受限地訪問記憶體,且不允許訪問外圍裝置

核心態:cpu可以訪問記憶體的所有資料,包括外圍裝置

這兩個狀態指的都是程式所處的乙個狀態,當申請外部資源時都需要從使用者態轉變到核心態,具體由使用者態轉變到核心態方法有:(1)系統呼叫;(2)中斷;(3)異常

例如:1)讀寫檔案: 就是依次系統呼叫open/read/write等函式,這時就會導致使用者態轉變到核心態

2)申請資源: c語言中用於申請記憶體的函式是malloc,malloc本身不是系統呼叫,而它的內部主要是分為brk系統呼叫來分申請記憶體小於128k大小的記憶體空間,和mmap來申請大於128k大小的記憶體空間,注意這裡申請的都是虛擬記憶體,若是想要真正的物理記憶體,在第一次訪問時,由於虛擬位址沒有對映到物理記憶體,就會出現乙個缺頁中斷。這裡出現了「中斷」,也會轉變到核心態,所以存在大量的使用者態到核心態的時刻。

這裡詳細講解下系統呼叫:

(1)程序

(2)檔案 chmod等

(3)裝置 read/write等(磁碟裝置)

(4)資訊 get_*** 例如獲取cpu資訊

(5)通訊 pipe程序間通訊等

Linux使用者態和核心態

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

Linux 核心態和使用者態

1.核心態 當乙個任務 程序 執行系統呼叫而陷入核心 中執行時,我們就稱程序處於核心執行態 或簡稱為核心態 此時處理器處於特權級最高的 0級 核心 中執行。當程序處於核心態時,執行的核心 會使用當前程序的核心棧。每個程序都有自己的核心棧。2.使用者態 當程序在執行使用者自己的 時,則稱其處於使用者執...

Linux 使用者態和核心態

系統呼叫是通向作業系統本身的介面,是面向底層硬體的。通過系統呼叫,可以使得使用者態執行的程序與硬體裝置 如cpu 磁碟 印表機等 進行互動,是作業系統留給應用程式的乙個介面。由作業系統實現 執行時,需要從使用者態切換到核心態 使用者態 當乙個程序在執行使用者自己的 時處於使用者執行態 使用者態 此時...