Richard Stallman与洪峰谈黑客道培训实录 -- 自由软件的解释

来源:互联网 发布:怎么把一个淘宝店搞死 编辑:程序博客网 时间:2024/05/01 20:15

Richard Stallman:自由软件指的是自由,而不是价格,所以说自由,而不是免费,这就意味着用户拥有四种自由度,第零:你可以自由的去应用这些软件;第一:你可以研究它的原代码,并且自由去改动这些原代码。第二:你能够自由地帮助其他人,也就是说能够拷贝软件,分发给其他人。第三:你能帮助你的社团,将你修改的软件发布给其他人,使其他人能够从中受益,这就是四重自由度。满足这四个自由度的就是自由软件,再发布这些软件,能够让每个人都拥有自由。而自由软件运动就是让每一个软件使用者都拥有这个自由,没有人有权剥夺你的这个自由。

我在1983年的时候,做出一个决策,我要自由地使用计算机,也就是说我想用完全的自由软件来使用电脑,而不是用其他的非自由的软件,但是说来容易,做来难。在1983年的时候,是根本不可能做这个的。因为当时计算机如果没有操作系统的话,根本没法使用,在1983年的时候,所有的操作系统都是专有的,都是不自由的。

当时如果没有非自由软件,根本不可能使用计算机,你的自由被剥夺了。那么我能够做些什么呢?我并不是很擅长政治,无法说服政府来改变他们的法律,或者是说服公司改变他们的政策,但是我非常善于写软件,特别是写操作系统,这是我的专长,因此我认识到有办法来改变这种政治状况,并不是从事政治工作,而是从事技术工作。开发新的软件,而我做的就是制定一个全新的操作系统,这样的话就可以用自由软件来操作计算机了,因此我就开启了GNU工程。因此在1984年的时候,我放弃了在麻省理工学院的工作,做起了这个工作,GNU是类UNIX的操作系统,他和UNIX是兼容的,因此UNIX用户不需要做太多的改变,就可以使用GNU系统,而操作系统由很多部件组成,我们必须替代所有的部分,这个工作花了我们很长的时间。

在90年代早期的时候,我们几乎做完了所有的工作,但是这个系统当中,缺乏一个非常重要的部件,内核。在1991年,Linus Torvalds写了一个内核,称之为Linux。刚开始Linux并不是一个自由软件,但是在1992年的时候,改变了Linux的许可证(为GPL版权),因此Linux变成了一个自由软件,Linux补充了GNU系统。这样的话,GNU和Linux结合就变成了一个自由的操作系统 (GNU/Linux)。因此大家第一次有机会来自由地使用计算机,而这个计算机没有任何专有软件,也就是说全部都是自由软件。你拥有了自由。

GNU/Linux变得越来越流行,很多人用它,他们发现它不光尊重你的自由,而且非常强大,非常可靠,而系统的质量非常高,比专有软件的质量还高,而且非常的便宜,不需要花费钱去购买许可证,而且可以进行更改。因此很多组织和企业开始用GNU/Linux,但大部分人此时忘记了一个最重要的事情,就是自由。

因此我现在的主要工作就是让人们了解自由的含义,让人们了解什么叫自由软件,如果人们忘记了这个“自由”的重要性的话,他们可能就会失去这个自由。那么就会使一切都变得非常糟糕。因此我谈一谈自由软件与教育的关系。

学校将对社会的未来产生重要影响,正因如此重要,学校因该选择自由软件,而拒绝专有软件。有四个原因:

我首先讲一个较肤浅的理由,最后讲一个较深入的理由。最浮浅的理由就是省钱,即使在富有的国家,学校的资金也是不充足的,因此学校不应当浪费这些钱来购买专有软件的许可证,这是显而易见的,也是很浮浅的,因为它只是跟钱有关。

一些公司生产了专有软件,他们通过一些手段消除了上述的问题,因为他们能够免费像学校提供一些专有软件,这样就让我们解释第二个原因:为什么这些公司把这些专有软件捐献给学校呢?并不是他们关心教育,试图建立一个更美好的世界,也并不是因为他们理解,如果孩子们用上专有软件的话,那么在他们从学校毕业之后,他们就只知道如何用专有软件了,因此他们将在一生中一直用这些专有软件,除非他们做一些改变。这些公司试图利用学校来让每个人成为他们的客户,试图使学生患有专有软件成瘾证,就像把毒品分发给学生一样。可以确定,一旦学生从学校毕业,这些公司再也不给这些人提供同样的、免费的专有软件。只有第一部分专有软件才是免费的,一旦你使用成瘾之后,就必须付费了。因此这些公司利用学校来引导社会,使大家将来依赖这个公司。学校应该认识到这样的做法是错误的,学校的使命是培训未来的一代人,使他们能够成长,而且有能力,具有独立性,而不是依赖这种虚弱的,靠不住的东西。因此当这些公司试图提供免费的专有软件时,学校应该说不,应该说我们不会给学生提供毒品,而且我们也不会给我们的学生使用专有软件。

还有第三个原因,可能更加深奥一些。当学生到了14到15岁的时候,他们什么都想学,他们将成为伟大的程序员,因为他们是天生的程序员。如果他们使用专有软件,他们想知道这个程序如何运行的。当学生问老师这个程序是怎么运行的时候,老师就会说对不起,我并不知道,而且你也不许知道,因为这个是秘密,整个学校都不准知道这个秘密。这样就无法展开教育工作。

但是如果学生使用的是自由软件的话,老师就可以说,我可以给你解释一下,如果你想了解更多,这是原代码,你可以读这个原代码。如果原代码中有一些地方你不明白的话,你来找我,我会给你们解释。

这些孩子是天生的程序员,因为不需要人们去告诉他,但是他们必须学习如何来写一个好的程序,必须学习如何写一个简洁的一个程序,因为人不是天生就知道这个的。学习写好代码的方式就是大量阅读代码,大量写代码。当你给一个大的程序写代码的时候,就要阅读现有的大程序,然后做一些小的改进,比如增加一个特性、修改一些bug等等。作为初学者,你也可以自己写一些大的程序,但同时,你也可以修改一个现有的大程序,对其改进,这看是一个很小的工作,但同时你可以对许多其他的大程序做出类似的工作,你多年重复这样的工作后,然后你就会知道如何写大的程序了。

我有机会这样做,我过去工作在MIT的人工智能实验室,这里面的软件是由的,我们的工作就是改善这个系统,这个一个独一无二的机会。那是1971年了,但是在今天,所有的学校都能提供这样的机会,提供一个电脑,运行GNU/Linux系统,这样的话学校给学生提供很多机会,条件是只能用自由软件。

第四个原因更为深奥些,为了教育,学校必须教授学生技能,但是更重要的是应该教授他如何成为一个和谐社会的一员,如何助人为乐,帮助其他人,因为你能够做到这一点的。因此,学校就应当有这个规定,就是如果你把这个软件带到学校的话,不能一个人用它,必须跟其他人共同分享。其他任何人只要想要就应该能够用这个软件。如果你拒绝的话,就不要把它带来,在学校中是不允许这样做的。但是为了制定这个规则,学校必须树立一个好的榜样,学校遵守自己的规定。这就意味着学校只会给学生提供自由软件,而且这样会要求学生也是在使用自由软件,如果不是自由软件就不应该带到学校或者是教室里来。我已经讲了我想说的了,稍候我会回答网友的问题。下面请我的朋友洪峰先生来演讲。谢谢大家!

原创粉丝点击