特殊的操作系统
本文介绍了除通用操作系统外的四类特殊操作系统:嵌入式操作系统、实时操作系统、微内核操作系统以及网络/分布式操作系统;同时阐述了提升操作系统可移植性的设计原则,并通过练习题帮助巩固关键点。
文章目录
一、特殊的操作系统
1. 操作系统的分类概述
除通用操作系统外,针对不同应用场景发展出了多种特殊类型的操作系统。如嵌入式操作系统、实时操作系统、微内核系统、网络/分布式操作系统。
2. 嵌入式操作系统
定义与特点
嵌入式操作系统运行在嵌入式设备(如智能家电、工业控制器、汽车电子)中,具有以下特点:
- 微型化:内核精简,占用资源少
- 可定制性:能针对硬件变化进行结构和功能配置
- 实时性:部分嵌入式系统要求确定性响应时间
- 可靠性:7×24小时稳定运行
- 易移植性:通过HAL(硬件抽象层)和BSP(板级支持包)支持不同微处理器平台
嵌入式操作系统结构图:
例:VxWorks(航天、军工)、μC/OS-II、FreeRTOS、RT-Thread、Linux(嵌入式版本)
3. 实时操作系统(RTOS)
定义与特点
实时操作系统能够在规定时间内完成对外部事件的响应,强调确定性而非单纯的“快速”。
- 硬实时:必须在截止时间前完成,否则系统失效(如航天器控制、汽车安全气囊)
- 软实时:偶尔超时可接受,但会降低服务质量(如多媒体播放、音视频编码)
实时系统的调度
实时调度算法包括:
- 速率单调调度(RMS):周期越短优先级越高
- 最早截止时间优先(EDF):截止时间越早优先级越高
实时操作系统调度算法对比:
4. 微内核操作系统
定义与特点
微内核架构将操作系统内核精简到最小,只保留最核心的功能(进程间通信、基本内存管理、CPU调度),而将文件系统、设备驱动等传统内核功能移至用户态服务中运行。
微内核操作系统架构图:
优点:
- 可靠性高——服务崩溃不影响内核
- 可移植性好——硬件相关代码集中在微内核
- 可扩展性强——增减服务无需修改内核
- 适合分布式系统
缺点:
- 用户态与内核态频繁切换,性能有一定损失
例:QNX、Mach(macOS/OS X内核基础)、L4微内核系列
5. 网络操作系统与分布式操作系统
| 类型 | 特点 | 典型例子 |
|---|---|---|
| 网络操作系统 | 各节点独立运行,有自己的操作系统,通过网络共享资源 | Windows Server、Linux + NFS |
| 分布式操作系统 | 多节点统一管理,对用户呈现为“一台虚拟计算机” | Amoeba、Plan 9、Google的Borg |

区别:网络操作系统的用户知道资源在哪台机器上;分布式操作系统的用户完全无感知,系统自动完成资源定位和调度。
6. 操作系统可移植性设计原则
在设计可移植的操作系统时,应遵循以下规则:
- 将设备相关程序和设备无关程序分开设计
- 采用平台无关的程序设计语言(如C语言)
- 不使用依赖于某一平台的类库
- 避免使用特定环境的专用功能(这会降低可移植性)

二、总结对比表
| 操作系统类型 | 核心特点 | 典型应用 | 软考常考知识点 |
|---|---|---|---|
| 通用操作系统 | 分时、多用户、资源管理 | PC、服务器 | 五大功能、进程调度、内存管理 |
| 嵌入式操作系统 | 微型化、可定制、高可靠 | 智能设备、工控 | 可定制性、实时性、可移植性 |
| 实时操作系统 | 确定性响应、硬/软实时 | 航天、军工、汽车 | RMS、EDF调度算法 |
| 微内核系统 | 内核精简、用户态服务 | QNX、车载系统 | 可靠性、可移植性、分布式支持 |
| 网络/分布式系统 | 资源共享/统一管理 | 服务器集群 | 区别:透明性程度 |
三、练习
题目1:从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,该要求体现了嵌入式操作系统的( )。
A. 可定制性
B. 实时性
C. 可靠性
D. 易移植性
答案:A
解析:题干强调“针对硬件变化进行结构与功能上的配置”,这体现的是可定制性。易移植性侧重于跨平台运行的能力。
题目2:(2010年下半年系统架构设计师真题)采用微内核结构的操作系统提高了系统的灵活性和可扩展性,()。
A. 并增强了系统的可靠性和可移植性,可运行于分布式系统中
B. 并增强了系统的可靠性和可移植性,但不适用于分布式系统
C. 但降低了系统的可靠性和可移植性,可运行于分布式系统中
D. 但降低了系统的可靠性和可移植性,不适用于分布式系统
答案:A
解析:微内核将非核心功能移至用户态,内核本身更小、更稳定,增强了可靠性和可移植性,且天然支持分布式系统。
题目3:在设计中实现可移植性设计的规则不包括( )。
A. 将设备相关程序和设备无关程序分开设计
B. 可使用特定环境的专用功能
C. 采用平台无关的程序设计语言
D. 不使用依赖于某一平台的类库
答案:B
解析:使用特定环境的专用功能会使代码依赖该平台,在其他平台上无法运行,会大大降低可移植性。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)