详谈自由软件的本质
导读 | 自由软件的存在,创建在四大自由之上。1.自由运行程序,无论任何目的。2.自由研究该程序如何运作,并依照想法修改以符合自身所需。(能访问源代码是这项自由的先决条件)3.自由再次散布程序副本,帮助亲朋好友街坊邻居。4.自由将修改后版本散布给他人,如此一来就有机会让改善惠及社区整体。(能访问源代码是这项自由的先决条件).于是,自由软件就不再是个人专属的,它更是全民共有的。 |
汉语中所谓软件,泛指一切智能、思想的资源,与硬件相对。而硬件泛指一切建设的实质设施。
基本上我们可以这么想,电脑世界中的软件是代码,是种具有实用性质的数学公式,在互相组合交织之后得以完成某些事务的智能思想过程,人们将之写下并交付给电脑运行。就像数学一样,软件需要相当高端的专业知识才能够正确地调整、改善和使用,这就是为什么有许多人会雇用程序员来更新软件与改良。
自由软件的特性,就是个人和群体都能自由运用这些以数学式形式存在的事务处理思维过程。也因为自由软件这样的特性,造就个人与群体之间的链接与交互,形成了「社区」。
历史
就历史而言,起源自理查德・史托曼Richard Stallman的重大自由软件项目 — GNU 项目。其创立本身旨在完成理查德・史托曼的个人理想,打造出完全是自由软件的类 Unix 操作系统,一套不同但类似(且兼容)于当时主流之专有 Unix 的操作系统,他将这套操作系统称为 GNU,意思代表 GNU’s Not Unix。于是世界各地认同这个理念的人们就这么联合起来,成为社区,互助合作共同打造 GNU 操作系统。
在 1991 年时,GNU 将近完成,只欠类 Unix 操作系统中最内部用来分配机器资源、并和硬件对话的程序,也就是「内核」,英文称为 kernel。刚好林纳思・托瓦兹Linus Torvalds所开发的 Linux 内核可以补完欠缺之处,许多人开始将 GNU 和 Linux 结合一起,打包成「GNU/Linux」操作系统,自此为自由软件运动的滥觞。
不过林纳思・托瓦兹为何要开发 Linux 内核呢?他本人说是「Just for fun.」纯属乐趣为之。但正因为自由软件兼属个人与集体的特性,他这个人乐趣之产物,向外置触到他人之后,他人若觉方便好用可将之改善,再散布给另外他人(包括回馈给原作者林纳思・托瓦兹), 于是又造就了个人与群体之间的链接交互。
后续林纳思・托瓦兹在开发 Linux 的过程中,需要和他人合作,创造出 git 版本控制系统。这是种分布式架构,任何人都可以有 Linux 源始代码的代码库,方便他人在自己的机器上修改代码,也方便回馈到原作者的代码库中。人们依据自身需求可以如河流般分支出自己的旁支,抑可以再合并回元初的主道,反映了自由软件的内在本质。
自由软件的本质
在自由软件的世界中,人们和代码相同,都会聚在一起、成型、扭曲、缠绕,有时又还原、断裂,再次连接。这就是自由软件的本质。这项基本性质,其实反映出许多人类文化的思想,亦可以说这些文化底蕴正是自由软件根源的本质。
以东方的佛教思想体系来看,自由软件正是「自利利他」的体现。以这种来看自由软件世界中的自利,如理查・史托曼想要打造「GNU 操作系统」的理想、林纳思・托瓦兹「Just for fun」的个人乐趣,而依据自由软件的本质,无论何时都将利他。深层点我们可以看到这些想法背后皆是由其他所有事物构成,亦即包含整个宇宙,是我、和无我的概念。亦是荒川弘所着之《钢の錬金术师》中一再提及之「一为全、全为一」的道理。甚者,源自南非复兴的 Ubuntu 精神意涵:「I am what I am because of who we all are. 」亦复如此。
以西方的思想来看,自由软件亦是「自由・平等・友爱 」的体现。在自由软件的世界中,人人皆有可以使用、研究改善、散布程序(无论有无修改)的自由,所以人人皆平等,没有软件被谁专有的情事,而自由软件所构筑的社区,正对应兄弟关系或类兄弟关系的社区价值之 友爱Fraternité。
在日本动画家和电影导演新海诚作品《君の名は。》所讲述的「むすび」(结び)神道思想中,万物皆有灵,无论是连接绳线、连接人与人、时间的流动都是むすび,所有事物的推移全都是神明的力量。人们做的结绳是神的作品,亦是时间流动的体现:聚在一起、成型、扭曲、缠绕,有时又还原、断裂,再次连接。而这样的描述正好和前述自由软件世界的运作不谋而合,人们和代码都是如此结合成社区。
自由软件的本质,就是如此反映出人类文化的思想底蕴。每当我们在使用、贡献、推广自由软件之时,其实就已在其中了;了解至此,我们也就不意外为何世界上会有这些人,在各地个人却又集体地发展自由软件了。