提取 WHL 文件

无限制 作业。文件大小达到 2.5GB。永久免费。

全部本地运行

我们的转换器在您的浏览器中运行,所以我们永远看不到您的数据。

闪电般快速

无需上传文件到服务器,转换立即开始。

默认安全

与其他转换器不同,您的文件永远不会上传给我们。

什么是WHL格式?

Wheel

XAR(可扩展存档)是一种由 Apple Inc. 开发的文件格式,用于在 macOS 上捆绑和分发软件。它替代了 .pkg 和 .dmg 等较旧格式,提供了多项优势,例如提高安全性、减小文件大小和提升性能。XAR 文件使用 .xar 文件扩展名,可以使用 macOS 附带的 xar 命令行实用工具创建和提取。

XAR 格式基于 XML(可扩展标记语言)标准。XAR 存档包含三个主要组件:以 XML 格式描述存档内容的目录 (TOC)、存储在存档中的实际文件和目录,以及用于安全的数字签名。TOC 充当索引,指定存档中每个文件的路径、大小和其他元数据。这种基于 XML 的结构允许扩展,因为 Apple 或第三方可以添加自定义标记来支持新功能。

XAR 格式的一个关键方面是它使用压缩。默认情况下,XAR 使用 zlib 压缩来减小已存档文件的大小。TOC 本身也已压缩。与存储未压缩文件的 .pkg 等较旧格式相比,这会导致较小的存档大小。但是,XAR 也支持在需要时存储未压缩的文件。可以单独在 TOC 中指定应用于每个文件的压缩。

为了确保 XAR 存档的完整性和真实性,该格式包含数字签名。每个 XAR 文件都包含一个或多个涵盖整个 TOC 的签名。这些签名是使用公钥密码术创建的,通常使用 RSA 或 DSA 算法。这些签名允许接收者验证存档未被篡改,并且它来自受信任的来源。Apple 使用 XAR 签名在 Mac App Store 上分发软件更新和应用程序。

当打开 XAR 存档时,首先会解压缩并解析 TOC。TOC 提供目录结构和文件元数据,类似于 Unix 系统上使用的“tar”格式。实际文件数据存储在存档中的 TOC 之后。每个文件的数据可以压缩或解压缩,如 TOC 中的相应条目所示。要提取文件,可以使用 TOC 中的偏移量和大小信息找到其数据。

XAR 格式支持除基本存档之外的几个高级功能。其中一项功能是能够在单个存档中包含多个 TOC。这允许创建增量更新,其中只需要将更改的文件包含在更新存档中。多个 TOC 可以描述软件不同版本中的存档状态。智能更新机制可以使用此信息有效地应用增量补丁。

此外,XAR 存档可以存储与已存档文件关联的扩展属性和访问控制列表 (ACL)。扩展属性是键值对,可以存储特定于应用程序的元数据。ACL 定义了访问文件的粒度权限。通过在存档中保留此信息,XAR 确保在目标系统上提取时还原原始文件属性。

XAR 格式还包括代码签名的规定。除了涵盖 TOC 的存档级签名之外,存档中的各个文件还可以有自己的签名。这对于分发需要独立验证的软件组件非常有用。例如,插件架构可以使用代码签名来确保应用程序仅加载受信任的插件。

XAR 的另一个功能是它能够存储硬链接。硬链接允许多个目录条目引用磁盘上的相同文件数据。在 XAR TOC 中,硬链接使用指向原始文件条目的特殊 XML 元素表示。当提取存档时,将重新创建硬链接,保留磁盘空间并维护原始目录结构。

为了以编程方式处理 XAR 存档,开发人员可以使用 xar 命令行工具或 libxar 等库。xar 工具提供用于创建、提取和操作 XAR 存档的命令。它支持压缩、签名和验证的各种选项。Libxar 是一个 C 库,它实现了 XAR 格式并提供了一个用于读写 XAR 存档的 API。它允许开发人员将 XAR 支持集成到他们自己的应用程序中。

总之,XAR 格式为 macOS 上的软件打包和分发提供了一种现代且可扩展的方法。它使用 XML 作为目录、压缩以减小文件大小、数字签名以确保安全,以及对增量更新和代码签名等高级功能的支持,使其成为开发人员和系统管理员的强大工具。随着 Apple 继续改进和推广该格式,XAR 可能会成为 macOS 上软件分发的标准。

文件压缩通过减少冗余,让相同的信息占用更少的比特。可压缩的上限受信息论约束:对于无损压缩,上界是信源熵(参见香农的信源编码定理及其 1948 年的原始论文《通信的数学理论》)。对于有损压缩,码率与感知质量之间的权衡由率失真理论描述。

两大支柱:建模与编码

大多数压缩器分两步。首先,模型预测或揭示数据中的结构。然后,编码器把这些预测变成近乎最优的比特模式。一个经典的建模家族是 Lempel–Ziv:LZ77 (1977)和 LZ78 (1978) 会检测重复子串并输出引用而不是原始字节。在编码端,霍夫曼编码(见原始论文1952)会为更常见的符号分配更短的代码。算术编码范围编码能更贴近熵极限,而现代的非对称数值系统(ANS)用查表实现获得相似的压缩率。

常见格式的实际做法

DEFLATE(被 gzipzlibZIP 采用)结合了 LZ77 和霍夫曼编码。其规范完全公开:DEFLATERFC 1951、zlib 封装RFC 1950以及 gzip 文件格式RFC 1952。Gzip 面向流式传输并明确不提供随机访问。PNG 图像标准化将 DEFLATE 作为唯一的压缩方法(窗口最多 32 KiB),可见 PNG 规范“Compression method 0… deflate/inflate… at most 32768 bytes”W3C/ISO PNG 第二版

Zstandard (zstd): 面向高压缩率与快速解压的通用压缩器。格式记录在RFC 8878(还有HTML 镜像)以及 GitHub 上的参考规范文档。与 gzip 类似,基本帧不追求随机访问。zstd 的拿手好戏是字典:从语料中抽取的小样本能显著改善大量小文件或相似文件的压缩(参见python-zstandard 字典文档Nigel Tao 的示例)。各实现同时支持“无结构”和“有结构”字典(讨论)

Brotli: 为网页内容(例如 WOFF2 字体、HTTP)优化,混合静态字典与类似 DEFLATE 的 LZ+熵编码核心。规范见RFC 7932,其中也指出滑动窗口大小为 2WBITS-16,WBITS 取值 [10, 24](1 KiB-16 B 到 16 MiB-16 B),并且不尝试随机访问。Brotli 常在网页文本上优于 gzip,同时保持快速解码。

ZIP 容器: ZIP 是一种文件归档格式,可存储使用多种压缩算法(deflate、store、zstd 等)的条目。事实标准是 PKWARE 的 APPNOTE(参见APPNOTE 门户托管副本以及美国国会图书馆的概览ZIP File Format (PKWARE)/ZIP 6.3.3)。

常见问题解答

什么是文件压缩?

文件压缩是一种减小文件或文件集大小的过程,通常用于节省存储空间或加速网络传输。

文件压缩是如何工作的?

文件压缩通过识别和删除数据中的冗余来工作。它使用算法在更小的空间中编码原始数据。

文件压缩有哪些类型?

文件压缩的两种主要类型是无损压缩和有损压缩。无损压缩允许完美恢复原始文件,而有损压缩则以损失部分数据质量为代价,实现更大的大小减小。

文件压缩工具的例子是什么?

文件压缩工具的一个流行例子是WinZip,它支持包括ZIP和RAR在内的多种压缩格式。

文件压缩会影响文件的质量吗?

对于无损压缩,质量保持不变。然而,对于有损压缩,由于它消除了较不重要的数据以更大程度地减小文件大小,因此可能会有明显的质量下降。

文件压缩安全吗?

是的,就数据完整性而言,文件压缩是安全的,尤其是无损压缩。然而,像任何文件一样,压缩的文件可能会被恶意软件或病毒攻击,因此总是必要的有安装可靠的安全软件。

哪些类型的文件可以被压缩?

几乎所有类型的文件都可以被压缩,包括文本文件、图像、音频、视频和软件文件。然而,可达到的压缩水平可以在文件类型之间大大变化。

ZIP文件是什么意思?

ZIP文件是一种使用无损压缩来减小一个或多个文件大小的文件格式。ZIP文件中的多个文件有效地被捆绑在一起成为一个单一的文件,这也使得分享变得更容易。

我可以压缩一个已经压缩的文件吗?

技术上,是的,尽管额外的减小大小可能是微不足道的甚至适得其反。压缩一个已经压缩的文件有时可能会增加它的大小,由于压缩算法添加的元数据。

我如何解压文件?

要解压文件,你通常需要一个解压或解压缩工具,如WinZip或7-Zip。这些工具可以从压缩格式提取原始文件。