目录

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单内核与微内核的应用体系分析与应用的详细内容,更多请关注小闻网其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。