linux文件(inodeblocksuperblock)
先说一下低格:每种操作系统所设置的文件属性/权限并不相同,为了储存那些文件所需的数据,因而就须要将分区低格,以成为操作系统就能借助的文件系统格式。linux的文件格式为Ext2/Ext3,如今似乎早已到了Ext4.windows操作系统为vfat或则NTFS。
linux文件系统:
操作系统的文件数据不仅文件实际内容外,还有特别多的属性,如文件权限(rwx)与文件属性(所有者、群组、时间参数等)。
文件系统一般将这两部份数据储存在不同的块。权限属性放在inode中,实际数据放在datablock中。
还有一个超级块(superblock)会记录文件系统的整体信息,包括inode与block的数目、使用量等。
inode:记录文件属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;
block:实际记录文件的内容,若文件太大时会占用多个block;
superblock:记录文件系统的整体信息,包括inode/block的总数、使用量、剩余量,以及文件系统的格式与相关信息等。
每位inode与block都有编号,而每位文件系统就会占用一个inode,inode中有文件数据放置的block号码。我们可以找到文件的inode,之后找出文件所放置数据的block号码,然后读出数据。这些数据访问方法成为索引式文件系统。这些文件系统通常不太须要时常进行c盘碎片整理。
而U盘等为FAT文件格式,每位block号码都记录在前一个block号码中,因而数据的读取性能较差,用久了得进行碎片整理。
linux的Ext2文件系统一开始就将inode与block规划好了,除非重新低格(或则借助resize2fs等修改文件系统大小),否则inode与block固定后就不再变动。
假如文件系统太大,将所有的inode与block置于一起很难管理,因而Ext2文件系统在低格的时侯基本上是分辨为多个块组(blockgroup),每位块组都有独立的inode/block/superblock系统。
datablock(数据块)
Ext2文件系统支持的block有1K,2K,4K三种。在低格时block早已固定,且每位block都有编号。但要注意,因为block大小不同,会造成该文件系统才能支持的最大c盘容量与最大单一文件容量并不相同。
使用的block太小红旗linux系统下载linux软件工程师,则一个文件要用多两个block,inode记录也会降低,增加读写性能。
若block太大,文件小的时侯则会使剩余空间不能用了,会浪费资源。
inodetable(inode表格)
再说一下inode.inode记录的文件数据起码要包含以下内容:
该文件的访问模式;
该文件的所有者与所有组;
该文件的大小;
该文件的创建或则状态改变时间(ctime);
近来一次的读取时间(atime);
近来更改时间(mtime);
该文件真正内容的指向。
inode还有一下特色:
每位inode大小均固定为128bytes;
每位文件就会占用一个inode;
系统读文件时须要先找到inode,并剖析inode所记录的权限与用户是否符合,若符合才才能读取block的内容。
然而有一个问题linux文件系统的inode,须要记录的文件属性非常多,但是一个文件可能有好多好多block,而inode又太小(记录一个block要用4byte),如何办?linux的解决办法是:将inode记录block号码的区域定义为12个直接、一个间接、一个双间接与一个三间接记录区。总共可记录的block数目为:12+256+256*256+256*256*256(K)=16G这只符合block大小为1K时的情况。
Superblock(超级块)
这儿面记录文件系统的整体情况。例如文件系统的挂载时间、最近一次写入数据的时间、最近一次检验c盘(fsck)的时间等。还有一个validbit数值,若此文件系统早已被挂载,validbit的值为0,若未被挂载,则validbit值为1。
了解了文件系统的概念以后linux文件系统的inode,其实是要查看这个文件系统,用下边的:
#dumpe2fs[-bh]设备文件名
-b列举保留为低格的部份
-h仅列举superblock的数据,不会列举其他的区段内容。
比如:
#dumpe2fs/dev/hdc2
本文原创地址://gulass.cn/mssjdyzgshds.html编辑:刘遄,审核员:暂无