回忆&总结05a:自由软件,一种崇高的信念


终于写到了最困难的一篇。……这可能跟我的经历没有太直接的联系,但跟我初中时的价值观和理想有些联系。
同时,这将是最沉闷的第一篇,故分此文为两部分。

写MZ布置的周记中,前9篇都是小学生式的敷衍之作,包括像“五一”节地上钱币无人识捡这类胡编滥造的题材。
但从第10篇开始,写的几乎都是关于电脑特别是自由软件、开放源码这一类的主题。我不清楚MZ到底有没有感到过烦闷,但从她写的评语看出她都是很用心看的,因为她经常提出一些问题以互相交流。
……要先介绍什么是自由软件……
* 软件专利的诞生
现在人们大多都明白什么是软件专利。凭借软件专利,软件开发者可以在软件的创作、传播等方面拥有特权,并从中获利。然而,专利权是从什么时候开始出现的呢?那就要说到Bill Gates。
在某个程序员的聚会中,当时还是个令人敬佩的程序员(或是classic hacker)的Bill Gates无意中遗漏了磁带(还是磁盘,忘了)在聚会场地,磁带里储存着他夜以继日辛苦耕耘的程序。其他程序员发现了这些磁带,并且在没有征得Gates同意的情况下互相传播这些程序。终于有一天,Gates知道了这些事情,表现得很愤怒,终于书写了一封著名的《给电脑玩家的信》(注意:这里的“电脑玩家”大概是computer player而不是computer games player),大意阐述了Gates关于软件应该像已经一样拥有专利的要求,这与当时的观念背道而驰,但却博得了业界的一片赞成的声音。至此,软件专利就诞生了。

* 软件专利的弊端
以今天软件业界的一片繁荣昌盛来看,似乎软件专利真的大有功劳。但在软件专利下,软件变得昂贵,但质量平平,技术支持落后。特别是用户几乎丧失了所有的权利:1)软件复制受到限制,即使只是在家中的2台电脑,你很可能要为每台电脑买一份许可证(恐怕许可证这个概念大家觉得有些奇怪吧);2)你想为自己改进一些功能,但你被禁止,因为所有的代码都是不公开的,而且安装协议明确禁止逆向工程;3)碰到一个bug,即使你多有才华也没办法修正,因为代码放在保险柜里,因此你得看开发商的脸色,想获得已修正的版本吗,你很可能要全额购买一份新版软件。
但软件专利已经发展到这种地步,不是无法回头了吗?
有些人早在软件专利诞生之初就站到了对立面上。

* Real Programmer、Classic Hacker和自由软件
转载自Eric S. Raymond的文章《黑客文化简史》:
“他们从不自称是Real Programmer、Hacker或任何特殊的称号;`Real Programmer’ 这个名词是在1980年代才出现,但早自1945年起,电脑科学便不断地吸引世界上头脑最顶尖、想像力最丰富的人投入其中。从Eckert &Mauchly发明ENIAC後,便不断有狂热的programmer投入其中,他们以撰写软件与玩弄各种程式设计技巧为乐,逐渐形成具有自我意识的一套科技文化。当时这批Real Programmers主要来自工程界与物理界,他们戴著厚厚的眼镜, 穿聚酯纤维T恤与纯白袜子,用机器语言、汇编语言、FORTRAN及很多古老的 语言写程式。他们是Hacker时代的先驱者,默默贡献,却鲜为人知。”
……
“Real Programmer的时代步入尾声,取而代之的是逐渐盛行的Interactive computing,大学成立电算相关科系及电脑网络。它们催生了另一个持续的工程传统,并最终演化为今天的开放代码黑客文化。”
之所以称Classic Hacker的原因是与现在的所谓搞破坏的Hacker区分开。
现在的Hacker即使招安以后,还只是一个安全检查员的身份,说白了就是辅助的角色,相比之下,classic hacker简直担当着创造者的角色。
“Hacker时代的开始於1961 年MIT出现第一台电脑DEC PDP-1。MIT的Tech Model Railroad Club(简称TMRC)的Power and Signals Group买了这台机器後,把它当成最时髦的科技玩具,各种程式工具与电脑术语开始出现,整个环境与文化一直发展下去至今日。 这在Steven Levy的书`Hackers’ 前段有详细的记载(Anchor/Doubleday 公司,1984年出版,ISBN 0-385-19195-2)。”
“从MIT那台PDP-1开始,Hacker们主要程式开发平台都是Digital Equipment Corporation 的PDP迷你电脑序列。DEC率先发展出商业用途为主的interactive computing及time-sharing操作系统,当时许多的大学都是买DEC的机器, 因为它兼具弹性与速度,还很便宜(相对於较快的大型电脑mainframe)。 便宜的分时系统是Hacker文化能快速成长因素之一,在PDP流行的时代, ARPANET上是DEC机器的天下,其中最重要的便属PDP-10,PDP-10受到 Hacker们的青睐达十五年;TOPS-10(DEC的操作系统)与MACRO-10(它的组译器),许多怀旧的术语及Hacker传奇中仍常出现这两个字。 ”
……
“此时在新泽西州的郊外,另一股神秘力量积极入侵Hacker社会,终於席卷整个PDP-10的传统。它诞生在1969年,也就是ARPANET成立的那一年,有个在AT&T Bell Labs的年轻小夥子Ken Thompson发明了Unix。

Thomspon曾经参与Multics的开发,Multics是源自ITS的操作系统,用来实做当时一些较新的OS理论,如把操作系统较复杂的内部结构隐藏起来,提供一个介面,使的programmer能不用深入了解操作系统与硬体设备,也能快速开发程式。

译:那时的programmer写个程式必须彻底了解操作系统内部,或硬体设备。比方说写有IO的程式,对於硬碟的转速,磁轨与磁头数量等等都要搞的一清二楚才行。

在发现继续开发Multics是做白工时,Bell Labs很快的退出了(後来有一家公司Honeywell出售Multics,赔的很惨)。Ken Thompson很喜欢Multics上的作业环境,於是他在实验室里一台报废的DEC PDP-7上胡乱写了一个操作系统, 该系统在设计上有从Multics抄来的也有他自己的构想。他将这个操作系统命名Unix,用来反讽Multics。

译:其实是Ken Thompson写了一个游戏`Star Travel’ 没地方跑,就去找一台的报废机器PDP-7来玩。他同事Brian Kernighan嘲笑Ken Thompson说:「你写的系统好逊哦,乾脆叫Unics算了。」(Unics发音与太监的英文eunuches一样),後来才改为Unix。

他的同事Dennis Ritchie,发明了一个新的程式语言C,於是他与Thompson用C把原来用汇编语言写的Unix重写一遍。C的设计原则就是好用,自由与弹性, C与Unix很快地在Bell Labs得到欢迎。1971年Thompson与Ritchie争取到一个办公室自动化系统的专案,Unix开始在Bell Labs中流行。不过Thompson与Ritchie的雄心壮志还不止於此。”
……
“致命一击终於来临,1983年DEC宣布:为了要集中在PDP-11与VAX生产线, 将停止生产PDP-10;ITS没搞头了,因为它无法移植到其他机器上,或说根本没人办的到。而Berkeley Univeristy修改过的UNIX在新型的VAX跑得很顺,是 ITS理想的取代品。有远见的人都看得出,在快速成长的微电脑科技下,Unix一统江湖是迟早的事。
差不多在此时Steven Levy完成“Hackers” 这本书,主要的资料来源是Richard M. Stallman(RMS)的故事,他是MIT AI Lab领袖人物,坚决反对实验室的研 究成果商业化。
Stallman接著创办了Free Software Foundation,全力投入写出高品质的自由软件。Levy以哀悼的笔调描述他是`the last true hacker’,还好事实证明Levy完全错了。
Stallman的宏大计划可说是80年代早期Hacker文化的缩影 — 在1982年他 开始建构一个与UNIX相容但全新的操作系统,以C来写并完全免费。整个ITS 的精神与传统,经由RMS的努力,被整合在一个新的,UNIX与VAX机器上的 Hacker文化。 微电脑与区域网络的科技,开始对Hacker文化产生影响。Motorola 68000 CPU 加Ethernet是个有力的组合,也有几家公司相继成立生产第一代的工作站。 1982年,一群Berkeley出来的UNIX Hacker成立了Sun Microsystems,他们的算盘打的是:把UNIX架在以68000为CPU的机器,物美价廉又符合多数应用程式的要求。他们的高瞻远嘱为整个工业界树立了新的里程碑。虽然对个人而言,工作站仍太昂贵,不过在公司与学校眼中,工作站真是比迷你电脑便宜太多了。在这些机构里,工作站(几乎是一人一台)很快地取代了老旧庞大的VAX等timesharing机器。”
RMS所进行的这个宏大的计划就是著名的GNU计划。在开宗明义的《GNU宣言》一文中,RMS阐述了关于自由软件(Freeware,常有人误以为是免费软件)的理想:任何人都可以无限制地修改、复制软件,只要你在重新发布软件的时候毫无保留地公开软件的所有源代码。而它的法律依据则是GPL协议。今天很多人用盗版的方式对抗封闭源码,但这不符合RMS的原则,他宁愿重建从操作系统到周边工具软件、应用软件等所有的一切,推倒重来,白手起家,也不愿违反法律。
GNU操作系统的核心叫做GNU Hurd,是一个十分先进的操作系统内核,但开发进度缓慢。大概在20世纪90年代初,一个叫Linus Torvalds的芬兰人在GNU各种公用程序的基础上完成并发布了第一版的Linux内核,后更名GNU/Linux,作为GNU操作系统的一个内核。十多年来,GNU/Linux一直在全球众多支持者的努力下不断地完善和进一步地推广,吸引了IBM等大公司的注意,更诞生了Red Hat这个靠卖Linux套装盈利的公司。

6 comments

  1. JohnWu同學雖然我不知道你是誰你也不知道我是誰我也只是偶然進來的但是…請允許一個電腦白癡呆掉兩分鐘…

  2. 继续挑战长度的JW……27号去花街吧,那时候LJ应该康复了……JQ也来吧。要不要携带德哥?

  3. To 逆行時間:只要是没有分类的文章就是给所有人看的,也希望所有人都看得懂。To 晴:LJ是我、翼狼乃至德哥的小学同学。

  4. 哩项日志,净系睇到第一段就有D晕晕地我同楼上一样系个电脑白痴楼主以后去考D有关电脑既大学系一定好有前途“`

Helen 发表评论 取消回复