当前位置: 首页 > news >正文

【Vela学习】存储系统

一、VFS解析

VFS全称是Virual file system,Linux中的不同文件系统包含FAT、ROMFS、RAMFS等,不同的文件操作系统均包含Open、Close、Read、Write等接口,但不同文件系统的对文件的处理方式是不同的,因此需要单独抽象出一层级作为上层差异性的屏蔽,VFS提供统一的文件操作接口(如struct file_operations),根据不同的文件系统调用不同的底层接口VFS实现了对上层应用在不同文件系统下的文件操作接口差异屏蔽,即对上层应用隐藏不同文件系统的实现细节,对驱动开发者来说影响不大,不同的文件系统对应不同的驱动,驱动开发者只需把该封的驱动封完毕即可

图示VFS在系统中的层级关系:

+---------------------+
|    应用程序层         | 用户空间
| (如ls, cat, 自定义应用)|
+---------------------+
       │
       ▼
+---------------------+
|   系统调用接口         | 如open、read、write等
+---------------------+
       │
       ▼
+---------------------+
|      VFS层           | 内核空间
| - 统一文件操作接口     |
| - 管理inode/dentry缓存|
| - 页缓存(Page Cache)|
+---------------------+
       ├───────────────────┬───────────────────┐
       │                   │                   │
       ▼                   ▼                   ▼
+---------------------+ +---------------------+ +---------------------+
|  Ext4文件系统        | |  FAT/NTFS文件系统    | |  procfs/sysfs/tmpfs |
+---------------------+ +---------------------+ +---------------------+
       │                   │                   │
       ▼                   ▼                   │
+---------------------+ +---------------------+ 
|   块设备驱动层        | |   字符设备驱动等     | 
| (SCSI, SATA, NVMe)  | | (如终端、打印机驱动)  |
+---------------------+ +---------------------+ 
       │                   │
       ▼                   ▼
+---------------------+ +---------------------+
|   硬件存储设备        | |   其他物理设备       |
| (硬盘、SSD、U盘)     | | (如USB设备、GPU)     |
+---------------------+ +---------------------+

Ex4、FAT等文件系统对应块设备驱动;

procfs/sysfs这类伪文件系统,直接映射内存数据;

二、扇区、页、块的区别

nandflash没有扇区的概念,以块和页作为存储单元,页是最小的读取和写入单元,块是最小的擦除单元。页包括主存储区和备用区,备用区用于存储本页的纠错码等信息,通常占主数据区的3%~5%。嵌入式中的页大小一般是2KB~4KB。

norflash中没有页的概念,以字节进行读取和写入,以扇区作为最小擦除单元,写入前需进行擦除操作(负荷检测单元,存储90天数据,一天天擦除,按扇区进行)。

扇区的由来,是由于早期的数据是以磁盘指针以扇形的形式从存储单元中读取的,故扇区这个名称沿用下来的了。

相关文章:

  • 用android studio模拟器,模拟安卓手机访问网页,使用Chrome 开发者工具查看控制台信息
  • 全面解析Tomcat:简介、安装与配置指南
  • CentOS7离线部署安装Dify
  • Linux 提权
  • 工业节能新利器:第二类吸收式热泵与MVR热泵深度剖析
  • 【蓝桥】帮派弟位-DFS遍历树
  • 常用工具: kafka,redis
  • 管中窥豹数字预失真(DPD)
  • 尚硅谷TS快速入门笔记(个人笔记用)
  • 【大模型项目NexLM】如何封装多个 LLM(大模型) API 调用
  • maven无法解析插件 org.apache.maven.plugins:maven-jar-plugin:3.4.1
  • 科技快讯 | 中国团队发布通用型AI Agent产品Manus;谷歌安卓原生 Linux Terminal 终端应用上线
  • 平安养老险陕西分公司启动315金融消费者权益保护教育宣传活动
  • OpenHarmony子系统开发 - 编译构建Kconfig可视化配置指导
  • 探索在生成扩散模型中基于RAG增强生成的实现与未来
  • NET400系列协议网关技术方案
  • vue3中接收props的两种写法
  • Liunx系统 : 进程间通信【IPC-Shm共享内存】
  • 基于PyQt5的全能图片处理工具开发实践
  • 本地缓存和分布式缓存
  • 武汉网站建设与服务/品牌推广活动方案
  • 云南网站建设公司排名/游戏推广赚佣金的平台
  • 做网站工资高吗/网站怎么做推广
  • 如何设计一个网页首页代码/优化外包服务公司
  • 常用网站开发技术和工具/企业员工培训课程有哪些
  • 搭建网站的方法/东莞百度网站排名优化