虚拟文件系统和系统调用有什么区别?

问题描述 投票:0回答:2

据我了解,内核主要提供两个接口供用户空间在内核中执行某些操作,即系统调用和虚拟文件系统(procfs、sysfs 等)。 我在书上读到,VFS内部也使用系统调用。

所以我想知道,这两者到底是如何联系在一起的?在什么情况下我们应该使用 VFS 而不是系统调用,反之亦然。

linux-kernel kernel vfs sysfs
2个回答
2
投票

系统调用是任何用户空间进程从用户空间模式切换到内核模式的通用工具。

它就像驻留在内核中的函数调用,从用户空间调用,参数数量可变,其中最重要的是系统调用号。

内核将始终维护特定于体系结构的受支持系统调用(=内核函数)数组,并且基本上将根据从用户空间传递的系统调用号将来自用户空间的任何系统调用分派到正确的函数。

虚拟文件系统只是文件系统的抽象,它为您提供标准功能来处理任何可以被视为文件的事物。例如,您可以对任何文件调用“打开”、“关闭”、“读取”等,而不必关心该文件存储在哪个文件系统中。

VFS 和系统调用之间的关系是,VFS 基本上是驻留在内核中的代码,访问内核的唯一方法是通过系统调用(“open”是系统调用,“close”也是系统调用,等等)


0
投票

虚拟文件系统(VFS):它是操作系统内的一个抽象层,提供与不同文件系统和存储设备交互的统一接口。

系统调用:是一种允许用户级进程向操作系统内核请求服务的机制,如文件操作、进程管理、硬件访问等。

© www.soinside.com 2019 - 2024. All rights reserved.