理解文件系统(inode的掌握,软链接,硬链接)

一,在Linux中,一切皆文件,所有的东西都可以被看做文件。所以文件信息要被管理起来,要让操作系统能够很好的运用它,那么它是如何被管理起来的?

1.被描述:自身属性和其他重要信息被描述为inode,操作系统为他们inode分配一个inode号,去标识它们。(这并不难理解,这和进程的pid是一样的道理)

2,组织:操作系统要想把它们放在磁盘里,并让它们能够有序的判断哪些inode被用,哪些没被用,所以他会有一个数据结构表,就是位图。

二,首先介绍文件系统

在磁盘的扇区中,操作系统是这样分区的

第一部分,放得是超级块:存放文件系统本身的结构信息

第二部分,放得是inode结点表(

     * 文件的字节数  

 * 文件拥有者的User ID  

 * 文件的Group ID  

 * 文件的读、写、执行权限  

 * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。  

 * 链接数,即有多少文件名指向这个inode   

* 文件数据block的位置)

第三部分:数据区:存放文件内容

重点:在i结点表中,操作系统通过位图来判断inode号是不是被占用,同理在数据区存放也是一样的道理,只有位图的标识为1,它将会去寻找下一个。

三,硬链接

操作系统是如何通过文件名,来读去磁盘上的内容的?

其实它就是通过inode号,来找到inode,通过它来找到位置,文件名只是inode号的一个别名而已,他们之间存在着映射。

其实在Linux中,可以让多个文件名对应于同一个inode,ln 命令可以实现,硬链接数,其实就是他们存在几个别名而已,

值得注意的是:当你删除一个文件名字时,如果它的硬链接数并不是0,操作系统是不会删除他的,只是把他的映射关系解除了。

四,软链接

硬链接是通过inode号引用另一个文件,而软链接是通过名字引用另一个文件的。

区别:软链接有它有独立的inode,是独立的文件。

            硬链接没有独立的inode,只有特定的映射。

            如果把它删除了,另一个文件的内容也将删除。

总结一下:创建一个文件一般有四个步骤:

                1.描述起来,存储属性

                  内核通过位图先找到一个空的inode,把文件记录到其中。

                2.存储数据

                   内核通过位图找到多个空闲块(一个扇区512字节,块指多个扇区)存储对应的数据。

               3.记录分配情况

               把存放在数据区的内容的号记录到inode

            4,添加文件名到目录

              把文件名和inode号记录到目录文件

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值