Log-Format-日志格式
xv6 的日志区位于磁盘的 Block 2 到 Block 31 (共 30 个块)。
结构
- Header Block (Log Head):
- 位置: Log 区的第一个块。
- 内容:
n(当前日志里有多少个有效块),block[](记录每个日志块应该写入到磁盘的哪个实际地址)。
- Log Blocks (Data):
- 位置: 紧随 Header 之后。
- 内容: 实际被修改的数据块的副本。
限制
xv6 的日志区很小(30 块)。这意味着一个事务涉及的写操作总大小不能超过 30 个 Block。
- Lab 挑战: 在 Lab 9 (Big File) 中,如果你尝试一次性写入巨大的文件,可能会撑爆日志区导致 Panic。