“文件松弛”是指文件的最后一个字节与群集末尾之间的数据。它通常包含操作系统用来表示未分配内存的任何位模式。
“驱动器松弛”是指已被重新分配但未被覆盖的群集。它还可以指不再属于分区边界的未分配空间。
“ RAM Slack” -我以前从未听过这个词。在Google上进行搜索时,我发现的所有资源似乎都来自或引自Albert C. Marcella,Jr.和Doug Menendez题为“网络取证:收集,审查和保存计算机犯罪证据的现场手册”的书。
我阅读了使用该术语的章节。即使它在2010年拥有版权,它也参考了DOS和Windows 95/98的处理方式。十多年来,这一直没有意义。我可能会在上下文之外阅读它。无论哪种方式,这本书似乎都是该术语的来源。
Windows将数据存储在群集中的磁盘上。群集通常包含8个扇区,每个扇区512字节,因此4096字节或4kiB。
对于旧版驱动器和4K“高级格式”驱动器,这是正确的。在4K“本机”驱动器上,扇区大小确实为4KB,因此这些驱动器的扇区和群集之间存在1:1的关联。
大文件分散在多个群集中,当文件的其余部分未填充整个群集时,群集末尾的剩余未使用空间称为“文件松弛”。
也正确。
Windows始终一次写入512个字节的块,因此第一个仅部分使用的扇区必须先被填满,然后才能写入磁盘。
这是不正确的。Windows不写块;仅集群。它将以任意大小写入数据,但是它们将是群集大小的倍数(通常为4KB)。Windows唯一关心扇区/块的时间是必须计算LBA地址的时间。低级磁盘驱动程序执行此操作,而不是文件系统驱动程序。实际上,以512字节的块进行读/写操作效率很低。它适用于驱动器的内部硬件缓存。做一个dd
在Linux中有512字节的块大小将确认这一走势。读写速度都慢了一个数量级。
无论出于何种原因,Windows都会决定从RAM中选择一个随机序列来填充此扇区。
也不正确。Windows将写入缓冲区中的任何内容。写入输出缓冲区时,几乎每个应用程序(包括文件系统驱动程序)都会从堆中分配新的内存。当应用程序分配内存时,它是在页面中分配内存的(猜测!)大小为4KB。未分配的内存通常由重复的位模式(不是00或FF)表示,因此如果内存未满,则会将其写入集群的末尾。如果应用程序的输出缓冲区是其输入缓冲区的修改后的副本,则备用项将包含输入缓冲区中包含的所有数据。
部分使用的群集中剩余的未使用扇区保持不变,并保留之前的字节,这些字节可以是此位置中先前删除的文件的一部分。这称为驱动器松弛。
也不正确。即使只有1个字节的更改数据,Windows也会始终执行全集群提交。这是真的,解除了分配的集群具有任何数据在他们面前。Windows不会将已释放的群集清零。但是,这一切都不发生在部门一级。
4KB是个魔术数字。内存页面为4KB。I / O缓冲区为4KB。扇区现在为4KB。甚至驱动器的硬件也针对4KB(或其倍数)的I / O请求进行了优化。
所有现代操作系统都以这种方式工作(Windows,Linux和OS X)。上面规则的唯一例外是已打开磁盘以供原始访问的应用程序。它们完全绕过操作系统的API调用进行写操作。您只能在低级恢复和取证工具中看到这一点,因为此类应用程序无法从通过缓冲I / O获得的所有优化中受益。