QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1277|回复: 1

有人想过为什么minix采用消息机制实现驱动和系统调用吗?

[复制链接]
发表于 2004-2-1 14:09:50 | 显示全部楼层 |阅读模式
有人说是教学目的。其实我看不然,minix的mm机制决定了它只能
使用消息机制来组织TASK,SERVER,KERNEL。
minix的mm只采用了分段技术,没有分页管理,没有交换。
简单的分段技术并不能使用户在用户空间利用陷入来实现系统调用
和驱动,可以说它根本不存在内核空间和用户空间,也没有陷入。
用户进程的内存空间只有文本段、数据段和堆栈段。不象linux的进程空间中
分为用户空间和内核空间。所以为了实现系统调用和驱动,minix只能使用
task进程和server进程的方法,之间利用消息来驱动。每个系统调用,minix
都从用户进程中发送一条消息到实现相应系统调用的task或者server进程中,
让他们完成任务和服务,然后再利用消息返回调用结果。这样的消息机制的好
处是可以使内核相对稳定安全,消息都是经过严格的检查,任何非法的系统
调用都会被消息机制否定。想象一下如果不是利用消息机制而采用直接的
进程间共享(也就是用户可以直接在task、server进程中调用其函数)
正文段,那将是一场灾难。不知道dos的不稳定性是不是这样原因:)
发表于 2004-2-3 00:42:28 | 显示全部楼层
使用消息代替系统调用是微内核系统对宏内核系统的最大改进。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 10:43 , Processed in 0.039723 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表