Linux核心2.1單核心與微核心的應用體系分析與應用

王林
發布: 2024-02-13 18:45:27
轉載
492 人瀏覽過

目录

1、应用系统的两种形态1.1无操作系统应用体系

对于简单的SOC应用,如大部份简单功能的单片机应用都无需在系统中使用操作系统,这时应用程序是直接调用相应的驱动操作底层的硬件,如图:

这些结构,应用软件直接调用了设备驱动操作硬件。优点是:简单直接,效率高。适宜小而简单的系统。对于复杂系统,须要在不同功能里共享硬件资源的应用系统,此种方法就显著不适宜了。

1.2、有操作系统的应用体系

对于复杂应用系统,各功能模块之间须要共享硬件等资源的应用场景,则须要在应用体系内加入操作系统。为此,应用体系就如右图:

如图,有操作系统后红旗linux官网,应用程序可以不管具体的硬件细节,而都使用操作系统API的统一插口,这样利于大规模标准化开发,提升开发效率。

驱动程序向下也使用操作系统提供的标准设备插口,向上操作不同的硬件。借此对操作系统层屏蔽了硬件细节。操作系统因而显得更稳定和高效。

2、linux内核2.1单内核与微内核

目前操作系统有两种典型的内核实现模式:

Linux是一个单内核linux学习,运行在单独的地址空间上。不过,Linux吸取了微内核的精化,具有微内核所所具有的模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力。同时,Linux还防止了微内核的设计缺陷嵌入式linux高级驱动教程,linux让所有模块都运行在内核态,直接调用函数,无须像微内核那样采用消息传递。

2.2Linux内核组成

如图所示,Linux内核主要由五个部份组成:

2.3进程调度

进程调度处于系统的中心位置,系统的其它部份都依赖于它。linux的进程共有六种状态,进程在整个生命周期中可以这几种状态中切换。

2.4显存管理

显存管理的主要作用是控制多个进程安全的共享主显存域。一个32位处理器的Linux的每位进程享有4G空间,通常0-3G属于用户空间,3G-4G属于内核空间。如右图

嵌入式linux驱动编程实验_嵌入式linux高级驱动教程_嵌入式linux驱动开发教程

2.5虚拟文件系统

Linux虚拟文件系统隐藏了各类硬件的具体细节,为所有设备提供了统一的插口。是对各个具体文件系统的一个具象。

如图,虚拟文件系统为下层的应用程序提供了统一的调用插口,对下则负责调用具体底层文件系统或设备驱动中实现的file_operations结构体中的成员函数。

2.6网路插口

網路插口提供了各類網路標準的存取和各類網路硬體的支援。 Linux網路插口分為

2.7進程間通訊

嵌入式linux驱动开发教程_嵌入式linux驱动编程实验_嵌入式linux高级驱动教程

#進程間通訊負責進程之間的通訊,包含訊號量、共享記憶體、訊息佇列、管道、UNIX域套接字等。

3、核心空間與使用者空間

現代的CPU其內部會分辨不同的工作模式,藉此分辨不同等級和權限的操作。

例如,ARM的8種工作模式:

在ARM環境中,Linux系統充分藉助CPU的硬體特點,實現了兩級的操作模式,使用者(usr)模式和管理模式(svc)。與此對應,在Linux系統中具有兩種空間:

3.1補充:關於軟中斷

qquad這兒有一張ARM的異常工作模式的圖表

正常執行時,ARM處於使用者模式,當CPU執行swi指令時,會手動步入系統模式(SVCmode),並跳到異常向量表。透過向量表再跳到對應的函數中去對swi進行回應。

這裡的SVC模式就是SupervisorCall的簡寫,英文為管理程式呼叫。

4、linux裝置驅動程式4.1linux系統中裝置分類

linux系統將週邊硬體分為三大類:

4.2linux驅動程式相關系統

如圖,字元裝置與區塊裝置都被對應到Linux檔案系統的檔案和目錄。

應用程式可透過套接字存取網路設備嵌入式linux進階驅動教學,並以兩種手段存取字元裝置與區塊裝置:

以上是Linux核心2.1單核心與微核心的應用體系分析與應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:itcool.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!