答案1
编辑:在撰写此答案时,问题的原标题是:
什么是源代码?
这个答案就是为了解决这种形式的问题而编写的。
当人类编写软件时,他们需要设计编码语言,使其具有很大的意义;它很容易掌握正在发生的事情,从而很容易使用它。
但是这样的代码:
- 为了工作,它需要很多其他程序在计算机上存在并运行
- 这使得分发变得更加复杂和具有挑战性
- 在计算机上运行速度很慢
解决这两个挑战都需要通过某种“转换器”(通常称为“编译器”)运行原始的、人性化的代码,该转换器接收人们编写的原始代码,然后输出以下内容:
- 包含许多(最初)外部化的变量和逻辑
- 代码的可读性和灵活性都会下降
- 但它将更加高效,需要的辅助程序更少
- 进一步优化机器运行
- 此类代码在速度方面比之前讨论的版本快几十倍甚至几百倍
变体之间可能存在不同程度的差异。原始的人类优化代码始终对您和其他人来说都是可读的,包含您可以识别的单词和逻辑结构;然而,机器优化代码在最极端的情况下可能确实只由0
s 和1
s 组成;仅通过查看它,您根本无法了解它的作用。
从上述变体中,第一个经过人工优化的变体被称为“源代码”。
经过编译、机器和分布优化的变体有时属于称为“二进制”的类别。
有趣的影响是,当有人只给你机器/发行版优化的变体(例如二进制文件)时,你可以使用该软件,但不能改变它的工作方式或功能。(并且创建它的副本也可能具有挑战性。)通常,即使是专家也需要大量工作才能以某种方式研究它并弄清楚它的工作原理(称为逆向工程)。
但是,当有人让你拥有人类优化的源代码,以及将其编译成最终的机器优化形式所需的编译器时,你可能拥有对该软件的完全控制权:从那时起,它只取决于随附的许可证授予您的权利(这在开源项目中通常非常宽松)。
在 Ubuntu 存储库中,可能会提供您使用的各种软件的源代码。但只有当您打算更改软件的某些方面时,才需要下载它,然后自己编译修改后的版本。如果您不想这样做,源代码对您来说用处不大。
答案2
您可以在 Ubuntu 中安装软件(称为软件包)。这些软件包大部分都是“开源”的,您作为最终用户可以访问该软件的实际“源代码”(或编程代码)。这与 Apple 或 Microsoft 等公司不与最终用户共享的专有代码形成鲜明对比。
您不需要源代码即可运行软件应用程序,但您可以将其下载到您的系统中以自行查看或更改。因此,如果您想要源代码,请选择“源代码”PPA,否则请取消选中这些。