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