day15-Linux对文件系统的支持

1.Linux中使用文件系统分几个部分

        1.1 有关于Linux中高速缓冲区的管理程序。 分页机制 buffer.c

        1.2 文件系统的底层通用函数(对于硬盘的读写 分配 释放等,对于目录的节点管理 inode 内存与磁盘的映射)

        1.3 对文件数据进行读写操作模块 (VFS:虚拟文件系统 硬件驱动 和 文件系统的关系 pipe 块设备(磁盘光驱等))

        1.4 文件系统与其他程序的接口实现 (fopen 关闭 创建等使用文件的调用方式)

2.文件系统的基本概念

        磁盘中要有目录的映射,我们把磁盘分成盘片

        每一个盘片都有一个文件系统的子系统(章节目录)

引导块:用来引导设备的,引导块可以为空,但是一定要保持格式的一致性,空出一定空间

超级块:是该文件子系统的描述符(记录该盘片的逻辑块位图的地址,i节点位图的地址,通过设备号可以获取)

逻辑块位图:每一位对应一个逻辑块的使用情况,对应逻辑块如果被使用则逻辑位图对应位置1

i节点位图:每一位对应一个i节点的使用情况,对应i节点被使用则i节点位图对应位置1

逻辑块:用来存储数据的数据存储单元

i节点:目录与磁盘的桥接 文件的属性描述(文件的名片)

struct m_inode {
	unsigned short i_mode;  //文件的类型和属性
	unsigned short i_uid;   //宿主用户id
	unsigned long i_size;   //文件大小
	unsigned long i_mtime;  //文件修改时间
	unsigned char i_gid;    //宿主的组id
	unsigned char i_nlinks; //链接数(硬链接)
	unsigned short i_zone[9];    //该文件映射在逻辑块号的数组
/* these are in memory also */
	struct task_struct * i_wait;
	unsigned long i_atime;
	unsigned long i_ctime;
	unsigned short i_dev;
	unsigned short i_num;
	unsigned short i_count;
	unsigned char i_lock;
	unsigned char i_dirt;
	unsigned char i_pipe;
	unsigned char i_mount;
	unsigned char i_seek;
	unsigned char i_update;
};

crw-rw 文件的类型和属性

c代表文件类型

- 普通文件

d 目录

s 符号链接

p pipe管道

c 字符设备

b 块设备

l 链接文件

777代表全属性

每一个文件有三个属主的属性

777-rwxrwxrwx

第一个rwx是当前用户的属性

第二个rwx是用户组的权限

第三个rwx是他人的权限

unsigned short i_zone[9];

文件和磁盘映射

izone[7]直接块号 如果文件只占用7个逻辑块 那么这个数组中的每一个单元则存储了一个逻辑块的号

izone[8]一次间接块号 如果占用的逻辑块较多 大于7 小于512+7 则占用一次间接块号

izone[9]二次间接块号 如果占用的逻辑块太多 大于512+7 小于 512*512+7 则启动二次间接逻辑块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值