五分钟了解操做系统内核

操做系统和内核

关于操做系统是这样定义的:
操做系统(英语:Operating System,缩写:OS)是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操做系统须要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操做网络与管理文件系统等基本事务。操做系统也提供一个让用户与系统交互的操做界面。
对咱们来讲,操做系统最直观的感觉就是桌面系统,以及上层的应用程序,然后面的资源处理等等就是操做系统背后的黑盒html

读者朋友们如今阅读个人这篇文章,是在浏览器,或者某个应用程序上进行的。而一个应用程序是要运行在特定的操做系统上的。操做系统,则是要运行在硬件上的。因此这三者关系如图。
os浏览器

再来看看内核的定义:
“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。内核是操做系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,而且内核决定一个程序在何时对某部分硬件操做多长时间。直接对硬件操做是很是复杂的,因此内核一般提供一种硬件抽象的方法来完成这些操做。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。 安全

简单来讲,内核是一个操做系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统等等,决定着系统的性能和稳定性。是链接应用程序和硬件的桥梁。
内核就是操做系统背后黑盒的核心
kernel网络

这时候咱们回过头来看看操做系统和内核的定义,是否是有些明白了呢。函数

内核的分类

既然咱们知道了内核是什么,接着来看看内核的分类,如今内核的主要分类有四类:
宏内核(单内核),微内核,混合内核,外内核。性能

什么是宏内核

咱们上面说到,内核管理着操做系统的内存,文件,IO,网络等等,每一个功能能够看作一个模块,在宏内核中,这些模块都是集成在一块儿的,运行在内核进程中,模块之间的交互直接经过方法调用。
monolithicspa

什么是微内核

而在微内核中,内核只提供最核心的功能,好比任务调度,内存管理等等,其余模块被移出内核,运行在不一样的进程中,这样即便某一个模块出现问题,只要重启这个模块的进程便可,不会影响到其余模块,稳定性大大增长。甚至能够在系统运行过程当中替换现有模块的实现。并且因为模块独立的性质,能够作到模块的按需加载。可是模块间的相互调用须要经过进程间通讯,通讯效率相对较低。
microkernel操作系统

什么是混合内核

咱们上面看了宏内核和微内核的实现,就会发现,二者各有千秋,也各有缺点,因此混合内核就是集中了二者的特色,让微内核中的一些核心模块运行在内核中,从而使内核效率更高一些。.net

什么是外内核

外内核是把硬件暴露给应用程序,应用程序能够直接访问硬件,外内核对系统提供保护。目前还在研究阶段。设计

宏内核 微内核对比

看了上述宏内核和微内核的实现,咱们能够总结一下:宏内核最大的特色就是模块集成在一块儿,而微内核是模块间分离。基于此点出发,对好比下:

宏内核 微内核
通讯效率 高(函数调用) 低(进程间通讯)
稳定性 低(模块集成在一块儿) 高(模块间互不影响)
扩展性 低(模块集成在一块儿) 高(模块间互不影响)
代码量 多(须要实现全部模块) 少(只须要实现核心功能)

当前主流操做系统内核

宏内核
Linux
Windows 9X 系列
MacOS 8.6 版本以前

微内核
Fuchsia
鸿蒙
Minix

混合内核
Windows XP
Windows 7
Mac OS X
XNU

外内核
Nemesis

参考资料

https://zh.wikipedia.org/wiki...
https://www.cnblogs.com/smwik...
https://zh.wikipedia.org/wiki...
https://www.oschina.net/news/...

about

相关文章
相关标签/搜索