![如何知道我正在运行哪种类型的内核? (单片或微内核)](https://linux22.com/image/114715/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E6%88%91%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E5%93%AA%E7%A7%8D%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%86%85%E6%A0%B8%EF%BC%9F%20%EF%BC%88%E5%8D%95%E7%89%87%E6%88%96%E5%BE%AE%E5%86%85%E6%A0%B8%EF%BC%89.png)
从terminal
(Linux 或任何基于微内核的机器上的命令行控制台)我们可以识别正在运行的内核类型吗?
注意:我不想知道内核的版本或名称,并在互联网上搜索相同的内容以查找其类型。
答案1
一般来说,微内核只负责 IPC 和上下文切换等低级内容。具有真正微内核的内核空间中不应存在任何 TCP/IP 堆栈或视频驱动程序。
但在现实世界中,由于上下文切换,这样的内核会太慢。因此,一些系统使用混合内核,其中 API 可能位于微内核之上。
Linux:整体内核(包括 KMS 和 Netfilter 在内的所有内容都在内核空间中工作,要么编译到内核中,要么作为模块加载)
窗户:混合。微内核 + 执行程序(I/O、PnP、GDI 等)+ 驱动程序 + HAL。
XNU:(达尔文:macOS / iOS):混合。称为 Mach(下层)+ BSD(上层)+ I/O 驱动程序套件的微内核。