Skip to content

SheryMo/About-mkdir-report

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Linux0.11源码讲解--mkdir

大二操作系统理论课上的展示。

展现的是Linux0.11源码中的部分。题目其实是现在Linux的mkdir这个命令的底层运作的细节,但是要结合Linux0.11这一部分进行讲解,所以其实PPT中的内容更多的是Linux0.11这个操作系统的文件系统的相关知识。

涉及知识列表

引导块,俗称MBR,是磁盘的第一个盘块,用来标记并在系统开机时BIOS 自检完毕后,被自动读入到 内存0x7c00 位置运行。它的主要任务是提供磁盘分区信息和最早的操作系统引导工作。【它的大小只有 0x0200 字节(在Minix 1.0 文件系统中,它实际占1 个盘块,大小1K),并且在第0x01FE 的位置 必须填充0x55AA 来告之BIOS 该磁盘可以被引导。引导块的结构是由硬件规定的,现在普遍使用的引 导块结构是IBM 兼容PC 采用的结构。】

超级块既静态驻扎在磁盘第二个盘块上,又会在磁盘被挂载时驻扎进内存(所谓挂载,主要任 务就是载入磁盘的超级块和inode 位图和逻辑块位图)。【不过在内存中的超级块结构更加庞大,增加了 很多运行时的参数,例如于inode 和逻辑块的位图在高速缓冲区的位置(在Minix1.0 文件系统中高速 缓冲区中能容纳8 个inode 位图和8 个逻辑块位图),设备号,磁盘挂载到的inode 结点等信息。】 Linux 0.11 在内存中为超级块开辟的空间只能容纳8 个超级块(定义在include/linux/fs.h), 也就是说Linux0.11只支持8个磁盘同时挂载。

以及inode 位图。Inode位图是标记哪些inode标识符(通常存为i结点号)已经被使用过,哪些还没有被使用过的一张位图表。我们在这之后讲一下inode的概念。其中0 号inode 不 被使用。

逻辑块位图,它与inode 位图类似,记录磁盘哪些逻辑块已经被使用过,哪些没有。在Minix 1.0 文件 系统中,逻辑块大小与盘块大小相同,都是1K,但是逻辑块是从文件系统第一个数据区的盘块开始编号 的。

数据区就是占满除上述区域以外的磁盘所有区域。

  • inode包含文件的元信息,具体以下内容:
  • Size 文件的字节数
  • Uid 文件拥有者的User ID
  • Gid 文件的Group ID
  • Access 文件的读、写、执行权限
  • 文件的时间戳,共有三个:
  • Change 指inode上一次变动的时间
  • Modify 指文件内容上一次变动的时间
  • Access 指文件上一次打开的时间
  • Links 链接数,即有多少文件名指向这个inode
  • Inode 文件数据block的位置
  • Blocks 块数
  • IO Blocks 块大小
  • Device 设备号码

以及mkdir执行时的系统调用(从源码层面分析)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published