《信息安全系统设计与实现》第六周学习笔记

EXT2文件系统数据结构

通过mkfs创建虚拟磁盘

  • 命令
    • mke2fs [-b blksize -N ninodes] device nblocks
  • 下面的命令可在一个名为vdisk的虚拟磁盘文件上创建一个EXT2文件系统,有1440个大小为1kb的块
    • dd if=/dev/zero of=vdisk bs=1024 count=1440
    • mke2fs vdisk 1440

虚拟磁盘布局

  • Block#0: 引导块 B0是引导块,文件系统不会使用它。它用来容纳一个引导程序从磁盘引导操作系统

超级块

  • Block#1: 超级块(在硬盘分区中硬盘偏移量为1024)B1是超级块,用于容纳整个文件系统的信息。
    • S_first_data_block:表示4kb块大小,1表示1kb块大小。它用于确定块组描述符的起始块
    • s_log_blocks_size:确定块文件大小为1kb(2**s_log_block_size)
    • s_mnt_count:已挂载文件系统的次数。
    • s_magic:表示文件系统的幻数

块组描述符

  • Block#8:块组描述符块 EXT2将磁盘分成几个组。每个组有8192个块。每组用一个块组描述符结构体来描述

块和索引节点位图

  • Block#8: 块位图 位图是用来表示某种项的位序列,例如磁盘块或索引节点。
  • Block#9:索引节点位图 一个索引节点就是用来代表一个文件的数据结构。

索引节点

  • Block#10: 索引(开始)节点 每个文件都用一个128字节的唯一索引节点结构体表示。
  • 直接块:i_block[0]至i_block[11],指向直接磁盘块。
  • 间接块:i_block[12]指向一个包含256个块编号的磁盘块每个块编号指向一个磁盘块。
  • 双重间接块:i_block[13]指向一个指向256个块的块每个块指向256个磁盘块。
  • 三重间接块:i_block[14]是三重间接块。

数据块

  • 紧跟在索引节点块后面的是文件存储数据块。

目录条录

  • dir_entry是一种可扩充结构。名称字段包含1到255个字符,不含终止NULL

3级文件系统

  • 3级文件系统支持文件系统的挂载/卸载和文件保护。

挂载算法

  • 命令
    • mount filesys mount_point

卸载算法

  • 卸载文件操作可卸载已挂载的文件系统

交叉挂载点

  • 向下遍历
  • 向上遍历

文件保护

  • 在Unix和Linux中,可通过文件索引节点中的权限位实现文件保护。

实现uid和有效uid

  • 在Uinx和Linux中,每个进程都有一个实际uid和有效uid.

苏格拉底挑战



posted @ 2023-10-15 16:02  20211328-张树杰  阅读(23)  评论(0)    收藏  举报