| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 什么是微内核? -> 正文阅读 |
|
[系统运维]什么是微内核? |
? ? 其实,网上有很多对操作系统的定义,写得非常详细,本文无需重复造轮子,同学们可以上网了解其详细定义。小编在这里以自己的理解,简单白话介绍一下。 操作系统????从软件构成来说,操作是一种软件程序,主要由调度器、进程/线程、IO设备驱动等组成;从使用层面来说,操作系统管理系统中所有的硬件资源,并为用户程序提供相应的服务,常见的如Windows,linux等。用户程序是没有权限直接访问系统中的各种硬件资源的。因为如果放开了权限,用户程序的一个错误操作,可能导致整个系统的崩溃,更何况有很多用户程序在同时运行,崩溃的概率将是很大的。这样的结果,用户是无法接受的。 ????所以系统所有硬件资源、特权行为等都将由操作系统软件负责。当然,你说操作系统本身也可能出现问题啊!确实,这是不可避免的。所有你能寄托希望的就是,写操作系统软件的人足够牛、可能发生的错误足够少。事实证明市场主流的操作系统目前用起来确实还不错。所以请安心地将这份寄托放在微软、谷歌、Linux开源社区的开发者们,还有逐渐发展起来的国产操作系统的开发者们身上。 ????本文,包括本公众号主要研究微内核操作系统,所以对常见的操作系统概念不再做延申。下面将详细讲解微内核操作系统的相关概念。 微内核操作系统????前文提到操作系统本身也可能发生错误,针对这个问题,初看感觉无计可施。其实不然,从数学思维的角度来看,理论上,越简单的事务越不容易犯错,代码量越小出错的概率越小。也许正是基于这个原理,就衍生出了微内核操作系统。 ????我们常用的windows、linux操作系统,它们并不是微内核操作系统,相反,它们是宏内核操作系统。那么微内核与宏内核有什么不一样呢? ????下面将从物理(硬件)特征和虚拟(软件)特征,做一些对比:
????????能直接看出差距的应该是内核镜像的尺寸了。微内核仅保留了调度器、同步机制、进程线程管理等最基本的核心服务,所以代码尺寸能小很多。要知道,当前linux内核约80%以上都是驱动代码。去掉驱动代码后,尺寸减小到原来的20%,还是很惊人的。
????????微内核与宏内核的常见软件架构区分见下图: ????一般微内核操作系统的软件组件架构图,也可以如下图所示:
????????微内核与宏内核相比,至少文件系统、网络协议栈、设备驱动等的崩溃不会造成微内核操作系统的崩溃,但是宏内核就难说了,大概率oops。在微内核操作系统中,很多组件可以在不重启内核的情况下,被再次起起来。这在很多对系统安全要求较高的场景是非常有用的。
????????微内核软件组件的模块化更多更灵活。很多模块可以在不重启系统的情况下单独完成更新升级。
????????相比宏内核,微内核的上下文切换会更多,从而综合性能多少还是比不上宏内核。 ????说了这么多,具体什么操作系统是微内核呢?市场上还是有的,著名的QNX基于微内核,深耕汽车车载OS,占有绝对的市场率;Google约2015年开始默默研究的Fuchsia OS的内核zircon也是基于微内核开发的。还有其他微内核操作系统,如SEL4等,就不一一列举了。 ? ? ? ? 出于对zircon微内核的爱好,作者将持续更新fuchsia os微内核的研究文章。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:49:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |