Minix/Microkernel中系统调用和内核调用之间的区别



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

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

在实现方面,微内核和单块内核中的系统调用是相同的——系统调用陷阱到内核,内核处理请求。

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

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

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

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

最新更新