什么是内核
三层结构: Hardware Kernel Shell
四层结构: Hardware Kernel Middleware Application
内核的作用
进程管理: Process Descriptor / Scheduler / Inter-Process Communication
内存管理: Virtual Address Space / Pading & Segmentation / Memory Protection
文件系统: /Root Directory / Page Fault Interruption / Virtual File System
设备网络: Input & Output / Device Driver / TCP&IP Protocol Stack
内核与服务
宏内核(Monolithic Kernel) | 微内核(Micro Kernel) |
---|---|
单体应用(Monolithic Application) | 微服务(Micro Service) |
功能全面 | 功能单一 => Single | Multi
体积大 | 体积小 => PC | Iot
性能很高 | 性能较高 => Kernel Space | User Space
全部不可用 | 部分不可用 => BSOD(Blue Screen of Death) | Latency and Fault Tolerance(Netflix/Hystrix)
全部编译 | 部分编译 => Build Kernel & Kernel Tailoring
扩展方便 | 扩展容易 => Linus Torvalds !!!
稳定性高 | 稳定性较高
设计实现较难 | 设计实现很难 !!!
......
内核的未来
- 混合内核(Hybrid Kernel)
Linus Torvalds批评这只是营销手段 详细参考Wiki - 混合核心
- Linux Kernel(Monolithic Kernel) => Loadable Module
关于Linux可加载内核模块 可以参考Linux 可加载内核模块剖析
- macOS Kernel(Hybrid Kernel) => Mach Kernel(Micro Kernel) + BSD(Monolithic Kernel)
关于上述内核的更多介绍 可以参考Wiki - Mach Kernel