Linux文件存储

一、都有哪几种文件系统?

简单介绍几种Linux支持的文件系统:NFS、MINIX、MS-DOS和ext2,日志文件系统:ext3、JFS和ReiserFS,同时还有加密文件系统(CFS)和虚拟文件系统(/proc)。


二、一次文件的读取过程:
用户通过输入vim fileA来打开文件,系统内部的操作是:
a、通过文件名找到文件的inode号;
b、通过inode号获取inode信息;
c、 根据文件信息找到存储文件的数据块,读取数据块中的文件的具体内容。

文件存储结构示意图:
这里写图片描述

inode也是存储在磁盘上的,磁盘格式化的时候系统会自动将磁盘分为两部分:数据区和inode区。每个inode节点的大小一般是128字节或者256字节,inode的个数一般在格式化的时候已经设定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。

产看每个inode节点的大小的命令:

sudo dumpe2fs -h /dev/hda | grep "Inode size"

三、文件是以怎样的形式保存的?

一个文件是由目录项、inode和数据块组成:

  • 目录项:包括文件名和inode节点号
  • inode:文件索引节点,包含文件的基础信息和数据块的指针
  • 数据块:真正存储文件内容的磁盘上的区域

1、inode:
文件存储在磁盘上,磁盘的最小存储单位是‘扇区(sector)’,每个扇区的大小为512byte。多个扇区组成一个‘块(block)’,操作系统在读取文件的时候是以‘块’为单位进行读取的,‘块’的大小一般是在4kb。这些关于文件的元信息需要通过索引节点(inode)来进行管理。

inode包含的具体内容

  • Blocks:文件数据block的位置
  • Access:文件上次打开的时间
  • Modify:文件上一次变动的时间
  • Change:inode上一次变动的时间
  • Links:硬链接数
  • Size:文件字节数
  • Inode:inode号,唯一标识一个inode
  • Device:
  • Access:

    查看某个文件的inode的信息的命令:

stat fileA                #stat命令有许多参数都代表的不同含义

这里写图片描述

四、文件系统组件的主要体系结构
这里写图片描述

用户空间、内核空间:

用户空间包含一些应用程序(User application,例如,文件系统的使用者)和 GNU C 库(glibc),它们为文件系统调用(打开、读取、写和关闭)提供用户接口。

系统调用接口(System call interface)的作用就像是交换器,它将系统调用从用户空间发送到内核空间中的适当端点。

VFS是底层文件系统的主要接口,这个组件会统一出接口供上面操作者使用,这个统一的接口向底层面对的是不同的文件系统,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值