内核外有很多地方,可以是内核文件外,但仍然运行在内核地址空间内,也可以是纯粹的用户空间里。而且文件系统也由很多部分构成,可能是单独的文件系统驱动本身,也可能包括VFS之类的整个IO核心。
Windows的文件系统驱动就不包含在内核文件里,但仍然运行在内核地址空间里,你说这是不是内核外?
FUSE就是把文件系统驱动本身搬到了用户态,但VFS API还是内核里的,你说这是不是内核外?
当然,目前还没见过哪个OS能把类似VFS这种文件系统核心都搬到用户空间的(我自己试过,效率直接降1000倍以上)。
所以,就看你怎么定义这些东西了。
纯粹的用户态文件系统(FUSE),不能直接访问硬件,不能访问内核资源,所有操作都要走系统调用,涉及到上下文切换。
内核内的东西,绝大多数情况下不需要系统调用,也不涉及上下文切换,包括Windows这种混合内核的。
宏内核和微内核只是书上的概念,实际实现的操作系统里一般两种都多少支持一点。