不同变体之间可能存在不同程度的差异。原始的人类优化代码对您和其他人始终是可读的,其中包含您可以识别的单词和逻辑结构;然而,机器优化的代码在极端情况下可能仅由 0 和 1 组成;仅凭外观,您将无法形成对其功能的想法。
从前述的不同变体中,第一个人类优化的变体被称为 "源代码"。
编译的、经过机器和分发优化的变体有时属于一种被称为 "二进制文件" 的范畴。
有趣的影响是,当有人只给您机器/分发优化的变体(例如二进制文件)时,您可以使用该软件,但无法更改其工作方式或功能(而且复制它也可能具有挑战性)。即使对于专家来说,尝试研究它并弄清楚其工作方式(称为反向工程)通常也需要很多工作。
但是,当有人还让您拥有人类优化的源代码以及用于将其编译为最终的机器优化形式所需的编译器时,那么您可能对该软件拥有完全控制权:此后,它完全取决于所附许可证授予您的权利(在开源项目中通常非常宽松)。
在Ubuntu软件仓库中,你可能会得到你使用的各种软件的源代码。但只有当你打算改变软件的某些方面,并且自己编译修改后的版本时,你才需要下载它。如果你不想涉及这个过程,源代码对你来说几乎没有用处。