+---------------------------------------------------------+
| 应用程序编程 (EGC, SPG, PP, SPRC, IOC 等) |
+---------------------------------------------------------+
+----------------------------------+
| 系统编程 (PC, SO, CPL) |
+----------------------------------+
用户空间
----------------------------------------------------------=-
内核空间
+--------------------------+
| 内核编程 (SO2) |
+--------------------------+
----------------------------------------------------------=-
+----------------------------------+
| 硬件 (PM, CN1, CN2, PL ) |
+----------------------------------+
|
|
许多操作系统和内核专家认为这种标签没有实际意义,仅仅是市场营销的策略。Linus Torvalds 对此评论道:
“至于所谓的‘混合内核’,那完全是营销的产物。‘噢,微内核获得了很多好评,我们怎样才能为我们的内核也赢得一些好评呢?我有个主意,就让我们给它起一个很酷的名字,暗示它拥有所有其他系统的优势。’”
- RAM 和外设内存
抢占式多任务处理与抢占式内核是两个不同的概念。
如果一个进程在内核模式下运行时可以被其他进程抢占,那么这个内核就是抢占式的。
然而,请注意,即使是非抢占式内核,也可能支持抢占式多任务处理。
如果内核内存的某些部分(如代码、数据、堆栈或动态分配的内存)能够被交换到磁盘上,那么该内核就支持可分页的内核内存。
每个进程都配备了一个内核堆栈,该堆栈用于维护函数调用链和局部变量的状态。当进程因系统调用而运行在内核模式下时,会使用到这个内核堆栈。
由于内核堆栈的容量相对较小(通常在 4 KB 到 12 KB 之间),内核开发人员必须避免在堆栈上分配大型数据结构或进行深度未受限的递归调用。