Operating system Minix/Microkernel中系统调用和内核调用的区别

Operating system Minix/Microkernel中系统调用和内核调用的区别,operating-system,minix,microkernel,Operating System,Minix,Microkernel,从概念上讲,Minix中的系统调用和内核调用有什么区别 在Linux这样的操作系统中,我有点理解这种差异,但是在Minix这样的微内核中呢?这两种类型的调用是否相同?从实现角度看,微核与单片内核中的系统调用是相同的-系统调用捕获到内核,内核处理请求 最大的不同是系统调用的目的——让我们以文件系统为例 在单片内核中,大多数服务都是在内核内部实现的,包括文件系统。因此,要打开一个文件,对一个文件执行操作,需要一个系统调用 在微内核中,大多数服务都是在用户级别实现的,需要系统调用的内容实际上取决于系统

从概念上讲,Minix中的系统调用和内核调用有什么区别


在Linux这样的操作系统中,我有点理解这种差异,但是在Minix这样的微内核中呢?这两种类型的调用是否相同?

从实现角度看,微核与单片内核中的系统调用是相同的-系统调用捕获到内核,内核处理请求

最大的不同是系统调用的目的——让我们以文件系统为例

在单片内核中,大多数服务都是在内核内部实现的,包括文件系统。因此,要打开一个文件,对一个文件执行操作,需要一个系统调用

在微内核中,大多数服务都是在用户级别实现的,需要系统调用的内容实际上取决于系统的体系结构。在服务组件化的类似Minix的系统中,向文件系统服务器发出文件系统请求。这仍然涉及到一个系统调用,但系统调用是一条发送给文件系统服务器的IPC消息,对所需操作进行编码,而不是请求内核执行特定操作。内核只是简化了消息传输


正如我所说的,这取决于系统架构。基于微核的系统可以有一个体系结构,其中文件系统包含在访问它的进程中,因此大多数文件操作不需要系统调用(但您的存储驱动程序可能需要一些系统调用)。

“文件系统包含在访问它的进程中的体系结构”将是一个exo内核,不是微内核。当然有无限的混合体(例如,“大部分是微内核,部分是exo内核,还有一点点是单片的”)。这取决于您使用的定义。L4微内核可以用来构建许多不同类型的系统,包括我上面描述的。这并不意味着L4内核不是“微内核”。