关于在UNIX/Linux下文件系统的寻址结构

来源:互联网 发布:asp生成静态页面源码 编辑:程序博客网 时间:2024/06/04 00:54

自:http://zone.it.sohu.com/forums/thread-300095-1-1.html

在HPUX或者任何一种UNIX系统,包括Linux系统,对于在磁盘中的文件的寻址结构都是统一的。在本文中,将简要介绍一下寻址结构。


在任何一种UNIX操作系统中,文件系统由如下部分组成。
Superblock
Inode
Directories

其中Superblock是驻留着文件系统的信息,包括文件系统的类型,大小等等,这个信息是冗余的,也就是说,在Superblock有多个,当一个Superblock出现问题的时候可以使用备用Superblock来替代。

Inode也就是所谓的I节点,这是文件或者数据驻留在硬盘上的地点的标识。在一个文件系统中,I节点是唯一的。


Directories是磁盘文件夹,通常情况我们使用文件夹的形式来访问文件,而不是使用的是I节点。

下面,我们使用例子来说明每一个项。
查看Superblock
# cat /etc/sbtab

/dev/vg00/rlvol1: super-block backups (for fsck -b#) at:
    16,   2504,   4992,   7480,   9968,  12456,  14944,  17432,  19728,  22216, 
24704,  27192,  29680,  32168,  34656,  37144,  39440,  41928,  44416,  46904

/dev/vg00/rtest: super-block backups (for fsck -b#) at:
    16,   2504,   4992,   7480,   9968,  12456,  14944,  17432,  19728,  22216, 
24704,  27192,  29680,  32168

查看Inode
# ls -i
   760 .pwd.lock              633 mkfs
   875 MANPATH                632 mklost+found
   709 d.login                615 ptydaemonlog
   708 d.profile              830 publickey
   707 dce.clean              614 pvchange
   706 dce.rm                 613 pvcreate
   705 dce.unconfig           612 pvdisplay
   704 dce_com_env            611 pvmove
   703 dce_com_utils          610 pwck
   702 dce_config             609 quot
   701 dce_config_env         608 quotacheck
   700 dce_config_utils       607 quotaoff
   699 dcopy                  606 quotaon
   731 default                797 rarpd.conf
   698 devnm                  744 rc.config
   697 dfs.clean              728 rc.config.d
   696 dfs.rm                1125 rc.log

查看Directories
# ls -F 
.Xauthority   .sh_histroy   dead.letter   Nicry.sh*     tmp_mnt/
.Xvg_hosts    .sw/          dev/          mnt/          ttyp1
.audioCP      .xims/        etc/          net/          usr/
.dt/          SD_CDROM/     export/       nohup.out     var/
.dtprofile*   TT_DB/        home/         opt/          xvg*
.profile      bin/          lib/          sbin/
.rhosts       cdrom/        lost+found/   stand/

好了,说明了这个问题。现在我们来研究一下在UNIX中是如何找到一个文件的。
首先,/也就是根的Inode是2,在根下的文件夹也具有这样的Inode。那么如果我们要寻找一个文件,比如查看一个文件/etc/qszy.welcome这个文件,是如何操作的?
# cat /etc/welcome
#     #
#  #  #  ######  #        ####    ####   #    #  ######
#  #  #  #       #       #    #  #    #  ##  ##  #
#  #  #  #####   #       #       #    #  # ## #  #####
#  #  #  #       #       #       #    #  #    #  #
#  #  #  #       #       #    #  #    #  #    #  #
## ##   ######  ######   ####    ####   #    #  ######
他的寻址方式是,首先,找到/,开始我们说明了,/的Inode是2,那么寻址就先找到2。
# ls -d -i /etc
     4 /etc
在这里,我们可以看到/etc的Inode是4
# ls -i /etc/qszy.welcome
  1289 /etc/qszy.welcome
在这里我们可以看到/etc/qszy.welcome的I节点是1289

好了,现在我们知道,寻找/etc/qszy.welcome文件是从2出发,然后到4,然后到1289,这样我们就可以找到/etc/qszy.welcome这个文件了。
原创粉丝点击