文件系统
windows :NTFS linux: ext3 ext4(linux支持40+种文件系统)
功能
实现从文件标识到物理地址的映射;实现对文件的控制与存取;管理和调度文件的存储空间;提供文件的逻辑结构、物理结构、存储方法
要素
- 文件目录
1、文件目录中包含多个目录项,而每个目录项entry包含文件对应的文件名、大小、所属者、所属组id、创建时间、修改时间、访问时间等信息。
2、文件目录的关键是如何将目录项FCB(file control block) 将文件关联起来,并且在通过文件名检索时快速检索。
3、在UFS(unix 文件系统)中FCB 被inode代替,每个文件有一个inode id,其中主要包含an array of 15 disk-block adresses 、文件大小、控制信息、owner id、group id、last access time 、last modify time、create time等等 所以磁盘被分为分区表、inode 表、空闲 map、目录表;通过文件名在目录项中找到inode,然后在inode表中找到其对应的扇区号,从而可以对对应的物理地址进行读写。 - 空间分配方法
空闲的磁盘空间如何分配给文件呢?主要有顺序分配(FAT)、链接分配、索引分配 - 空闲空间管理
使用bit map 或者 LinkedList 来管理空闲扇区块。
扩展
软链接:ln -s /dir1/1.txt /dir2/2.txt 不同的inode号,可能会出现断链的情况即被链接的文件被删除后,链接文件由于保存了指向其的绝对路径,从而无法找到。
硬链接:ln source destiny 相同的inode号,文件系统会对某个文件保持引用计数,如果计数为0 才将文件删除。