一、Linux文件系统
每种操作系统能够使用的文件系统并不相同,Linux的正统文件系统为Ext2(Linux second extended file system, ext2fs)。现在通常可以称呼一个可被挂载的数据为一个文件系统。
文件系统的运行机制与操作系统的文件数据有关,文件数据除了文件内容外,还有文件属性。文件系统通常会把这两部分放在不同的区块。
- superblock:记录此filesystem的整体信息,包括inode,block的总量、使用量、剩余量,以及文件系统的格式与相关信息等
- inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码
- block:实际记录文件的内容,若文件太大,会占用多个block(所以一个inode可对应多块block)
注:文件名是放在block中的,此外,如果一个inode对应过多block(inode大小存不下这么多号码),则需要另外用block来记录这些对应block的号码
文件系统一开始就将inode和block规划好了,除非重新格式化,否则不再变动。但若文件系统过大,inode和block数量过多,不易于管理。所以,Ext2文件系统在格式化的时候基本上区分为多个区块组(block group),每个区块组都有独立的inode/block/superblock系统: