Linux基础与应用开发系列七:一切皆文件

Linux内核

屏蔽硬件区别,把所有的硬件设备抽象成文件,提供统一的接口给用户使用。

虚拟文件系统

抽象层,对文件的访问实际上使对抽象层的访问。

  • 抽象对象:封装了底层读写细节,使用c语言的多态来实现具体文件系统系统的接口。

虚拟文件系统(Virtual File System,简称VFS)是Linux操作系统中的一个子系统,它提供了一个抽象层,用于统一管理各种不同类型的文件系统。VFS允许应用程序使用统一的接口来访问不同的文件系统,而不需要关心底层文件系统的具体实现。

在Linux中,每种文件系统都有其自己的驱动程序来负责实现具体的文件系统操作,如读取、写入、创建和删除文件等。VFS提供了一个通用的文件系统接口,通过这个接口,应用程序可以使用相同的方法来操作各种类型的文件系统,无论是ext4、NTFS、FAT32还是其他文件系统。

VFS的核心数据结构是虚拟文件表(Virtual File Table,简称VFT)。每个打开的文件都会有一个对应的VFT项,该项包含了与文件相关的信息,如文件的位置、权限和操作等。VFS还提供了一些函数,用于查找、打开、关闭和读写文件等操作。

通过VFS,用户可以在不同的文件系统之间进行切换,而不需要修改应用程序的代码。这使得Linux能够支持各种不同的文件系统,并且为应用程序提供了更高的灵活性和可移植性。

普通文件系统:

  • ext4

  • fat32

  • ubifs

特殊文件系统:

  • 进程文件系统:procfs,挂载(mount命令)在/proc,存放进程相关信息,相当于win下的任务管理器。

  • 设备文件系统:devfs,挂载在/dev。存放硬件操作接口。

相关推荐
一水鉴天18 小时前
整体设计 定稿 之6 完整设计文档讨论及定稿 之2 模块化设计体系规范(工具作为首批践行者)(豆包助手)
运维·人工智能·重构·架构
艾莉丝努力练剑18 小时前
【Python库和代码案例:第一课】Python 标准库与第三方库实战指南:从日期处理到 Excel 操作
java·服务器·开发语言·人工智能·python·pycharm·pip
十月南城18 小时前
统一日志与链路ID的价值——为什么要结构化日志、如何通过关联ID提升排障效率
运维·网络
huangyuchi.18 小时前
【Linux网络】UDP协议详解:透过源码看透“面向数据报”与“缓冲区”的本质
linux·网络·udp·报文·linux网络·传输层协议·报头
林九生18 小时前
【Centos7】CentOS 7 yum源失效解决方案:Could not resolve host mirrorlist.centos.org
linux·运维·centos
福尔摩斯张18 小时前
【实战】C/C++ 实现 PC 热点(手动开启)+ 手机 UDP 自动发现 + TCP 通信全流程(超详细)
linux·c语言·c++·tcp/ip·算法·智能手机·udp
了一梨18 小时前
网络编程:UDP Socket
linux·网络协议·udp
xinxinhenmeihao18 小时前
长效住宅静态IP有什么好处?是选择动态IP还是静态IP好?
服务器·网络·tcp/ip
ChristXlx19 小时前
Linux安装MongoDB(虚拟机适用)
linux·mongodb·postgresql
北方的流星19 小时前
锐捷网络设备(盒式交换机,路由器,EG网关,无线AC、AP)恢复出厂设置
运维·网络·锐捷