1.文件系统实现


文件系统就是一个数据结构,但和以前学过的数据结构的假设稍有不同

1.1 数据结构的实现

文件系统实现:自底向上设计实现数据结构

1.1.1 设备抽象

struct block blocks[NBLK]; // 磁盘
void bread(int id, struct block *buf) {
  memcpy(buf, &blocks[id], sizeof(struct block));
}
void bwrite(int id, const struct block *buf) {
  memcpy(&blocks[id], buf, sizeof(struct block));
}

1.1.2 Alloc/Free

int balloc(); // 返回一个空闲可用的数据块
void bfree(int id); // 释放一个数据块

1.1.3 File - 磁盘虚拟化

File = vector<char>

1.1.4 Directory - 在文件的基础上实现目录

用一种特殊的文件:目录文件