1

作为一名拥有“很多”计算机编程经验的计算机工程专业的学生,​​我说得轻描淡写,因为我觉得你学得越多,你就会发现你真正知道的东西有多么少。

每当我创建程序时,无论是 Java(游戏引擎/游戏)、C(或任何 C 变体)(应用程序)、PHP(在线脚本/数据库程序)、Javascript(UI)等。我从来没有完全理解“安装”程序的作用,而且我从来不需要这样做。

从之前的研究中,我了解到安装程序会写入注册表,但是为什么需要这个复杂的过程呢?安装程序时实际发生了什么?当您可以创建一个可执行文件(C 中的 .exe / java 中的 .jar 文件)时,为什么要这样做?

谈到脚本语言(我主要知道 php,所以我会坚持这个例子)。我听到“安装脚本”或“安装插件”。实际上,安装脚本不只是将一组带有scripts/html forms/javascript/etc的文件夹复制到服务器中吗?

我将不胜感激任何关于该主题或任何类似主题的解释、任何链接和任何个人知识。我尝试尽可能多地学习,但总是有更多。

4

1 回答 1

2

给出一个非常笼统的答案:安装是确保程序已完全设置好执行的过程。(甚至还有一个使用相同定义的维基百科页面)。我不会尝试对所有安装类型进行完整而准确的总结,而只是尝试生成一个总体概述。

最后一切都由cpu命令控制。要到达那里,需要进行翻译。除此之外,在正常情况下,还有一个封装环境(操作系统)。在这些之间,您可能依赖于驱动程序等。

操作系统,无论是 windows / Unix / 等,我们都在那里,所以我们不必担心任何直接的硬件转向(无论如何对于这种情况)所以给一个随机的编程语言或脚本,我们需要让它运行操作系统。直接在操作系统上,或通过诸如 .Net/Java(Apache for PHP)之类的框架

到目前为止已知的摘要,但我们已经为我们在这里讨论的安装类型设置了参数:)

在经典 C 中,语言首先被编译成一组可由操作系统解释的指令。正如你所说,不需要安装,只需要预编译。在 Java/.Net 中,已经安装了一个框架,因此编译的中间语言和所有引用都由框架处理。诸如 Javascript 之类的浏览器语言在浏览器中进行解释。浏览器本身已安装,因此无需安装。PHP 脚本也被解释。大部分时间由 Apache 完成,但不需要单独安装。当然,其他脚本语言,如批处理/vbscript/等都有自己的操作系统解释器。

现在要了解在阅读有关写入注册表时触发我的观点,提到da da da dum DLL Hell。链接的维基百科页面描述了 dll 遇到的问题,但我主要想提及它作为注册表编写的桥梁。安装需要写入注册表的最常见情况之一是注册dll。您不能简单地拥有一组执行 (.exe),它使用了另一个集合 (.dll) 中的一堆函数,除非操作系统知道另一个集合 (.dll)。为了使 dll 为人所知并可用,需要对其进行注册。这可以通过命令提示符(如果我没记错的话是 regsrv32)来完成,但对于最终用户,安装程序会处理这个问题。

底线是,安装程序准备环境,以便程序可以运行。即使该程序在技术上无需额外准备即可运行,安装程序也可以设置桌面快捷方式、添加菜单选项或链接文件类型(Windows 中的另一个注册表设置)。

于 2012-07-02T07:57:25.920 回答