已知存在诸如ZFS、Btrfs、bcachefs之类的自我修复文件系统和诸如ECC RAM之类的自我修复RAM或相应的软件实现,其可以纠正单个或多个错误位。
自愈文件格式或项目到标准程序的自愈文件格式有哪些?
文件格式是什么意思?佩:
- .txt、.doc、tar.lz4、.mp4
答案1
帕档案可用于与任何类型的文件一起存储附加修复信息,然后修复文件可用于重建原始文件中丢失或损坏的数据。一些工具在其自己的文件格式中包含归档功能;例如,雷达创建备份时可以包含修复数据。
RAR 文件还可以创建附带的恢复卷,以修复某些错误。 (请注意,“文件修复”维基百科对文件档案的比较可能会产生误导——它指的是修复档案的能力,而不是其内容;档案通常通过删除其中损坏的文件来修复。)
答案2
通讯工程师来了因此,您可能会说,专业从事嘈杂通信和从损坏的传输中恢复数据的人。
由于文件不知道也不关心它传输的通道:
纠错需要针对您期望的错误类型进行设计。因此,除了一些档案格式之外,将错误更正放入文件中也是一种方法。设计错误。您希望将其放在对可能发生的错误的类型和概率有实际了解的地方。
例如,
- 你的 Wifi 堆栈增加了很多纠错(并且可以调整很多!),准确地反映了“无线”发生的错误类型;
- 您的硬盘添加了不同数量和类型的纠错来应对读出错误;
- 驱动穿过海洋的光缆的线卡:另一种纠错。
所有这些都可能正在传输您的文件。
存储或发送文件时,自校正属于介质控制器,而不是文件。
- 这与您的浏览器在使用 WiFi 浏览网页之前不添加 1/4 的 HTTP 流量位冗余的原因相同:这不是应用程序、链接或路由层的工作,而是物理层的工作。你的浏览器应该如何知道你的WiFi信道是不好(每发送1位,就需要发送1位额外的纠错冗余)还是很好(每6位数据只需要发送1位冗余)?
因此,确保文件完好无损是存储或传输这些文件的任何人的工作,而不是文件本身的工作。 因此,您将主要发现长期存档格式和相当过时的文件格式(用于通过 usenet 传输比合理的更大的文件;那是时代!),两者均由 Stephen 列出回答。
(注意:此规则也有例外。在某些情况下,文件格式具有特定用途,其中包含错误概率和弹性需求的模型 - 如前所述,对于长期存档格式,添加冗余以在长时间后恢复存储是有道理的,但老实说,只读文件系统和存档文件格式之间的区别在于,您通常不会将存档直接写入磁盘卷,也不会将文件格式直接写入文件,但有时两者都会完成。例如,SquashFS 显然是一个文件系统,但现在我通过电子邮件发送 SquashFS 图像的频率比发送 .tar 存档的频率要高,您提到了 MP4,而它本身并不是一种容器格式。那对位错误有弹性,但所包含的多媒体数据可能是——由于编解码器的设计,单个位翻转可能不太重要;这对于例如在低延迟无线链路上使用语音编解码器来说是有意义的。但同样,这是一个例外,除了设计相当糟糕的文件格式和前面提到的起到“罐装”文件系统作用的长期存储存档格式之外,您很少在文件格式中找到纠错信息。你会发现很多错误检测以短校验和的形式;这是一种非常便宜且简单的方法来检测错误,然后将责任和纠正工作转移到传输/存储介质上。)
1 我们所说的“通道”是指任何可以破坏任何东西的东西;例如,以 1/1000 的概率随机翻转一位的串行线路是一个通道,而且保存和读取到闪存也是一个通道,通过光纤链路或互联网发送也是一个通道