操作系统的体系结构、内核、虚拟机

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaweb
石可破也,而不可夺坚;丹可磨也,而不可夺赤。
操作系统结构
- 一、操作系统体系结构
- 1.1操作系统的内核
- 1.1.1大内核(又名:宏内核/单内核)
- 1.1.2微内核
- 1.3分层结构
- 1.4模块化
- 1.5外核(exokernel)
- 二、操作系统引导
- 2.1什么是操作系统引导?
- 2.2操作系统引导过程
- 三、虚拟机
一、操作系统体系结构
1.1操作系统的内核
- 内核是操作系统最基本、最核心的部分
- 实现操作系统内核功能的那些程序就是内核程序
- 与硬件关系较紧密的模块:
-
- 时钟管理:实现计时功能
-
- 中断处理:负责实现中断机制
-
- 原语:
-
- 是一种特殊的程序
-
- 处于操作系统最底层,是最接近硬件的部分
-
- 这种程序的运行具有原子性 – – 其运行只能一气呵成,不可中断
-
- 运行时间较短、调用频繁
- 对资源系统进行管理的功能:
-
- 进程管理
-
- 存储器管理
-
- 设备管理
- 注意:这些管理工作更多的是对数据结构的操作,不会直接涉及硬件

- 注意:
-
- 操作系统内核需要运行在内核态
-
- 操作系统非内核功能运行在用户态
1.1.1大内核(又名:宏内核/单内核)
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:
-
- 1.内核代码庞大,结构混乱,难以维护
-
- 2.大内核中某个功能模块出错,就可能导致整个系统崩溃
- 典型的大内核/宏内核/单内核 操作系统:Linux、UNIX
- 特征、思想:
-
- 所有系统功能都放在内核里(大内核结构的OS通常也采用了“模块化”的设计思想)

1.1.2微内核
- 只把最基本的功能保留在内核
- 优点:
-
- 1.内核功能少,结构清晰,方便维护,内核可靠性高
-
- 2.内核外的某个功能模块出错不会导致整个系统崩溃
- 缺点:
-
- 1.需要频繁地在核心态和用户态之间切换,性能低
-
- 2.用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信
- 典型的微内核操作系统:Windows NT

1.3分层结构
- 特征、思想:内核分多层,每层可单向调用更低一层提供的接口
- 优点:
-
- 1.便于调试和验证、自底向上逐层调试验证
-
- 2.易扩充和易维护,各层之间调用接口清晰固定
- 缺点:
-
- 1.仅可调用相邻低层,难以合理定义各层的边界
-
- 2.效率低,不可跨层调用,系统调用执行时间长

1.4模块化
模块化是将操作系统按功能划分为若干个具有一定独立性的模块,每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能通过接口进行通信,还可以进一步将各模块细分为若干个具有一定功能的子模块,同样也规定好各子模块之间的接口,把这种设计方法称为模块–接口法。
- 特征、思想:将内核分为多个模块,各模块之间相互协作
- 内核=主模块+可加载内核模块
- 主模块:只负责核心功能,如进程调度、内存管理
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
- 优点:
-
- 1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
-
- 2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
-
- 3.任何模块都可以直接调用其他模块,无需采用详细传递进行通信,效率高
- 缺点:
-
- 1.模块间的接口定义未必合理
-
- 2.模块间相互依赖,更难调试和验证
1.5外核(exokernel)
- 特征、思想:内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
- 优点:
-
- 1.外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源
-
- 2.减少了虚拟硬件资源的“映射层”,提升效率
- 缺点:
-
- 1.降低了系统的一致性
-
- 2.是系统变得更复杂

**
二、操作系统引导
2.1什么是操作系统引导?
操作系统引导:开机的时候,怎么让操作系统运行起来
安装操作系统后:

- 磁盘包括:
-
- 主引导记录(MBR)(包含:磁盘引导程序和分区表)
-
- C:盘
-
- D:盘
-
- E:盘等
-
- C:盘中又包含:
-
- 引导记录PBR(负责找到“启动管理器”)
-
- 根目录
-
- 其他
- 主存:
-
- 由ROM(BIOS)包含:ROM引导程序,即自举程序和RAM组成
2.2操作系统引导过程

- 1.CPU从一个特定的主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 2.将磁盘的第一块 – – 主引导记录读入内存,执行磁盘引导程序,扫描分区表
- 3.从活动区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 4.从根目录下找到完整的操作系统初始化程序(启动管理器)并执行,完成“开机”的一系列动作
三、虚拟机
- 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machien ,VM),每个虚拟机器都可以独立运行一个操作系统
- 同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machien Monitor(VMM)/Hypervisor


- 两类虚拟机管理程序(VMM)的对比
| 第一类VMM | 第二类VMM | |
|---|---|---|
| 对物理资源的控制权 | 直接运行在硬件之上,能直接控制和分配物理资源 | 运行在Host OS之上,依赖于Host OS为其分配的物理资源 |
| 资源分配方式 | 在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于“外核”的分配方式,分配未经抽象的物理硬件 | Guest OS拥有自己的细腻==虚拟硬盘,该硬盘实际上是Guest OS文件系统中的一个大文件,Guest OS分配到的内存是虚拟内存 |
| 性能 | 性能更好 | 性能更差,需要Guest OS作为“中介” |
| 可支持的虚拟机数量 | 更多,不需要和Guest OS竞争资源,相同的硬件资源可以支持更多的虚拟机 | 更少,Guest OS本身需要使用物理资源,Guest OS上运行的其他进程也需要物理资源 |
| 虚拟机的可迁移性 | 更差 | 更好,只需导出虚拟机镜像文件即可迁移到另一台Guest OS上,商业化应用更广泛 |
| 运行模式 | 第一类VMM运行在最高特权级(Ring O),可以执行最该特权的指令 | 第二类VMM部分运行在用户态、部分运行在内核态,Guest OS发出的系统调用会被VMM截获,并转化为VMM对Guest OS的系统调用 |
相关文章:
操作系统的体系结构、内核、虚拟机
🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaweb 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 操作系统结构 一、操作系统体系结构1.1操作系统的内核1.1.…...
【C++】vector的基本用法
vector是动态数组的同义词 一、vector对象带参数构造 1.vector<int>a(a,a5);//左闭右开 2.vector<int>b(n,z);n个z 3.vector<int>c(a);//拷贝 二、动态数组可以整体赋值 vector<int>vec; vector&l…...
SSM——用户、角色、权限操作
1. 数据库与表结构 1.1 用户表 1.1.1 用户表信息描述 users 1.1.2 sql语句 CREATE TABLE users( id varchar2(32) default SYS_GUID() PRIMARY KEY, email VARCHAR2(50) UNIQUE NOT NULL, username VARCHAR2(50), PASSWORD VARCHAR2(50), phoneNum VARCHAR2(20), STATUS INT…...
UI界面设置
文章目录 1. 修改 share.html 内容如下:2. 修改 html 文件格式为 utf-83.保存,运行程序4. 访问页面 1. 修改 share.html 内容如下: <!DOCTYPE html><html> <head><meta charset"utf-8"><title>1v1屏…...
论文学习——PixelSNAIL:An Improved Autoregressive Geenrative Model
文章目录 引言论文翻译Abstract问题 Introduction第一部分问题 第二部分问题 Model Architecture网络结构第一部分问题第二部分问题 Experiments实验问题 Conclusion结论问题 总结参考 引言 这篇文章,是《PixelSNAIL:An Improved Autoregressive Geenrative Model》…...
mySQL 视图 VIEW
简化版的创建视图 create view 视图名 as select col ...coln from 表create view 视图名(依次别名) as select col ...coln from 表create view 视图名 as select col “别名1”,。。。col "别名n" from 表show tab…...
「UG/NX」Block UI 曲线收集器CurveCollector
✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#...
微信小程序:函数节流与函数防抖
目录 问题引入: 定义 解决方案:函数节流 一、案例举例 1.页面展示 2.search.wxml标签展示 3.search.js展示 4.结果展示 二、函数节流解决问题 1.函数 2.实例应用 三、函数防抖解决问题 1.函数 2.原理 3.应用场景 4.应用实例 总结 问题引入…...
Mathematica(42)-计算N个数值的和
比如,我们要用Mathematica求得到下面的式子: 这就需要用到一个函数:Sum 具体地,Sum函数的使用形式如下: 因此,按照公式就可以得到下面的结果: 如果,我们想要将求和号也加进去&#…...
安装和配置 Ansible
安装和配置 Ansible 按照下方所述,在控制节点 control.area12.example.com 上安装和配置 Ansible: 安装所需的软件包 创建名为 /home/curtis/ansible/inventory 的静态清单文件,以满足以下要求: node1 是 dev 主机组的成员 node2 …...
电脑系统重装日记
重装原因 电脑C盘几乎爆炸故重装系统一清二白 此片原因 记录重装过程,强调一些要注意的点,以防日后重装。 重装过程 1.清空电脑文件后重启,电脑冒蓝光,一直蓝屏反复重启,故只能重装系统以解难题。 2.准备一个U盘&…...
通讯协议044——全网独有的OPC HDA知识一之聚合(十二)持续坏值时间
本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…...
Docker:Windows container和Linux container
点击"Switch to Windows containers"菜单时: 提示 然后 实际上是运行:com.docker.admin.exe start-service...
excel提示更新外部引用文件 这个提示能手动禁用
是的,你可以手动禁用 Excel 中的更新外部引用文件的提示。这些步骤可能因 Excel 版本而有所不同,以下是一般的步骤: 1. **打开 Excel**: 2. **进入“选项”**: - 在 Excel 中,点击顶部菜单中的“文件”…...
2023 最新 小丫软件库app开源源码 PHP后端
上传了源码解压之后,在admin/public/config.php修改后台登录账号和密码 后台地址:域名或者ip/admin 然后自己修改配置即可 后端搭建完成,现在导入iapp源码 导入iapp源码之后,修改mian.iyu载入事件的对接api和url就可以打包了 sss …...
Selenium 测试用例编写
编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。 编写测试用例的优势: 开源,免费。 支持多种浏览器 IE,Firefox,Chrome,Safari。 支持多平台 Windows,Li…...
es自定义分词器支持数字字母分词,中文分词器jieba支持添加禁用词和扩展词典
自定义分析器,分词器 PUT http://xxx.xxx.xxx.xxx:9200/test_index/ {"settings": {"analysis": {"analyzer": {"char_test_analyzer": {"tokenizer": "char_test_tokenizer","filter": [&…...
基于libevent的tcp服务器
libevent使用教程_evutil_make_socket_nonblocking_易方达蓝筹的博客-CSDN博客 一、准备 centos7下安装libevent库 yum install libevent yum install -y libevent-devel 二、代码 server.cpp /** You need libevent2 to compile this piece of code Please see: http://li…...
【TypeScript】tsc -v 报错 —— 在此系统上禁止运行脚本
在 VS Code 终端中执行 tsc -v ,报错 —— 在此系统上禁止运行脚本 然后 windows x ,打开终端管理员,出现同样的问题 解决方法: 终端(管理员)执行以下命令: 出现 RemoteSigned 则代表更改成功…...
【C++】STL---list
STL---list 一、list 的介绍二、list 的模拟实现1. list 节点类2. list 迭代器类(1)前置(2)后置(3)前置- -、后置- -(4)! 和 运算符重载(5)* 解引用重载 和 …...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...
