我想知道的是,一个仅仅提取文件的安装程序和一个可在几秒钟内下载完成的zip(rar,iso等)文件之间的区别在哪里?而对于那些体积达到200mb的安装程序,它是如何离线获取5gb的文件的呢?
在学习编程的过程中,我从未听说过这点。所以,如果您能够适当地回答我的问题,我将不胜感激。
你真正想问的是:
一些背景知识。
在古老的时代,人们没有“安装程序”这样的东西。软件直接从软盘上运行(不是那种坚硬的3.5英寸软盘,而是可以“抖动”的软盘),就像上帝所愿。
然后出现了第一批拥有持久硬盘的家用电脑。第一次,将程序从软盘上复制下来并让它停留在电脑上变得有意义了。
但程序仍然像今天的“便携式”应用程序一样工作:你按原样复制它们并以原样运行。
然后操作系统变得更加复杂。
Windows引入了一个名为“注册表”的概念:一个中央位置,用于存储程序和操作系统配置。软件作者开始使用这个注册表。它的神秘架构和用户敌对的编辑实用程序(臭名昭著的regedit.exe
)使其成为存储共享软件信息的完美地方 - 例如,你在试用期剩余多少天。
这是在程序开始变得太大以至于无法未压缩地放在单个软盘上的同时发生的。需要一种将程序拆分到多个软盘上的方法。由于要求用户安装ZIP提取工具不够友好(请记住,在广泛使用互联网之前),Windows程序开始随附安装程序。您可以将这些视为WinZIP的便携式版本,其唯一目的是重新组装并提取压缩文件。
现在,安装程序有许多其他用途:
此外,它们还可以作为 DRM 工具,验证 CD 并解密数据以防止恶意个人(yarr)破解 DMCA。
从本质上讲,它们并不比 Windows 95 时代更复杂 -- 它们就是一个华丽版的解压程序。
那是很高的,但你可以有很多方法来获得这种压缩比。想象一下一个复杂的游戏,其世界是由详细的 XML 定义的 -- 这是容易压缩的。甚至在旧的 WinZIP 时代你也可以做到这一点。
一个zip文件只能容纳一些文件,解压后可以得到这些文件。
然而,安装程序可能是非常复杂的。它可以创建所需的文件或文件夹结构,可以在您的系统上注册所需的dll文件,为您提供可安装的功能选项,检查您的系统兼容性,并作为向导逐步指导您自定义安装应用程序。
安装程序(特别是Windows Installer)可以自动创建注册表项,同时解压并将文件写入目录。使用Zip时,您必须手动提取文件,并且没有自动的注册表编辑。
Zip的优点是,它保证(大多数情况下)应用程序是可移植的,即所有必要的文件都包含在解压缩的目录中。
安装程序的优点非常明显:自动化、用户界面。
至于从200MB -> 5GB......将文件压缩成exe可以增加更好/更小的压缩层,而不仅仅是将文件放入压缩文件夹中,但是200MB -> 5GB是一个相当大的跳跃,虽然不是不可能,但相当大。对于大型外部(在线)下载有说明的大多数安装程序,在安装之前通常会提醒您他们即将下载大量数据,请勿在安装过程中断开与互联网的连接。