Presentation is loading. Please wait.

Presentation is loading. Please wait.

第2节 ext2文件系统 索引文件的的代表 索引文件 文件使用三部曲 文件共享 文件保护 举例.

Similar presentations


Presentation on theme: "第2节 ext2文件系统 索引文件的的代表 索引文件 文件使用三部曲 文件共享 文件保护 举例."— Presentation transcript:

1 第2节 ext2文件系统 索引文件的的代表 索引文件 文件使用三部曲 文件共享 文件保护 举例

2 索引文件 文件索引表 逻辑块号 物理块号 磁盘块号 r0 23 0 23 1 19 文件A 2 26 索引表指针 3 29 r1 19
目录项 r0 r1 文件目录 r2 r3 磁盘块号 23 19 26 29 文件索引表 逻辑块号 物理块号

3 文件使用三部曲 Ext2文件系统的建立 安装 访问 格式化

4 Ext2文件系统在磁盘上的分布 Ext2将磁盘分区划分成组 每个组大小相同,且顺序存放 引导程序 数据块 位图 一个块 引导块 组号0
组号1 组号n 超级块 组描述符 索引节 点位图 点表 n个块 Ext2将磁盘分区划分成组 每个组大小相同,且顺序存放

5 组3 组2 组1 组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块
struct ext2_super_block { __u32 s_inodes_count; /* 索引节点总数 */ __u32 s_blocks_count; /* 文件系统的块数 */ __u32 s_r_blocks_count; /* 保留给内核使用的块数 */ __u32 s_free_blocks_count; /* 空闲块计数器 */ __u32 s_free_inodes_count; /* 空闲索引节点计数器 */ __u32 s_first_data_block; /* 第一个数据块的块号 */ __u32 s_log_block_size; /* 块大小 */. __u32 s_blocks_per_group; /* # 每组的块数 */ __u32 s_inodes_per_group; /* # 每组的节点数 */ ... };

6 组3 组2 组1 组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 struct ext2_group_desc {
__u32 bg_block_bitmap; /* 块位图的块号 */ __u32 bg_inode_bitmap; /* 索引节点位图的块号 */ __u32 bg_inode_table; /* 第一个索引节点表块的块号 */ __u16 bg_free_blocks_count; /* 组中空闲块的个数 */ __u16 bg_free_inodes_count; /* 组中索引点的个数 */ __u16 bg_used_dirs_count; /* 组中目录的个数 */ };

7 组3 组2 组1 组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 用于记录本组磁盘块使用情况
位示图中的每一位对应一个磁盘块 块位示图占一个磁盘块(块大小决定了位示图大小,也决定了能管理的数据 块的个数)

8 组3 组2 组1 组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 什么是索引节点?就是FCB
索引节点位示图用于记录索引节点表使用情况 位示图的每一位对应一个索引节点 索引节点位示图占一个磁盘块,它的大小决定了一个分组中的文件数目

9 块组3 块组2 块组1 块组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块
1、索引节点表由多个块组成, 每个块可以存放多个数目相同的索引节点 2、超级块中的ext2_super_block. bg_inode_table指向第一个块的块号 struct ext2_inode { __u16 i_mode; /* 用户应具有的权限 */ __u32 i_size; /* 文件的有效长度 */ ... __u32 i_blocks; /* 已分配给文件的数据块数 */ ... __u32 i_block[EXT2_N_BLOCKS]; /* 指针数组,各元素指向分配给文件的数据块 */ ... }; 块组和索引节点表的使用,可以快速得到索引节点的磁盘地址 索引表

10 Ext2文件系统的索引结构图示  1 2 一级间接索引 3 4 5 二级间接索引 6 7 8 9 10 11 12 13 三级间接索引
1 2 3 4 5 6 7 8 9 10 11 12 13 14 __u32 i_block[EXT2_N_BLOCKS];

11 文件类型 数据块的使用方式 普通文件 有数据时才使用,创建时不需要数据块 目录 数据块中存放各目录项的数据结构 符号链接
块组3 块组2 块组1 块组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 文件类型 数据块的使用方式 普通文件 有数据时才使用,创建时不需要数据块 目录 数据块中存放各目录项的数据结构 符号链接 路径名大于60个字符时需要使用数据块 设备文件 不需要数据块 管道 套接字

12 文件使用三部曲 Ext2文件系统的建立 安装 访问

13 挂载、卸载文件系统 mount命令 umount命令 用途:挂载文件系统、ISO镜像到指定文件夹
格式:mount [ -t 类型 ] 存储设备 挂载点目录 mount -o loop ISO镜像文件 挂载点目录 #mkdir /mnt/upan #mount -t vfat /dev/sda1 /mnt/upan umount命令 用途:卸载已挂载的文件系统 格式:umount 存储设备位置 umount 挂载点目录 文件系统类型通常可以省略;存储设备为对应分区的设备文件名,如“/dev/sdb1” ;挂载点为用户指定用于挂载的目录 介绍umount命令两种卸载方式的区别,建议学员使用卸载挂载点的方式,这是因为同一设备可能被挂载到多个目录 使用mount命令时,”-t 类型“的选项通常可以省略,大多数Linux系统能够自动识别对应的文件系统类型 接下来看几个文件系统挂载、卸载的例子(翻下页) #umount /mnt/upan

14 文件使用三部曲 Ext2文件系统的建立 安装 访问

15 用户接口 文件操作 目录操作 Open:通过文件路径名找到该文件的inode,复制到内 存 Read Write
Close:将文件的inode从内存中删除 目录操作

16 读磁盘 用户 读test.c 202-212个字节 目录解析找到/,读入/内容找到xx,再找到test.c的inode 数据盘块
open(/xx/test.c) 12 13 14 15 16 17 18 19 20 21 22 23 read(fd,202,10,a) 根据test.c的inode和偏移 得到盘块789 写入电梯队列 add_request(789) 磁盘驱动 从队列中取出789,算出cyl,head,sector sec cyl head 写磁盘控制器 outp(cyl,head,sector)

17 /xx/test.c解析 分组0 <var, 13> <xx, 82> 目录项! 数据盘块集合 “/”的i节点
cat bo hex a data mail var xx test.c 索引节点区 数据盘块集合 “/”的i节点 “/”的数据块 <var, 13> <xx, 82> 目录项! “xx”的i节点 “xx”的数据块 <data, 103> <test.c, 225> <mail, 77>

18 根据test.c的inode和偏移202-212得到盘块789
字节 一级间接索引 二级间接索引 三级间接索引 1 2 3 4 5 6 7 8 9 10 11 12 13 14 789 __u32 i_block[EXT2_N_BLOCKS];

19 写磁盘时分配inode和block 创建目录 创建文件 分配inode和block都采用基于位示图的分配方案

20 分配磁盘块(block) 分配索引节点(inode) 块组3 块组2 块组1 块组0 引导块 数据块 索引节点表 组描述符 块位图
索引节点位图 超级块 2、填写索引节点表 1、查块位图,看看有没有可用的数据块 1、查索引节点位示图,看索引节点表中有空位置没? 2、将数据写入某磁盘块 分配索引节点(inode) 分配磁盘块(block)

21 文件共享 文件共享: 支持以不同的文件路劲名访问同一个文件 FAT不支持,ext支持

22 ln hustcomputer\file4 hust\file5
硬链接 ln hustcomputer\file4 hust\file5 以硬链接方式共享的文件file5没得数据块 没得iNode,但是有目录项

23 文件类型 数据块的使用方式 普通文件 有数据时才使用,创建时不需要数据块 目录 数据块中存放各目录项的数据结构 符号链接
块组3 块组2 块组1 块组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 文件类型 数据块的使用方式 普通文件 有数据时才使用,创建时不需要数据块 目录 数据块中存放各目录项的数据结构 符号链接 路径名大于60个字符时需要使用数据块 设备文件 不需要数据块 管道 套接字

24 符号链接 ls -l ln –s /user/f1 /user/f2 f2为f1的快捷方式
lrwxrwxrwx 1 root root 9 1月 4 11:06 f2-> f1 符号链接文件f2有目录项、iNode 当文件路径名超过60个字符时还有数据块

25 硬链接与软链接特点 硬链接的优点:实现简单、访问速度快 使用限制: 软链接(符号链接、快捷方式)的优点:适用范围和 灵活性大 只允许文件链接
硬链接的优点:实现简单、访问速度快 使用限制: 只允许文件链接 只允许在同一文件系统内进行 文件主删除限制 不合理的记帐规则 软链接(符号链接、快捷方式)的优点:适用范围和 灵活性大 允许目录链接 允许在不同文件系统间进行 文件主自由删除 合理的记帐规则

26 文件保护 保护的一般结构:认证、授权、强制执行(AAE) 认证(识别用户),最基本的认证手段: 口令识别
授权(允许用户做什么),最常见的授权手段: 访问控制矩阵 强制执行(权限检查),变成permission函数 分布在OS中

27 ls -l -rw-r--r-- 1 root root 26829 11月 25 15:10 babylinux.png 授权:w r x
lrwxrwxrwx 1 root root 9 1月 4 11:06 disk1.link.png -> disk1.png 授权:w r x 三组:用户主、用户组、其他用户

28 举例 在Ext2中,若有一个分区大小为8GB,盘块的尺寸 是4KB。试问,该文件卷最多有多少磁盘块?最多 有多少个块组?

29 按照文件的内容,Linux把文件分成 三类。
A.系统文件、用户文件、设备文件 B.一般文件、流式文件、记录文件 C.目录文件、流式文件、设备文件 D.普通文件、目录文件、特别文件

30 在Ext2中,下面的说法, 是错误的。 A.每个文件都有一个inode节点 B.目录文件有inode节点 C.特别文件有inode节点 D.打印机没有inode节点

31 Ext文件是linux的文件系统,目前为ext3,未来ext4.


Download ppt "第2节 ext2文件系统 索引文件的的代表 索引文件 文件使用三部曲 文件共享 文件保护 举例."

Similar presentations


Ads by Google