当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]Linux中可以支持多种文件系统,而且支持各种文件系统之间相互访问,这是因为有一个虚拟文件系统。虚拟文件系统也叫虚拟文件系统转换(Virtual Filesystem Switch,简称VFS),之所以说它虚拟,是因为该文件系统的各种数据结构都是随时建立或删除的,在盘上并不永久存在,只能存放在内存中。也就是说,只有VFS是无法工作的,因为它不是真正的文件系统。

Linux中可以支持多种文件系统,而且支持各种文件系统之间相互访问,这是因为有一个虚拟文件系统。虚拟文件系统也叫虚拟文件系统转换(Virtual Filesystem Switch,简称VFS),之所以说它虚拟,是因为该文件系统的各种数据结构都是随时建立或删除的,在盘上并不永久存在,只能存放在内存中。也就是说,只有VFS是无法工作的,因为它不是真正的文件系统。

我们把各操作系统中的实际文件系统叫做逻辑文件系统,VFS是Linux 内核与这些逻辑文件系统的一个接口,它们之间的关系。

VFS是Linux 核心的一部分,其他内核子系统与VFS打交道,VFS又管理其他逻辑文件系统。所以VFS是文件系统和Linux 内核的接口,VFS以统一数据结构管理各种逻辑文件系统,接受用户层对文件系统的各种操作。

VFS存在的意义

1. 向上,对应用层提供一个标准的文件操作接口;

2. 对下,对文件系统提供一个标准的接口,以便其他操作系统的文件系统可以方便的移植到Linux上;

3. VFS内部则通过一系列高效的管理机制,比如inode cache, dentry cache 以及文件系统的预读等技术,使得底层文件系统不需沉溺到复杂的内核操作,即可获得高性能;

4. 此外VFS把一些复杂的操作尽量抽象到VFS内部,使得底层文件系统实现更简单。

通用文件模型

VFS为底层文件系统提供了抽象,有两种策略提供这种抽象。

1. 提供一个最小的通用模型,使得这个模型支持的功能是所有文件系统的最小交集

2. 提供一个尽量大的通用模型,使得这个模型包含所有文件系统功能的合集。

Linux采用第二种策略来实现VFS,因此VFS封装了底层文件系统的所有功能和抽象,VFS负责把应用层的请求转发给特定的文件系统。

在处理文件时,应用空间和内核空间使用的对象是不同的。对应用程序来说,文件描述符用来表示一个文件,这个文件描述符是打开文件时内核分配给这个文件的一个整数,注意,这个文件描述符只在本进程内有效;而对于内核来说,则使用一个inode来表示一个文件,这个inode可能对应着应用层多个进程内的多个文件描述符。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

3月10日消息,2026年开年,一个名为OpenClaw的开源项目以闪电般的速度席卷了GitHub。它在短短一天内就斩获了9000颗星

关键字: OpenClaw Linux

3月6日消息,在摩根士丹利会议上,NVIDIA CEO黄仁勋分享了关于Agentic AI(代理式人工智能)转折点的见解,并将开源软件OpenClaw评价为“当代最重磅的软件发布”。

关键字: OpenClaw Linux

Linux内存管理是操作系统的核心机制之一,通过虚拟内存与物理内存的分离设计,实现了多进程内存隔离、高效资源利用和系统稳定性保障。

关键字: Linux 内存

在Linux系统中,进程管理是内核的核心功能之一,其核心目标是通过高效的调度机制和进程切换技术,实现多任务并发执行。

关键字: Linux CPU

内核是操作系统的核心,它作为应用程序与硬件设备之间的"中间人",负责进程调度、内存管理、硬件通信和系统调用等关键功能。Linux和Windows作为全球使用最广泛的两大操作系统,其内核设计理念、架构和运行机制存在本质差异...

关键字: Linux Windows

在Linux系统中,当开发者使用mmap()系统调用将磁盘文件映射到进程的虚拟地址空间时,一个看似简单的指针操作背后,隐藏着操作系统内核与硬件协同工作的复杂机制。这种机制不仅突破了传统文件IO的效率瓶颈,更重新定义了内存...

关键字: Linux 文件IO 内存映射

在Linux驱动开发领域,持续集成与持续部署(CI/CD)流水线通过自动化流程将代码变更快速转化为可靠部署,而KernelCI与LTP测试套件的深度集成则成为保障驱动稳定性的关键技术组合。本文将从原理分析、应用场景及实现...

关键字: CICD流水线 Linux

在Linux系统中,动态库(共享库)是程序运行的重要组成部分。当程序需要调用动态库时,系统必须能够找到这些库文件的位置。

关键字: 动态库 Linux

ATYM是一个轻量级的运行时,用于在Linux边缘设备(如树莓派)上运行WebAssembly应用程序。ATYM不是在系统上部署大型Docker映像或直接运行本机二进制文件,而是运行小型的沙盒程序,这些程序启动速度快,使...

关键字: 树莓派 ATYM Linux 内存

在计算机网络中,端口映射(Port Forwarding)是一项关键的技术,它允许外部网络通过特定端口访问内部网络中的服务。这种技术广泛应用于家庭网络、企业环境以及云计算场景,是实现远程访问、游戏服务器搭建、FTP共享等...

关键字: Linux Windows
关闭