Log-Format-日志格式

xv6 的日志区位于磁盘的 Block 2 到 Block 31 (共 30 个块)。

结构

  1. Header Block (Log Head):
    • 位置: Log 区的第一个块。
    • 内容: n (当前日志里有多少个有效块), block[] (记录每个日志块应该写入到磁盘的哪个实际地址)。
  2. Log Blocks (Data):
    • 位置: 紧随 Header 之后。
    • 内容: 实际被修改的数据块的副本。

限制

xv6 的日志区很小(30 块)。这意味着一个事务涉及的写操作总大小不能超过 30 个 Block

  • Lab 挑战: 在 Lab 9 (Big File) 中,如果你尝试一次性写入巨大的文件,可能会撑爆日志区导致 Panic。