我正在参加有关minix的操作系统课程,我想要一些建议。
我正在试图弄清楚如何修改minix,以便它ls -s
将与linux中的相同。
我理解虽然minix和linux ls -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行。
有人可以给我一个关于在哪里寻找的提示,或者我是否正在寻找正确的地方,暗示或其他什么。