国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

linux內核整體架構

這篇具有很好參考價值的文章主要介紹了linux內核整體架構。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

操作系統(tǒng)概念

操作系統(tǒng)屬于軟件范疇,負責管理系統(tǒng)的硬件資源。OS具備的功能:1.為應用程序提供執(zhí)行環(huán)境。2.為多用戶和應用程序管理計算機的硬件資源。3.虛擬化功能。4.支持并發(fā)。

宏內核與微內核架構

宏內核:所有的內核代碼都編譯成二進制文件并運行在一個大內核地址空間中,整體架構如下:
linux內核整體架構
微內核:把操作系統(tǒng)分成多個獨立的功能模塊,每個功能模塊之間的訪問需要通過“消息”來完成,因此效率沒有宏內核架構高:
linux內核整體架構
宏內核的優(yōu)點:設計簡潔,性能好

微內核的優(yōu)點:模塊化的特點更具實時性

工程實踐中,linux不斷融入微內核的精華到內核中,例如模塊化設計思想,動態(tài)加載內核模塊等,因此linux內核支持模塊化開發(fā),許多功能都可以編譯為一個模塊,并且支持動態(tài)的加載和卸載(例如許多設備的驅動程序),這一點上宏內核架構就做不到,宏內核類似于靜態(tài)編譯的結果而不支持動態(tài)取舍。
linux內核整體架構
OS允許CPU運行在用戶態(tài)和內核態(tài),而 linux 使用ring0和ring3兩種模式實現(xiàn)內核態(tài)和用戶態(tài)。

linux內核為內核態(tài)和用戶態(tài)的切換提供機制:系統(tǒng)調用(本質是中斷,中斷是進入內核態(tài)的唯一方法)

用戶程序可能大部分運行在用戶態(tài),但可能需要使用系統(tǒng)資源(例如磁盤),此時需要通過系統(tǒng)調用的方法進入內核空間。

體系結構Arch抽象層:

linux內核支持多種架構,例如ARM,X86等,目前已經支持幾十種體系結構,而Arch抽象層抹去了不同架構之間的硬件差異,做了一層統(tǒng)一的抽象。在linux內核5.6.18版本的源碼中,直接把不同架構做一個分目錄操作,以提供對各個架構的支持。
linux內核整體架構

內核在操作系統(tǒng)中的位置

linux內核整體架構

  • 用戶進程:用戶應用程序是運行在 Linux 操作系統(tǒng)最高層的一個龐大的軟件集合。當一個用戶程序在操作系統(tǒng)之上運行時,它成為操作系統(tǒng)中的一個進程。
  • 系統(tǒng)調用接口:在應用程序中, 可通過系統(tǒng)調用來調用操作系統(tǒng)內核中特定的過程, 以實現(xiàn)特定的服務。系統(tǒng)調用本身也是由若干條指令構成的過程。但它與一般的過程不同,主要區(qū)別是:系統(tǒng)調用是運行在內核態(tài)(或叫系統(tǒng)態(tài)),而一般過程是運行在用戶態(tài)。在 Linux 中,系統(tǒng)調用是內核代碼的一部分。
  • Linux內核:內核是操作系統(tǒng)的靈魂,它負責管理磁盤上的文件、內存,負
    責啟動并運行程序,負責從網絡上接收和發(fā)送數(shù)據包等。簡言之,內核實際是抽象的資源操作到具體硬件操作細節(jié)之間的接口。
  • 硬件

Linux內核抽象結構

linux內核有五大主要子系統(tǒng),他們之間的關系如下:
linux內核整體架構
(1)進程調度(SCHED)控制著進程對 CPU 的訪問。當需要選擇下一個進程運行時,由調度程序選擇最值得運行的進程??蛇\行進程實際是僅等待 CPU 資源的進程,如果某個進程在等待其他資源,則該進程是不可運行進程。Linux 使用了比較簡單的基于優(yōu)先級的進程調度算法選擇新的進程。

(2)內存管理(MM)允許多個進程安全地共享主內存區(qū)域。Linux 的內存管理支持虛擬內存,即在計算機中運行的程序,其代碼、數(shù)據和堆棧的總量可以超過實際內存的大小,操 作系統(tǒng)只將當前使用的程序塊保留在內存中,其余的程序塊則保留在磁盤上。必要時,操作系統(tǒng)負責在磁盤和內存之間交換程序塊。
內存管理從邏輯上可以分為硬件無關的部分和硬件相關的部分。硬件無關的部分提供了進程的映射和虛擬內存的對換;硬件相關的部分為內存管理硬件提供了虛擬接口。
 ?。?)虛擬文件系統(tǒng)(Virtul File System,VFS)隱藏了各種不同硬件的具體細節(jié),為所有設備提供了統(tǒng)一的接口,VFS 還支持多達數(shù)十種不同的文件系統(tǒng),這也是 Linux 較有特色的一部分

虛擬文件系統(tǒng)可分為邏輯文件系統(tǒng)和設備驅動程序。邏輯文件系統(tǒng)指 Linux 所支持的文件系統(tǒng),如 ext2,fat 等,設備驅動程序指為每一種硬件控制器所編寫的設備驅動程序模塊。

(4)網絡接口(NET)提供了對各種網絡標準協(xié)議的存取和各種網絡硬件的支持。網絡接口可分為網絡協(xié)議和網絡驅動程序兩部分。網絡協(xié)議部分負責實現(xiàn)每一種可能的網絡傳輸協(xié)議,網絡設備驅動程序負責與硬件設備進行通信,每一種可能的硬件設備都有相應的設備驅動程序。

(5)進程間通信(IPC) 支持進程間各種通信機制。

Linux內核源碼組織

為了深入地了解Linux的實現(xiàn)機制,還必須閱讀Linux的內核源代碼,下面是對有關源代碼的介紹。內核源代碼的版本多,對不同的內核版本,系統(tǒng)調用一般是相同的。新版本也許可以增加一個新的系統(tǒng)調用,在大多數(shù)情況下,設備文件將仍然相同,而另一方面,版本之間的內部接口有所變化。
linux內核整體架構文章來源地址http://www.zghlxwxcb.cn/news/detail-488010.html

  • arch目錄:不同平臺體系相關代碼;
  • block目錄:塊驅動設備
  • certs目錄:與認證和簽名相關代碼
  • crypto目錄:內核常用加密、壓縮算法等代碼;
  • Documentation目錄:描述模塊功能與協(xié)議規(guī)范代碼;
  • Drivers目錄:驅動程序(USB總線、PCI總線、顯卡驅動等等);
  • firmware目錄:主要是一些二進制固件;
  • fs目錄:虛擬文件系統(tǒng)代碼;
  • include目錄:內核源碼依賴絕大部分頭文件;
  • init目錄:內核初始化代碼,聯(lián)系到內存各組件入口;
  • ipc目錄:進程間通信,比如共享內存、信號量匿名管道等等;
  • kernel目錄:內核核心代碼,包括進程管理、IRQ、時間等等;
  • lib目錄:C標準庫的子集;
  • mm目錄:內存管理相關實現(xiàn);
  • net目錄:網絡協(xié)議代碼,比如TCP、IPv6、WiFi、以太網實現(xiàn)等等;
  • samples目錄:內核實列代碼;
  • scripts目錄:編譯和配置內核所需腳本;Perl/bash
  • security目錄:內核安全模型相關代碼;如selinux
  • sound目錄:聲卡驅動源碼;
  • tools目錄:與內核交互;
  • usr目錄:用戶打包和壓縮內核的實現(xiàn)源碼;
  • virt目錄:/kvm虛擬化目錄相關支持實現(xiàn)。
  • COPYING:許可和授權信息。Linux內核在GPLv2許可證下授權。該許可證授予任何人有權免費去使用、修改、分發(fā)和共享源代碼和編譯代碼。然而,沒有人可以出售源代碼。
  • CREDITS : 貢獻者列表
  • Kbuild : 這是一個設置一些內核設定的腳本。打個比方,這個腳本設定一個 ARCH變量,這是開發(fā)者想要生成的內核支持的處理器類型。
  • Kconfig: 這個腳本會在開發(fā)人員配置內核的時候用到
  • MAINTAINERS : 這是一個目前維護者列表,他們的電子郵件地址,主頁,和他們負責開發(fā)和維護的內核的特定部分或文件。當一個開發(fā)者在內核中發(fā)現(xiàn)一個問題,并希望能夠報告給能夠處理這個問題的維護者時,這是是很有用的。
  • Makefile :這個腳本是編譯內核的主要文件。這個文件將編譯參數(shù)和編譯所需的文件和必要的信息傳給編譯器。
  • README : 這個文檔提供給開發(fā)者想要知道的如何編譯內核的信息。
  • REPORTING-BUGS : 這個文檔提供如何報告問題的信息。

到了這里,關于linux內核整體架構的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • linux內核整體架構

    linux內核整體架構

    操作系統(tǒng)屬于軟件范疇,負責管理系統(tǒng)的硬件資源。OS具備的功能:1.為應用程序提供執(zhí)行環(huán)境。2.為多用戶和應用程序管理計算機的硬件資源。3.虛擬化功能。4.支持并發(fā)。 宏內核:所有的內核代碼都編譯成二進制文件并運行在一個大內核地址空間中,整體架構如下: 微內核:

    2024年02月09日
    瀏覽(20)
  • 【項目分析】仿linux0.11的操作系統(tǒng)內核

    【項目分析】仿linux0.11的操作系統(tǒng)內核

    系列綜述: ??目的:本系列是個人整理為了 秋招面試 的,整理期間苛求每個知識點,平衡理解簡易度與深入程度。 ??來源:材料主要源于 《操作系統(tǒng) 真象還原》及各大佬博客 進行的,每個知識點的修正和深入主要參考各平臺大佬的文章,其中也可能含有少量的個人實驗

    2024年02月09日
    瀏覽(22)
  • 操作系統(tǒng)權限提升(十八)之Linux提權-內核提權

    操作系統(tǒng)權限提升(十八)之Linux提權-內核提權

    內核提權是利用Linux內核的漏洞進行提權的,內核漏洞進行提權一般包括三個環(huán)節(jié): 1、對目標系統(tǒng)進行信息收集,獲取到系統(tǒng)內核信息及版本信息; 2、根據內核版本獲取其對應的漏洞以及EXP 3、使用找到的EXP對目標系統(tǒng)發(fā)起攻擊,完成提權操作 查看Linux操作系統(tǒng)的內核版本

    2024年01月16日
    瀏覽(26)
  • Linux Kernel內核整體架構(圖文詳解)

    Linux Kernel內核整體架構(圖文詳解)

    本文是“Linux內核分析”系列文章的第一篇,會以內核的核心功能為出發(fā)點,描述Linux內核的整體架構,以及架構之下主要的軟件子系統(tǒng)。之后,會介紹Linux內核源文件的目錄結構,并和各個軟件子系統(tǒng)對應。 注:本文和其它的“Linux內核分析”文章都基于如下約定: a) 內核版

    2024年02月11日
    瀏覽(26)
  • 【小黑嵌入式系統(tǒng)第十課】μC/OS-III概況——實時操作系統(tǒng)的特點、基本概念(內核&任務&中斷)、與硬件的關系&實現(xiàn)

    【小黑嵌入式系統(tǒng)第十課】μC/OS-III概況——實時操作系統(tǒng)的特點、基本概念(內核&任務&中斷)、與硬件的關系&實現(xiàn)

    上一課: 【小黑嵌入式系統(tǒng)第九課】PSoC 5LP第一個實驗——LED、字符型LCD顯示實驗 下一課: 【小黑嵌入式系統(tǒng)第十一課】μC/OS-III程序設計基礎(一)——任務設計、任務管理(創(chuàng)建基本狀態(tài)內部任務)、任務調度、系統(tǒng)函數(shù) 一. 凡從事嵌入式系統(tǒng)開發(fā)工作的人,必須對嵌入

    2024年02月05日
    瀏覽(25)
  • 【Linux】操作系統(tǒng)&&進程概念

    【Linux】操作系統(tǒng)&&進程概念

    馮·諾依曼結構也稱普林斯頓結構,是一種將程序指令存儲器和數(shù)據存儲器合并在一起的存儲器結構 。數(shù)學家馮·諾依曼提出了計算機制造的三個基本原則,即采用二進制邏輯、程序存儲執(zhí)行以及計算機由五個部分組成( 運算器、控制器、存儲器、輸入設備、輸出設備 ),這

    2024年01月16日
    瀏覽(25)
  • 【Linux】操作系統(tǒng)的基本概念 {馮諾依曼體系結構,操作系統(tǒng)的基本概念,系統(tǒng)調用及用戶操作接口,shell程序}

    【Linux】操作系統(tǒng)的基本概念 {馮諾依曼體系結構,操作系統(tǒng)的基本概念,系統(tǒng)調用及用戶操作接口,shell程序}

    現(xiàn)代計算機設計大都遵守馮·諾依曼體系結構: 截至目前,我們所認識的計算機,都是由一個個的硬件組件組成 輸入單元:包括鍵盤, 鼠標,掃描儀, 磁盤,網卡等 存儲器: 內存(提高數(shù)據讀寫速度,降低硬件成本) 中央處理器(CPU):含有運算器(算數(shù)運算,邏輯運算)和控

    2024年02月11日
    瀏覽(53)
  • Linux:馮諾依曼系統(tǒng)和操作系統(tǒng)的概念

    Linux:馮諾依曼系統(tǒng)和操作系統(tǒng)的概念

    本篇主要總結的是操作系統(tǒng)的基本認知和一些概念 那么上圖表示的就是馮諾依曼體系結構,那這個體系結構是什么?為什么要先介紹它? 截止目前來說,常見的計算機都是遵循著馮諾依曼體系組成的,可以說有了馮諾依曼體系才能讓計算機變得這么普及,才有了現(xiàn)在的互聯(lián)

    2024年02月07日
    瀏覽(31)
  • 【Linux】操作系統(tǒng)與進程的概念

    【Linux】操作系統(tǒng)與進程的概念

    目錄 馮諾依曼體系 注意 為什么CPU不直接訪問輸入或輸出設備? 跨主機間數(shù)據的傳遞 操作系統(tǒng) 管理 進程 描述進程 進程的查看和終止 ?bash 通過系統(tǒng)調用創(chuàng)建子進程 fork的辨析 ??馮·諾依曼結構也稱普林斯頓結構,是一種 將程序指令存儲器和數(shù)據存儲器合并在一起的存儲器

    2024年01月18日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包