linux-0.11调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0

    setup((void *) &drive_info);
    (void) open("/dev/tty0",O_RDWR,0);
    (void) dup(0);
    (void) dup(0);
    printf("%d buffers = %d bytes buffer space\n\r",NR_BUFFERS,
        NR_BUFFERS*BLOCK_SIZE);
    printf("Free mem: %d bytes\n\r",memory_end-main_memory_start);

下面是出现Free mem:             之后的情况:

0x1925c表示inode_table地址,有3个内存i节点,每个是14×4个字节。

第一个内存i节点的节点号是0001,块号是027e

第二个内存i节点的节点号是0003,块号是0280

第三个内存i节点的节点号是0026,mode是0x21b6,是字符设备文件

#define S_IFCHR  0020000



linux-0.11调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0_第1张图片







下面的是hash_table的内容

linux-0.11调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0_第2张图片




linux-0.11调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0_第3张图片


上面是目录文件/dev的内容,其中i节点号为0026的表示tty0文件

(附2013/2/19写的小工具:)

linux-0.11调试教程,findipn根据i节点号返回路径和文件名



linux-0.11调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0_第4张图片

上面第一部分表示缓冲头结构既buffer_head,块号为0x000e,既第二个i节点块。

每个i节点块有32个i节点既0x20个。第二个i节点块表示的i节点是0x21-0x40。


上面第二部分表示d_inode,最后2行是i_zone[0]为0x0400

你可能感兴趣的:(linux-0.11调试教程 minix文件系统1.0 下篇(2)inode_table内存i节点表和目录 /etc/tty0)