百科问答小站 logo
百科问答小站 font logo



一个模块(比如文件系统)在内核中实现(宏内核),跟它在内核外实现(微内核),主要区别是什么? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

内核外有很多地方,可以是内核文件外,但仍然运行在内核地址空间内,也可以是纯粹的用户空间里。而且文件系统也由很多部分构成,可能是单独的文件系统驱动本身,也可能包括VFS之类的整个IO核心。

Windows的文件系统驱动就不包含在内核文件里,但仍然运行在内核地址空间里,你说这是不是内核外?

FUSE就是把文件系统驱动本身搬到了用户态,但VFS API还是内核里的,你说这是不是内核外?

当然,目前还没见过哪个OS能把类似VFS这种文件系统核心都搬到用户空间的(我自己试过,效率直接降1000倍以上)。

所以,就看你怎么定义这些东西了。

纯粹的用户态文件系统(FUSE),不能直接访问硬件,不能访问内核资源,所有操作都要走系统调用,涉及到上下文切换。

内核内的东西,绝大多数情况下不需要系统调用,也不涉及上下文切换,包括Windows这种混合内核的。

宏内核和微内核只是书上的概念,实际实现的操作系统里一般两种都多少支持一点。




  

相关话题

  为什么操作系统不能屏蔽底层的架构(arm,x86,mips),为应用软件提供一个统一的运行环境呢? 
  Build 2015上微软宣布Windows 10支持Objective-C与Java编写的应用,这对C#与Windows自身有什么长远影响? 
  如何评价华为开发自主产权操作系统「鸿蒙」曝光? 
  windows要求已数字签名的驱动程序? 
  一个模块(比如文件系统)在内核中实现(宏内核),跟它在内核外实现(微内核),主要区别是什么? 
  有没有什么办法可以让双系统同时运行? 
  为何 Linus 一个人就能写出这么强的系统,中国却做不出来? 
  为什么桌面领域没有一款 Linux 或 UNIX 能与 Windows 鼎足而立? 
  关于malloc返回值的问题? 
  如何评价 Windows 11 窗口 N 代同堂以及一个系统三个终端? 

前一个讨论
为什么每次买无座票,都会变成二等座?
下一个讨论
这种电视是不是就叫伪4k?





© 2025-02-21 - tinynew.org. All Rights Reserved.
© 2025-02-21 - tinynew.org. 保留所有权利