虚拟文件系统:为什么这个抽象层统治了Linux文件访问三十年

一个看似简单的问题 当你在Linux终端输入cp /home/user/file.txt /mnt/usb/backup/时,系统在做什么?源文件位于ext4格式的SSD上,目标目录在FAT32格式的U盘里。这两种文件系统的数据结构完全不同——ext4使用extent树管理块分配,FAT32依靠链式的FAT表。然而,cp命令对这种差异一无所知。 ...

20 min · 9804 words

为什么删除的文件还能被恢复?从文件系统到扇区的数据生存指南

1996年,新西兰奥克兰大学的Peter Gutmann发表了一篇在安全领域影响深远的论文《Secure Deletion of Data from Magnetic and Solid-State Memory》。论文揭示了一个令普通人不安的事实:在磁性存储介质上,即使数据被覆盖多次,仍然可以通过特殊设备恢复。这篇论文后来催生了著名的"Gutmann方法"——通过35次覆写来确保数据无法恢复。 ...

9 min · 4068 words

软件更新为何总是需要重启?从文件锁定到热更新的技术博弈

2004年,一位系统管理员在服务器论坛上发帖抱怨:每安装一个安全补丁就要重启,这让他怀疑Windows是不是故意跟生产环境过不去。微软工程师回复说,这是设计如此——当文件正在使用时,Windows无法替换它。 ...

9 min · 4478 words

硬链接为何不占用额外空间从inode设计哲学到文件系统的隐藏真相

执行 ls -l 时,文件权限后面的那个数字是什么意思?创建一个硬链接后,磁盘空间为什么不增加?删除原文件后,硬链接为什么还能正常访问?这些看似反直觉的现象,背后隐藏着 Unix 文件系统设计中最优雅也最容易被误解的核心概念——inode。 ...

10 min · 4965 words