首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

​聊聊内核虚拟文件系统

什么是虚拟文件系统?...linux会实现多种基于磁盘的文件系统,比如ext4/xfs等,为了支持不同的磁盘文件系统,且多个磁盘文件系统互相访问,Linux内核在用户进程和磁盘文件系统系统之间引入一个臭小抽象层,这个就是虚拟文件系统...虚拟文件(vfs)系统有什么作用? vfs一方面用来提供操作文件、目录以及其他对象的统一方法;另外一方面,它必须能够与各种给出具体磁盘文件系统的实现达成妥协。 文件系统分为哪些类型?...目前文件系统基本可以分为三类,第一类是基于磁盘的文件系统,例如xfs.第二类是内核虚拟文件系统,是一种使用应用程序与用户进程通信的方法,内核的proc文件系统就是典型实现;第三种是网络文件系统,计算机通过网络连接到本地计算机...,具体的数组组织和处理都是由远程计算机内核进行。

72610

Linux内核设备驱动之虚拟文件系统笔记整理

/******************** * 虚拟文件系统VFS ********************/ (1)VFS介绍 虚拟文件系统VFS作为内核的子系统,为用户空间程序提供了文件系统的相关接口...对于不基于磁盘的文件系统,比如基于内存的文件系统sysfs,linux会在使用现场创建超级块并将其保存到内存中。 超级块的结构体为super_block,定义在。...在文件系统安装时,内核会调用alloc_super()函数从磁盘读取文件系统超级块,并将其信息填充到内存中的超级块对象中。...b.索引节点对象inode 索引节点对象包含了内核在操作文件或目录是需要的全部信息,如文件的访问控制权限,大小,拥有者,创建时间等。 系统把这些信息存储在一个单独的数据结构中,称为索引节点。...文件对象由file结构体表示,定义在中。file对象的操作函数结构体为file_operations,定义在中。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 虚拟文件系统

虚拟文件系统介绍 Linux使用了虚拟文件系统(VFS,Virtual Filesystem,下文统称“虚拟文件系统”),它不是磁盘文件的组织格式,而是抽象出来的文件树的集合,它通过标准接口动态的向其中增加或移除对应的目录...等 网络文件系统,它们存储在网络中的其他主机上,通过网络进行访问,例如 NFS 特殊文件系统,内存的映射、例如/proc 案例如以下截图,Linux上的进程通过Sytem Calls(系统调用)将数据经过...vfs.png 虚拟文件系统对象类型 虚拟文件系统,有四个主要对象类型: Superblock 表示特定加载的文件系统 Inode 表示特定的文件 Dentry 表示一个目录项,路径的一个组成部分...这个对象对应为文件系统超级块或者文件系统控制块,它存储在磁盘特定的扇区上。不是基于磁盘的文件系统临时生成超级块,并保存在内存中。 Inode 索引节点对象包含了内核在操作文件或目录时需要的全部信息。...File 虚拟文件系统最后一个主要对象是文件对象,文件对象表示进程已打开的文件。如果我们站在用户空间的角度考虑虚拟文件系统 ,文件对象会首先进入我们的视野。

1.5K51

Linux 内核Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

文章目录 一、Linux 内核特性 1、Linux 内核组织形式 2、Linux 进程调度 3、Linux 内核线程 4、Linux 内核多平台虚拟内存管理 5、Linux 虚拟文件系统 6、Linux...; 内核线程 在 后台运行 , 不需要与 命令行终端结合 ; 4、Linux 内核多平台虚拟内存管理 Linux 内核支持 多平台 虚拟内存管理 , 内存管理 与 硬件平台 相关性很高 , 不同的硬件平台..., 使用的内存管理方式是不同的 , Linux 内核为了保证 内存管理 的通用性 , 同时还要 兼容不同的硬件平台 , Linux 内核提供了 虚拟内存管理 机制 , 提供 统一的内存管理接口 , 可以将...Linux 内核很容易移植到新的硬件平台中 ; 5、Linux 虚拟文件系统 Linux 虚拟文件系统 , 英文全程 Virtual File System , 简称 VFS ; 虚拟文件系统 ( VFS...) 为 逻辑文件系统 ( FAT32 , NFTS , EXT2/3/4 ) 提供 统一的标准接口 , 也为 硬件设备 提供了 标准接口 ; 6、Linux 内核模块机制 Linux 模块机制 可以使得

65220

Linux虚拟文件系统初探

Linux内核使用工厂的设计模式抽象出实际文件系统统一接口,这个就是虚拟文件系统(VFS),根据应用程序调用虚拟文件系统接口,根据不同的文件系统类型(xfs/zfs/ext4)来调用实际文件系统的接口...// linux 5.4.85/include/linux/fs.h 取出super_block核心字段 struct super_block { // 文件系统块大小 unsigned long...文件系统中的dentry就是反应这里的树状关系 在linux中每个文件都有一个dentry,这个dentry链接到上层目录的dentry.根目录有一个dentry结构,根目录中的文件和目录的dentry...都链接到根目录的dentry. linux内核中为了加快dentry查找,使用hash表来缓存dentry(dentry cache)。...对于一个文件查找一般先查找dentry cache中进行 // linux 5.4.85/include/linux/dcache.h 取出dentry核心字段 struct dentry { //

72420

细说|Linux虚拟文件系统原理

虚拟文件系统简介 为了实现 一切对象皆是文件 这个目标,Linux 内核提供了一个中间层:虚拟文件系统(Virtual File System)。...虚拟文件系统原理 上面的 Java 例子已经大概说明虚拟文件系统的原理,但由于 Linux 是使用 C 语言来编写的,而 C 语言并没有接口这个概念。...所以,Linux 内核使用了一些技巧来模拟接口这个概念。 下面来介绍一下 Linux 内核是如何实现的。...在 Linux 内核中,file 结构代表着一个被打开的文件。所以,只需要将 file 结构的 f_op 字段设置成不同文件系统实现好的方法集,那么就能够使用不同文件系统的功能。...正是有了 虚拟文件系统Linux 才能支持各种各样的文件系统

1.2K10

【LFS 系列】从零开始 DIY Linux 系统:(六)构建 LFS 系统 - 准备虚拟内核文件系统

就是说,我们会 chroot 进入之前准备好的临时迷你 Linux 系统,做一些最后的准备工作,然后就开始安装软件包。 内核会挂载几个文件系统用于自己和用户空间程序交换信息。...这些文件系统虚拟的,并不占用实际磁盘空间,它们的内容会放在内存里。...开始先创建将用来挂载文件系统的目录: mkdir -pv $LFS/{dev,proc,sys,run} 创建初始设备节点 在内核引导系统的时候,它依赖于几个设备节点,特别是 console 和 null...(比如 tmpfs),然后允许在检测到设备或打开设备时在这个虚拟文件系统里动态创建设备节点。...运行下面的命令来实现: mount -v --bind /dev $LFS/dev 挂载虚拟文件系统 现在挂载剩下的虚拟内核文件系统: mount -vt devpts devpts $LFS/dev/

53010

Linux 内核Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )

文章目录 一、Linux 内核在操作系统中的层级 二、Linux 内核子系统 三、Linux 内核子系统之间的关系 一、Linux 内核在操作系统中的层级 ---- Linux 内核 所在层级 : 整个计算机系统中..., 由下到上介绍 : 计算机硬件 处于最底层 ; 计算机硬件 上面一层是 Linux 内核 , 计算机的所有硬件操作都要经过内核 , 内核是 抽象资源操作 与 具体硬件操作细节 之间的接口 ; Linux..., 硬件有关部分 就是 管理真实的内存硬件 ; 虚拟文件系统 ( Virtual File System ) : 为所有类型的 设备/逻辑文件系统 ( EXT2/3/4 , NTFS ) 提供统一接口...内核子系统之间的关系 ---- 进程调度 依赖于 内存管理 模块 , 内存管理 依赖于 虚拟文件系统 和 进程调度 两个模块 , 虚拟文件系统 依赖于 内存管理 , 内存调度 , 网络管理 模块 ,...网络管理 依赖于 进程调度 模块 ; 进程间通信 依赖于 内存管理 和 进程调度 两个子系统模块 , 进程调度 与 内存管理 这两个子系统之间 是相互依赖的 , 内存管理 与 虚拟文件系统 之间 相互依赖

3.3K20

详解Linux内核编译配置(menuconfig)、文件系统制作

目录 详解Linux内核编译配置(menuconfig)、文件系统制作 一、Linux内核配置原理 Linux内核的配置系统由三个部分组成, Linux 内核的编译菜单有3中方法: Menuconfig...配置内核原理: 二、Menuconfig主要功能选项介绍: 三、编译配置内核步骤 四、文件系统制作步骤 五、文件系统和根文件系统区别联系 博主热门文章推荐: ---- 详解Linux内核编译配置(menuconfig...)、文件系统制作 Linux内核配置原理 Menuconfig主要功能选项介绍 编译配置内核步骤 制作文件系统步骤 文件系统和根文件系统区别联系 ---- 一、Linux内核配置原理 Linux内核的配置系统由三个部分组成..., 分别是: 1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则; 2、配置文件(config.in):给用户提供配置选择的功能; 3、配置工具...常见的linux文件系统:NFS 网络根文件系统、YAFFS2针对nandflash, EXT3,EXT4 等。

4.7K20

Linux内核设备驱动之proc文件系统笔记整理

/***************** * proc文件系统 *****************/ (1)/proc文件系统的特点和/proc文件的说明 /proc文件系统是一种特殊的、由软件创建的文件系统...,内核使用它向外界导出信息,/proc系统只存在内存当中,而不占用外存空间。.../proc下面的每个文件都绑定于一个内核函数,用户读取文件时,该函数动态地生成文件的内容。.../proc/filesystems 列出了可供使用的文件系统类型,通常是编入内核文件系统类型,但可以通过模块加入新的类型 /proc/interrupts 显示使用的中断号,中断名称,以及这些中断从系统启动后产生的次数...供uptime使用 /proc/version 内核版本 (2)自行实现一个/proc文件 需包含头文件,函数定义在/fs/proc/generic.c a.在/proc

3.5K21

Linux 内核Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )

虚拟内存管理 , 是 Linux 内核中 最复杂的模块 ; 虚拟内存管理 包括 : 反向映射 , KSM , MMAP 映射 , 缺页中断 , 共享内存 , 进程虚拟地址空间管理 , 页面回收 ;...处理器执行时 , 检测 异常条件 , 处理器需要停止当前执行的栈 , 处理异常 ; 中断管理 位于 下图 Linux 内核整体架构图 中的 内核空间 ; 四、设备管理 ---- Linux 内核 支持的外设类型...是最多的 , 设备树 PCI 总线设备 设备模型 Kobject ACPI 网络设备驱动 块设备驱动 字符设备驱动 设备管理 位于 下图 Linux 内核整体架构图 中的 内核空间 ; 五、文件系统...---- 文件系统应用场景 : F2FS EXT 2/3/4 XFS Linux 内核 为了支持各种文件系统 , 抽象出一个 虚拟文件系统 VFS , 这是一个文件系统的软件层 , 这样 Linux...内核可以很方便的集成各种文件系统 ; 文件系统 位于 下图 Linux 内核整体架构图 中的 内核空间 ;

1.8K30

虚拟文件系统

虚拟文件系统 为不同的文件系统定义了一套规范,各个文件系统必须按照 虚拟文件系统的规范 编写才能接入到 虚拟文件系统中。...VFS 主要为用户和内核架起一道桥梁,用户可以通过 VFS 提供的接口访问不同的文件系统,如下图: ? 下面我们开始分析 虚拟文件系统 的实现原理。...虚拟文件系统抽象数据结构 Linux奉行了Unix的理念:一切皆文件,比如一个目录是一个文件,一个设备也是一个文件等,因而文件系统Linux中占有非常重要的地位。...超级块(super block) 因为Linux支持多文件系统,所以在内核中必须通过一个数据结构来描述具体文件系统的信息和相关的操作等,VFS 定义了一个名为 超级块(super_block) 的数据结构来描述具体的文件系统...注册文件系统 Linux为了支持不同的文件系统而创造了虚拟文件系统虚拟文件系统更像一个规范(或者说接口),真实的文件系统需要实现虚拟文件系统的规范(接口)才能接入到Linux内核中。

1.5K30

Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的...Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址...: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org...参考 【错误记录】解压 Linux 内核报错 ( Can not create symbolic link : 客户端没有所需的特权 | Windows 中配置 7z 命令行执行解压操作 ) 博客 ;...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用

23.2K32

Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的...Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址...: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org...不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用...按钮 , 此时就可以在 VSCode 中阅读 Linux 内核源码 ;

21.2K30

从 lsof 开始,深入理解Linux虚拟文件系统

要了解这些,就要先弄清楚并不容易,下面将从一些基本概念入手,一步步将这些梳理清楚: 什么是虚拟文件系统(VFS:virtual filesystem)? 什么是通用文件模型?...object) 目录项对象(dentry object) 文件的概念 文件的表达 内存表达 磁盘表达 目录树的构建 软链接 vs 硬链接 文件 & 磁盘管理 索引节点状态 文件 & 进程管理 操作:打开&删除 虚拟文件系统...图片 所有与文件相关的操作的入口都是虚拟文件系统(VFS),而非特定的额文件系统(如Ext3、ReiserFS和NFS)。VFS 提供了系统库和特定文件系统之间的接口。...目录树 综合来说,Linux 的 根文件系统(system’s root filessystem) 是内核启动mount的第一个文件系统。...内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后,从中把一些基本的初始化脚本和服务等加载到内存中去运行(文件系统内核是完全独立的两个部分)。

38310

从 lsof 开始,深入理解 Linux 虚拟文件系统

虚拟文件系统(virtual filesystem) 下图显示了Linux操作系统中负责文件管理的基本组件。上半区域为用户模式,下半区域为内核模式。...应用程序使用标准库libc来访问文件,库将请求映射到系统调用,以便进入内核模式。 ?...所有与文件相关的操作的入口都是虚拟文件系统(VFS),而非特定的额文件系统(如Ext3、ReiserFS和NFS)。VFS 提供了系统库和特定文件系统之间的接口。...目录树 综合来说,Linux 的 根文件系统(system's root filessystem) 是内核启动mount的第一个文件系统。...内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后,从中把一些基本的初始化脚本和服务等加载到内存中去运行(文件系统内核是完全独立的两个部分)。

1.2K40

linux内核编程_linux内核是什么

fs:支持的各种文件系统,如EXT、FAT、NTFS、JFFS2 等。 include:头文件,与系统相关的头文件被放置在include/linux 子目录下。 init:内核初始化代码。...Linux内核的有哪些组成部分? 进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC) Linux内核的的组成部分之间有什么关系?...虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK 设备。 内存管理利用虚拟文件系统支持交换,依赖于进程调度完成交换进程(swapd)定期由调度程序调度。...Linux 的每个进程享有4GB的内存空间,0~3GB属于用户空间,3~4GB属于内核空间 虚拟文件系统有什么作用?...Linux 虚拟文件系统(VFS)隐藏各种了硬件的具体细节,为所有设备提供了统一的接口。而且,它独立于各个具体的文件系统,是对各种文件系统的一个抽象 虚拟文件系统如何描述文件相关信息?

18.8K30
领券