Introspector/Summary
可用的信息包括信息的表示(数据)和操作它的工具(程序)(用于解码和编码信息)。只有当你拥有这些工具时,你才能称数据为信息,否则它的意义对你来说就消失了。
一个重要的自由是个人表达的自由。但这也不总是被赋予,因为存在主题审核和审查。并非所有免费软件项目都允许任何类型的发布或讨论。内容托管始终取决于主题,如果你有一组树木图片,你不应该在那里发布猫的图片。
非自由(专有)信息是指你没有权利复制、发布、研究或更改的信息或数据。
F/LOSS 是根据 http://opensource.org/osd.html 开放的软件,你有权利研究源代码并在各种条款下发布它的新版本。最广泛使用的许可证是 GPL www.gnu.org/licenses/gpl.html,它为你提供了广泛的自由和保护。
creativecommons.org 定义了一组许可证,你可以在这些许可证下发布数据并使其在不同程度上对更改和共享开放。并非所有发布的数据都能使用
数据是程序操作的对象,数据是编码信息,存储在比特信息中,这些比特信息打包在一起形成字节。数据可以在版权下获得许可,知识共享是发布数据的一种方式。只有当数据采用开放格式、可以被开源程序读取并且数据本身拥有开源许可证时,它才真正开放。
文档是编码到数据文件中的信息,用于记录程序。你需要它来理解程序的目的和功能。有时源代码写得非常好,以至于程序本身就是文档,但只有当你拥有解码它的工具时才如此。基本文档应该被理解为以每个人都能理解的简单元语言表达的元数据。(都柏林核心元数据 dublincore.org)
一些文档以无法编辑或重用的格式发布(pdf 或 tiff),这不是最佳方案。另一些则以 DRM 限制发布,因此你无法复制它们。
访问是与设备交互的最基本需求。你需要对设备或文件进行物理访问,并且还需要有合法访问权限才能更改它。你拥有基本读取和写入权限。
芯片是软件运行其上的基本物理单元。
芯片设计是芯片的所有原理图和 VHDL 设计。它们可用于制造芯片。它们主要以非开放格式发布,并且只能由非自由(专有)芯片设计软件读取。
设计软件是用于处理芯片设计的软件。它大多不是开放的,这是一个问题。
芯片制造商是制造芯片的个人或公司。
芯片文档定义于此。 http://www.oshwa.org/definition/
随机存取存储器,程序被加载到其中以执行。它
只读存储器,通常是速度较慢的存储器,用于在芯片关闭时存储程序和静态数据。
程序是可以操作信息、解码和编码信息的工具。
编辑器是处理源代码和数据文件的基本程序。
可执行程序是基本数据文件,是芯片可以加载和执行的二进制表示。
操作系统是芯片和硬件的抽象,它简化了对它们的访问并在同一时间运行多个程序。
编译器将源代码转换为可执行代码。
程序数据分为以下几个部分:
- 输入数据
- 常量数据是程序在编译时需要的。
- 静态数据是程序内部用来引用且可在程序中全局改变的数据。
- 运行时数据是程序在处理输入数据并将其转换为输出数据时临时需要的数据。
- 数据库数据或外部数据是永久保存在其他程序中的数据。
- 可执行代码是程序可以直接执行的机器语言代码。
- 动态可执行代码是可以被其他可执行代码解释的,芯片可以间接执行的数据。这包括虚拟机代码等。一些动态可执行代码可以即时编译为可执行代码。
- 输出数据
构建系统是一组程序和数据,用于运行编译器并将项目的源代码转换为可执行的制品。
加载器是将程序从磁盘或 ROM 加载到 RAM 的基本工具。
运行程序是指加载到 RAM 中的芯片上的程序,正在处理输入并生成输出。
运行时库是运行程序所需的通用软件函数集合,通常是 libc 和运行程序所需的其它工具包。
程序的基本源代码,由编译器读取并转换为二进制可执行文件。源代码文件是数据文件。
现在,你可以看到这里有一个递归定义。为了真正自由,你不仅需要创意共享文档,还需要 FLOSS 软件来处理它。你不仅需要芯片的设计,还需要查看和编辑这些设计以及相关文档的软件。软件不仅要开放,而且要包括你与之链接的库、构建系统以及相关文档。只有拥有了所有这些部分,你才能认为自己真正自由。通常,我们只拥有这个拼图中的很小一部分是自由的。