进程task_fs( ),让它调用函数init_fs( ),而init_fs(  )在打开ROOT_DEV之后调用了mkfs(  ),这便是建立文件系统的函数了。

mkfs()就是在内存中简单的拼好数据结构,然后一下子写入一个扇区大小的内容。

在mk_fs(  )中,所有写入磁盘的内容都是先放进fsbuf这个缓冲区的。与通常的做法不同,我们这次没有定义一个数组,而是
定义了一个指针,让它指向0x600000,也就是说,我们指定内存地址6MB~7MB为文件系统的缓冲。

mkfs( )有一点长,它分这么几个部分:
向硬盘驱动程序索取ROOT_DEV的起始扇区和大小;
建立超级块(Super Block);  没有什么逻辑,就是结构体每个字段进行赋值。
建立inode-map;                    就是使用了几个文件的bit位
建立sector-map;                   设置使用的扇区bit位为1
写入inode_array;                  编写4个文件inode的结构体内容
建立根目录文件。                    写入4个文件的名字和inode关系

orange's学习--第九章:把文件系统的结构写入到磁盘

 

相关文章:

  • 2021-06-09
  • 2022-12-23
  • 2021-12-25
  • 2021-05-11
  • 2021-07-07
  • 2021-10-22
  • 2021-05-17
  • 2021-05-15
猜你喜欢
  • 2021-05-23
  • 2021-05-11
  • 2021-07-14
  • 2021-07-23
  • 2021-06-15
  • 2021-07-12
  • 2021-08-29
相关资源
相似解决方案