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

进程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关系

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值