内核
1.1 内核
计算机是由硬件设备构成的,如果每个硬件设备与应用对接通信协议那就太过于麻烦,所以引入了内核这一概念,内核就是中间人,负责计算机内部硬件设备与应用之间通信的桥梁
1.2 内核的功能
- 内核管理进程与线程,决定哪个进程与线程使用CPU,进程调度的能力
- 内核管理内存,对内存进行分配与回收
- 内核管理硬件设备,为进程与硬件设备之间提供通信能力
- 内核提供系统调用,是用户与操作系统之间的接口
- 安全管理:提供用户认证,权限控制,审核日志等安全功能
内核具有很高的权限,操作系统将内存分成内核态与用户态
1.3 用户态
用户空间的代码只能访问一个局部的内部空间,内核空间可以访问所有的内存空间。
1.4 内核的设计理念
- 多任务(同时,并发,或者并行)
- 对称多处理(每个CPU的地位相等,对资源的使用权限相同)
- 可执行文件链接格式
- 宏内核(包含多个模块,整个内核是完整的程序)
1.5 内核的分类
- 宏内核(内核的功能都集中在一起,运行在内核进程中,模块之间的交互直接通过方法调用)
- 微内核(微内核中,内核只提供最核心的功能,如任务调度、内存管理,其他模块都被移除内核,运行在不同进程,这样即使某一个模块出现问题,只要重启该进程即可;但是该种做法需要使用IPC作为进程间通信的方式,进程间的效率较低)
- 混合内核(宏内核和微内核的结合体,混合内核就是集中了两者的特点,让微内核的一些核心模块运行在内核中,从而使得内核效率更高)