日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【Linux 内核】Linux 内核体系架构 ( 硬件层面 | 内核空间 | 用户空间 | 内核态与用户态切换 | 系统调用 | 体系结构抽象层 )

發布時間:2025/6/17 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Linux 内核】Linux 内核体系架构 ( 硬件层面 | 内核空间 | 用户空间 | 内核态与用户态切换 | 系统调用 | 体系结构抽象层 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、Linux 內核體系架構
  • 二、內核態與用戶態切換 ( 系統調用層 )
  • 三、體系結構抽象層





一、Linux 內核體系架構



Linux 內核最初的源碼不足一萬行 , 當前的 Linux 內核源碼已經有兩千萬行 ;

內核整體的項目很大 , 不可能全部掌握 , 學習時從整體的 體系架構出發 , 分析其中的重要模塊 , 然后將模塊聯系起來學習 ;


Linux 內核體系架構可以按照下圖 , 分為三個層次 :

  • 硬件層面 : 包括 CPU , 物理內存 , 磁盤 , 外部設備 等硬件 ;
  • 內核空間 : 這就是 Linux 內核的核心 , 如 : Arch 抽象層 , 設備管理抽象層 , 內存管理 , 中斷管理 , 進程調度 , 文件系統管理 , USB / PCI 總線設備 , 設備驅動 ( 字符設備 / 網絡設備 / 塊設備 / KVM ) , 系統調用層 ;
  • 用戶空間 : C 語言庫 , 應用程序進程 , 虛擬機 等 ;





二、內核態與用戶態切換 ( 系統調用層 )



Linux 內核 實現 內核態用戶態 , 使用到了 ring0ring3 兩種模式 ,

  • ring0 是 內核態 ,
  • ring3 是 用戶態 ;

軟件抽象層作用 : Linux 內核中 , 使用 軟件抽象層內核態 ( ring0 )用戶態 ( ring3 ) 之間進行切換 ;

軟件抽象層 又稱為 系統調用層 ( System Call ) ;


每種處理器體系結構 都提供了 實現 用戶態 與 內核態 之間切換的 特殊指令 ,

Linux 內核也利用了該特殊指令 , 進行了用戶態 與 內核態 的切換 , 該指令在 系統調用層 調用 ,

系統調用層 可以 使 真實硬件信息用戶進程透明 ,

用戶進程讀取文件內容時 , 只需要使用 open / read / mmap 函數 , 打開一個路徑上的文件即可 , 具體該文件在磁盤上的哪個扇區 , 具體的物理地址是多少 , 用戶進程并不關心 ,

用戶進程 , 大多數時間在 用戶態 運行 , 當需要向內核請求相關設備時 , 只需要 調用系統提供的 系統調用 接口 , 即可訪問內核 ;





三、體系結構抽象層



Linux 內核 支持多種體系結構 ,

  • Linux 系統可以運行在 arm 架構的處理器設備 上 , 如 Android ;

  • 也可以運行在 x86 架構的處理器 上運行 , 如 PC 機 , 服務器等 ;


實際上 Linux 內核支持很多體系結構 , 為 Linux 內核添加一個新的體系結構很簡單 , 體系結構抽象層 用于 將 不同的體系結構 進行 抽象 與 隔離 , 為不同的體系結構 , 提供了統一的接口 ;


如 : Linux 內核中 , 將與體系結構相關的代碼 , 都放在 arch 目錄下的不同的體系結構對應的目錄中 , 如下圖所示 :

總結

以上是生活随笔為你收集整理的【Linux 内核】Linux 内核体系架构 ( 硬件层面 | 内核空间 | 用户空间 | 内核态与用户态切换 | 系统调用 | 体系结构抽象层 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。