文件系统1 【虚拟文件系统VFS】

2024-06-04 11:18
文章标签 虚拟 文件系统 vfs

本文主要是介绍文件系统1 【虚拟文件系统VFS】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • VFS数据结构
结构体描述
struct super_block超级块
struct inode索引节点
struct file文件对象
struct dentry目录项对象
struct task_struct进程结构
struct files_struct
  • 索引节点
  1. struct inode成员
成员描述
unsigned long i_state;索引节点状态标志
unsigned long i_ino;索引节点号
atomic_t i_count;引用计数器
loff_t i_size;文件字节数
struct timespec i_atime;上次访问文件的时间
struct timespec i_mtime;上次写文件的时间
struct timespec i_ctime;上次修改索引节点的时间
unsigned int i_blkbits;块的位数
unsigned long i_blksize;块的字节数
unsigned long i_blocks;文件块数
unsigned short i_bytes;文件中最后一个块的字节数
struct block_device *i_bdev;指向块设备驱动程序的指针
struct cdev *i_cdev;指向字符设备驱动程序的指针
  1. 索引节点状态标志
    | | |
    |–|--|
    | I_DIRTY_SYNC | |
    | I_DIRTY_DATASYNC | |
    | I_DIRTY_PAGES | |
    | I_LOCK | 涉及的索引节点对象处于I/O传送中|
    | I_FREEING | 索引节点对象正在被释放 |
    | I_CLEAR | 索引节点对象的内容不再有意义|
    | I_NEW | 索引节点对象已经分配但还没有用从磁盘索引节点读取来的数据填充 |
  • 文件对象
  1. struct inode成员
成员描述
struct dentry *f_dentry;与该文件相关的目录项对象
struct file_operations *f_op;指向文件操作表的指针
  • VFS系统调用
  1. 系统调用列表
sys_open
  1. sys_open
struct task_struct { // 进程结构体struct files_struct *files; //
}struct files_struct {atomic_t count;spinlock_t file_lock;     /* Protects all the below members.  Nests inside tsk->alloc_lock */int max_fds;int max_fdset;int next_fd;struct file ** fd;      // 文件对象数组fd_set *close_on_exec;fd_set *open_fds;fd_set close_on_exec_init;fd_set open_fds_init;struct file * fd_array[NR_OPEN_DEFAULT];
};get_unused_fd() 在current->files->fd 中找到一个空位

这篇关于文件系统1 【虚拟文件系统VFS】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1029933

相关文章

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

Linux中的缓冲区和文件系统详解

《Linux中的缓冲区和文件系统详解》:本文主要介绍Linux中的缓冲区和文件系统方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、FILE结构1、fd2、缓冲区二、文件系统1、固态硬盘2、逻辑地址LBA(一)数据块 Data blocks(二)inode表

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo

AF透明模式/虚拟网线模式组网部署

透明模式组网 实验拓扑  防火墙基本配置 接口配置 eth1  eth3   放通策略  1. 内网用户上班时间(9:00-17:00)不允许看视频、玩游戏及网上购物,其余时 间访问互联网不受限制;(20 分) 应用控制策略   2. 互联网用户只允许访问内网两台服务器的 WEB、SSH 和远程桌面服务,其余 服务均不允许访问;(20 分) 外网访问内网的限制策略   虚拟网线模式组网 实

Thinkphp6.0+vue个人虚拟物品网站源码

Thinkphp6.0+vue个人虚拟物品网站源码 支持码支付对接 扫码自动发货 源码一共包含两个部分thinkphp6.0后端文件,以及vue前端文件。 服务器环境 php7以上,mysql5.6以上; 内附安装说明 代码免费下载

真人模特失业?AI虚拟试衣一键成图,IDM-VTON下载介绍

在电商行业竞争尤为激烈的当下,除了打价格战外,如何有效的控制成本,是每个从业者都在思考的问题 IDM-VTON是一个AI虚拟换装工具,旨在帮助服装商家解决约拍模特导致的高昂成本问题,只需一张服装图片,就可以生成各种身穿该服装的模特,大大简化了传统的产品展示过程 IDM-VTON最新中文版:IDM-VTON百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育