我们再执行 ls -l命令的时候可以看到下面的结果:
分为七列数据
1 表示文件可被执行的权限
2 表示硬链接数(一种被可被系统识别的文件编号(inode)对应的文件名数目)
3 文件的所属者
4 文件的所属组
5 文件的大小(单位字节)
6文件最后一次被修改的时间
7 文件名
Linux ext2
文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被
划分为一个个的
block
。一个
block
的大小是由格式化的时候确定的,并且不可以更改。例如
mke2fs
的
-b
选项可以设
定
block
大小为
1024
、
2048
或
4096
字节。而上图中启动块(
Boot Block
)的大小是确定的,
[root@localhost linux]# stat test.c
File: "test.c"
Size: 654 Blocks: 8 IO Block: 4096
普通文件
Device: 802h/2050d Inode: 263715 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-09-13 14:56:57.059012947 +0800
Modify: 2017-09-13 14:56:40.067012944 +0800
Change: 2017-09-13 14:56:40.069012948 +0800
比特科技
Block Group
:
ext2
文件系统会根据分区的大小划分为数个
Block Group
。而每个
Block Group
都有着相
同的结构组成。政府管理各区的例子
超级块(
Super Block
):存放文件系统本身的结构信息。记录的信息主要有:
bolck
和
inode
的总量,
未使用的
block
和
inode
的数量,一个
block
和
inode
的大小,最近一次挂载的时间,最近一次写入数据的
时间,最近一次检验磁盘的时间等其他文件系统的相关信息。
Super Block
的信息被破坏,可以说整个
文件系统结构就被破坏了
GDT
,
Group Descriptor Table
:块组描述符,描述块组属性信息,有兴趣的同学可以在了解一下
块位图(
Block Bitmap
):
Block Bitmap
中记录着
Data Block
中哪个数据块已经被占用,哪个数据块没
有被占用
inode
位图(
inode Bitmap
):每个
bit
表示一个
inode
是否空闲可用。
i
节点表
:
存放文件属性 如 文件大小,所有者,最近修改时间等
数据区:存放文件内容