<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux文件管理(2)》(26)

本文主要是介绍<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux文件管理(2)》(26),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux操作系统原理分析之Linux文件管理(2)》(26)

  • 8 Linux文件管理
    • 8.4 虚拟文件系统 VFS
      • 8.4.1 VFS 的工作原理
      • 8.4.2 VFS 超级块
      • 8.4.3VFS 的 inode
    • 8.5 文件系统的安装与注册
      • 8.5.2 文件系统的注册

8 Linux文件管理

8.4 虚拟文件系统 VFS

linux 支持的文件系统有;Minix 、ext2、iso、nfs、smb、msdos、romfs 等多达 20 几种。为什么能支持这么多的文件系统?因为它引进了虚拟文件转换技术 VFS。Vfs 屏蔽了各种文件系统的差异,为处理各种不同文件系统提供了统一的接口,在 vfs 的管理下,linux 能访问各种文件系统,而且实现了各种文件系统之间的互访

8.4.1 VFS 的工作原理

  1. 虚拟转换机制((VFS)
    👉物理文件系统:Linux 支持的各种文件系统:如 Minix、ext2 、iso、nfs 等被称为物理文件系统;
    👉虚拟转换机制((VFS):不同的物理文件系统有不同的组织结构和不同的处理方式,为了能处理各种不同的物理文件系统,操作系统需要把它们的特性进行抽象,把各种不同物理文件系统转换为一个具有统一共性的虚拟文件系统,这种转换机制称为虚拟文件系统转换,即 vfs 。
    VFS 不是实际的文件系统,它进程提供了处理各种物理文件系统的公共接口它进程提供了处理各种物理文件系统的公共接口。通过这个接口使得不同 通过这个接口使得不同的文件系统看来都是相同

在这里插入图片描述

  1. VFS 超级块和 VFS inode 结构
    👉VFS 超级块的作用是把在各种文件系统中的表示文件在逻辑分区中的静态分布情况转换成统一的格式。
    👉VFS inode 作用是把不同文件系统的活动文件的管理信息,如文件类型 如文件类型、文件尺寸等转换成统一格 文件尺寸等转换成统一格式式式式。
  2. 公共操作函数接口 公共操作函数接口
    当进程向系统发出文件操作请求时,该文件可能是某个物理文件系统中的一个文件,内核将通过VFS 公共操作函数接口转换到该文件系统的相应的操作函数。

在这里插入图片描述

8.4.2 VFS 超级块

VFS 超级块是在文件系统安装是由系统在内存建立的,对于每一种已安装的文件系统,在内存中都有与其对应的 VFS 超级块。各种文件系统的超级块都是一个 super_block 结构体。它里的数据是在安装时,由读超级块例程 read_super()把某种文件系统的管理信息写入它的 VFS 超级块中。
VFS 超级块主要包括以下几种信息:

1.文件系统的组织信息。如文件系统所在的设备号、块大小、块位数、文件系统署名等。设备号包括主设备号和次设备号,如/dev/hda1,设备号是
0x0301,其中 03 是主设备号,01 是次设备号。
2.文件系统的注册和安装信息。
3.超级块的属性信息,表现为超级块的各种标志,如超级块标志、锁定标志、禁写标志、修改标志等
4.VFS 超级块的前面各个成员项表示的是各种文件系统的共信息,不同文件系统的特有信息则由联-合体 u 的各个成员表示。
5.指向对超级块进行操作的函数指针。

8.4.3VFS 的 inode

VFS inode 作用是把不同文件系统的活动文件的管理信息,如文件类型、文件尺寸等转换成统一格式。
只有当前正在使用的活动文件才有 VFS inode。

8.5 文件系统的安装与注册

1.安装点
安装点:linux 文件系统的树型层次结构中用于安装其它文件系统的目录称为安装点或安装目录。
在这里插入图片描述
超级用户可以 通过下列命令来安装文件系统:

$mount –t msdos /dev/hdc /mnt/usr

Msdos:文件系统类型
/dev/hdc:文件系统所在设备
/mnt/usr:安装点
卸载文件系统命令:

$ummount dev/hdc 或$ummount /mnt/usr

2.物理文件系统链表
Linux 对 系 统 中 已 安 装 的 每 种 物 理 文 件 系 统 用 一 个 vfsmount 结 构 进 行 描 述 , 其 定 义
在/include/linux/mount.h。

8.5.2 文件系统的注册

文件系统在安装后,为了能让 linux 系统对各种物理文件进行管理,物理文件系统在安装后必须向系统内
核注册。
两种方式:
👉编译系统内核时确定可以支持哪些文件系统,在系统引导时注册
👉 系统运行中需要使用某种文件系统时进行安装并注册。

  1. 注册链表
    系统中所有已注册的文件系统登记在 file_system_type 中,组成一个链表。
struct file_system_type
{
const char *name; /*指向文件系统文件系统名*/
struct super_block *(*read_super) (struct super_block *, void *, int); /*函数指针,函数功能:在文件系统安装时,从外存读取该文件系统的有关数据写入 VFS 中。*/
int requires_dev; /*是否需要设备支持:1 需要;0 不需要*/
struct file_system_type * next; /*下一个节点*/
};

Linux 支持的各种物理文件系统的注册数据预先设置在它们各自的注册结构体中。
在这里插入图片描述

  1. 文件系统的注册
    各种文件系统的注册是通过内核提供的文件系统初始化函数实现的,如:
Init_ext2_fs();
Init_msdos_fs();

在各个文件系统初始化函数中,把文件系统的注册结构体作为参数,调用内核提供的文件注册函数register_filesystem(),把文件系统注册结构体加入到注册链表中,从而完成注册功能。

这篇关于<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux文件管理(2)》(26)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/465257

相关文章

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选