2

我正在学习涉及 minix 的操作系统课程,我想要一些建议。

我试图弄清楚如何修改 minix 以便它ls -s可以做与 linux 中相同的事情。

我知道虽然 minix 和 linuxls -s很相似,但是当一个文件是故意使用 :dd of=XXXX bs=4096 count=1 seek=5时,linux 会显示文件大小为 4 个块,而 minix 将显示 24 个块。

我理解为什么会发生这种情况,因为与 minix 不同,linux 识别有 20 个空块,所以它报告它的逻辑大小,忽略空块。
我一直在想从哪里开始,我的讲师指给servers/fs/stadir.c我看,所以我查了一下课程。

我认为相关的唯一部分(涉及 st_size)是:

statbuf.st_size = rip->i_size;

      if (rip->i_pipe == I_PIPE) {
            statbuf.st_mode &= ~I_REGULAR;  /* wipe out I_REGULAR bit for pipes */
            if (fil_ptr != NIL_FILP && fil_ptr->filp_mode & R_BIT) 
                    statbuf.st_size -= fil_ptr->filp_pos;
      }

这是 minix 源代码的第 27700-27706 行。

有人可以给我提示在哪里看,或者如果我在看正确的地方,提示或其他东西。

4

0 回答 0