内核起始篇学习
1. 内核架构
1.1 宏内核
宏内核包含多个模块,整个内核就像一个完整的程序。
1.2 微内核
微内核有一个最小版本的内核,一些模块和服务则由用户态管理。
1.3 混合内核
混合内核是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序。
2. 内核功能
1)管理进程、线程,决定哪个进程、线程使用CPU,也就是进程调度的能力;
2)管理内存,决定内存的分配和回收,也就是内存管理的能力;
3)管理硬件设备,为进程与硬件设备之间提供通信能力,也就是硬件通信能力;
4)提供系统调用,如果应用程序要运行更高权限才能运行的服务,那么就需要有系统调用,它是用户程序与操作系统之间的接口。
3. 内核工如何工作
内核具有很高的权限,可以控制cpu、内存、硬盘等硬件,而应用程序具有的权限很小,因此大多数操作系统,把内存分成了两个区域:
1 | 内核空间:这个内存空间只有内核程序可以访问 |
用户空间的代码只能访问一个局部的内存空间,而内核空间的代码可以访问所有内存空间。因此,当程序使用用户空间时,我们常说该程序在用户态执行,而当程序使用内核空间时,程序则在内核态执行。
4. Linux与Windows区别
Linux的内核设计采用了宏内核,而Windows的内核设计则是采用了混合内核。
同时两个操作系统的可执行文件格式也不一样,Linux下的可执行文件格式为ELF,Windows可执行文件格式为PE。
5. Linux内核设计
Linux内核设计的理念主要有这几个点:
1 | 1. MutiTask,多任务 |
发布时间: 2021-11-01
最后更新: 2023-07-21
本文标题: 内核起始篇
本文链接: https://foxcookie.github.io/2021/11/01/内核起始篇/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!