当前位置: 首页 > news >正文

典型操作系统内核架构

在典型操作系统架构(如下图所示)中,内核负责以安全、公平的方式为多个应用程序管理和共享硬件资源。

  • 内核通过一组 API(即系统调用)向应用程序提供服务。这些 API 不同于常规库函数,因其是用户模式到内核模式切换的边界。
  • 为保证应用兼容性,系统调用极少更改(Linux 尤其严格遵循此原则,而内核内部 API 可按需调整)。

内核代码可逻辑划分为两部分:

  1. 核心内核代码:通用功能,可进一步分为多个子系统(如文件访问、网络、进程管理等)。
  2. 设备驱动代码:负责与特定设备交互。

宏内核(Monolithic Kernel)

宏内核的特征是各子系统间无访问保护,公共函数可直接跨子系统调用。然而,大多数宏内核仍会在逻辑上隔离子系统:

  • 核心内核与设备驱动之间通过相对严格(但非绝对固定)的 API 交互;
  • 具体实现取决于内核架构(例如 Linux 通过模块化设计平衡灵活性与隔离性)。

微内核(Micro-Kernel)

微内核将大部分功能以用户空间服务形式运行,仅保留极小代码于内核模式(如调度器、IPC 机制和基础内存管理)。其特点包括:

  • 服务隔离:服务崩溃可单独重启(理论上),但因依赖关系复杂(如文件服务崩溃会影响依赖其的应用程序),实际效果受限;
  • 模块化与内存保护:服务间通过 IPC 通信,牺牲性能换取安全性;
  • 性能代价:原本宏内核中的函数调用需转为 IPC 通信,引入额外开销;

微内核的支持者常认为其优势在于强制的模块化设计。然而,宏内核同样可以实现模块化,现代宏内核通过以下方式实现这一目标:

  • 编译时启用/禁用组件
  • 支持可加载内核模块(运行时动态加载)
  • 将内核划分为逻辑独立的子系统
  • 严格接口设计但低性能开销(如宏、内联函数、函数指针)

部分操作系统曾自称为“混合内核”(如 Windows、Mac OS X),声称介于宏内核与微内核之间。但由于其所有典型宏内核服务仍运行于内核模式,实际仍应归类为宏内核。许多操作系统专家认为“混合内核”仅是营销术语,缺乏实质意义。Linus Torvalds 对此评价:

“所谓‘混合内核’只是营销话术——不过是蹭微内核的公关优势,给现有内核贴个酷炫标签罢了。”

相关文章:

  • 《一文讲透》第7期:KWDB 巧用标签与索引优化查询性能
  • 《AI大模型应知应会100篇》 第16篇:AI安全与对齐:大模型的灵魂工程
  • 计算机网络参考模型
  • Spring的定时任务
  • 抖音IP属地可以随便选择地址吗?深度解析
  • Kaggle-Store Sales-(回归+多表合并+xgboost模型)
  • 视频分析设备平台EasyCVR打造阳光药房远程可视化智慧监管体系
  • 文档解析的技术难点有哪些?如何解决?
  • 我的NISP二级之路-05
  • Spark-SQL简介
  • virtualbox扩容
  • C++数据结构优化实战指南:从理论到工程的最佳实践
  • 146.WEB渗透测试-MySQL基础(一)
  • 长度最小的子数组
  • WebFlux应用中获取x-www-form-urlencoded数据的六种方法
  • 代码训练day27贪心算法p1
  • Linux Kernel 4
  • spring-boot nacos
  • deepin使用autokey添加微信快捷键一键显隐ctrl+alt+w
  • CExercise_12_单链表面试题_1求链表中间结点的值,判断单链表是否有环
  • 上海质子重离子医院已收治8000例患者,基本覆盖国内常见恶性肿瘤
  • 格力电器去年净利增长一成:消费电器营收下滑4%,一季度净利增长26%
  • 中日友好医院通报“医师肖某被举报”:基本属实,开除党籍并解聘
  • 央视曝光假进口保健品:警惕!保税仓发货不等于真进口
  • 王一博赛车故障退赛冲上热搜,工作室回应:下次再战
  • 银川市长信箱被指乱回复:问诗词大会、答工程欠款,官方称工作失误