文件创建和删除原理

image.png

创建文件:
Linux文件系统中,每个文件至少有一个inode和一个block。
创建文件时,先查询inode bitmap,选择可用的inode,
权限(w)等属性写入inode table,
然后查询block bitmap,选择可用的block并写入文件内容;
再将inode指向block(记录在inode table);
最后更新inode bitmap和block bitmap,以及superblock。

删除文件:
1、从文件系统角度:
文件的文件名是存放在父目录的block里的。
文件名指向文件的inode,inode标记文件的block。(这里的指向和标记记录在inode table中)
当删除文件的时候,实际上是删除了父目录里的文件名,这时候对应的inode和block就没有了指向;
文件系统会将其释放,同时更新inode Map和block Map,以便重新创建文件的时候使用。
2、从文件引用角度:
Linux文件系统是通过Link的数量来控制文件是否被删除的,
只有当一个人文件不存在任何Link的时候,文件才会被删除:
主要包括i_nlink和i_count;
前者是硬链接的数量(磁盘),后者是调用文件的进程数量(内存)。
一个文件的删除不仅要删除所有硬链接,也要杀死响应进程。
即 i_nlink=0 并且 i_count=0

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容