【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

网友投稿 789 2022-05-29

文章目录

一、操作系统需要满足的要素

二、宏内核

三、微内核

四、linux 内核动态加载机制

一、操作系统需要满足的要素

电脑上运行的

操作系统

, 是一个

软件 ;

设备管理 : 操作系统需要 为

用户

应用程序

管理并分配电脑的

硬件资源

, 如 CPU , 磁盘 , 内存 , 网络 等 ;

开发环境 : 操作系统 要为 应用程序

开发

提供配套环境 ;

执行环境 : 操作系统 要为 应用程序

执行

提供配套环境 ;

虚拟性支持 :

支持多进程

, 每个运行的应用程序进程 , 都可以感觉到有专门的处理器提供系统服务 ;

并发性支持 : 操作系统需要有

执行多个线程的能力

, 线程是独立运行 , 独立调度的最基本单位 ;

二、宏内核

宏内核 :

内核代码

编译成

二进制文件 ,

内核 运行在 一个

大内核 地址空间

中 ,

可以

直接 访问 , 调用

内核代码 ,

这种内核优点是

效率高 ,

性能强 ;

下图中 , 最上层是

" 系统调用 "

, 中间是

" 宏内核 "

, 最下方是

硬件层 ;

宏内核优点 :

设计简单 ,

性能高 ;

三、微内核

微内核 :

将 操作系统 拆分成 多个

独立功能模块 ,

这些 独立功能模块 之间通过

" 消息 "

进行通信 ,

微内核

效率低 ;

下图中 ,

进程 , 文件系统 , 设备驱动

, 与 微内核 中的

通信模块 , 进程调度模块 , 内存管理模块

, 通过

消息

进行通信 ,

微内核优点 :

稳定性好 ,

实时性好 ;

微内核缺点 : 高度模块化 , 模块之间只能通过消息传递信息 ,

效率低 ;

四、Linux 内核动态加载机制

Linux 内核模块动态加载 :

Linux 内核 使用了 模块设计 , 可以进行

动态加载

内核模块 ;

Linux 内核的 核心实现 , 设备驱动实现 ,

可以

编译成一个独立模块 ,

这些独立模块可以被编译成

独立的目标文件 ,

可以在运行时 ,

动态

加载 /

卸载

内核模块 ;

开发简单 : Linux 内核模块引入 , 带来了很多便利 ,

很多内核驱动 , 都可以

编译成动态 加载 / 卸载 的模块 ,

驱动开发时 , 必须

遵守规定的接口

, 来访问内核 ,

这样

开发内核模块

【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

, 变得

更加容易 , 方便 ;

与平台无关 : 内核模块 可以

设计成 与 平台无关的 模块

, 如 : 文件系统 ;

Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:97_JavaWeb_xml_Tomcat
下一篇:3.5日华为云MVP开放日个人记录
相关文章