Linux,Linux……,我们已经越来越多地听到这个名字,由陌生到熟悉,再由熟悉到陌生。
Linux是Internet促成的一个光芒四射的伟大作品,Linux已经成为这个时代最伟大的奇迹之一。
Linus Torvalds
在Linux问世的那一年,它的缔造者Linus Torvalds刚刚27岁,……
故事是从地球北端的冰天雪地开始的,其内容有点像一些玩世不恭的Hacker在鼓捣生命中最爱的源代码一样。Linus Torvalds是芬兰人,他的家离赫尔辛基市中心走路还不到十分钟,那是一条叫做Kalevagatan的街道。一列有轨电车准时地沿着街道行驶着,时而经过一幢浓荫遮蔽的旧宅,时而又穿过阳光灿烂的广场,Kalevagatan街表现出的是19世纪的马车和现代楼群混合形成的那么一种情调。Linus和妻子居住在一所看起来似乎是为在校学生们修建的公寓里。楼梯间停放着一溜儿自行车。看上去,Linus也更像是个学生:中等身材,浅灰色的头发,蓝色的眼睛在圆圆的近视镜片后面炯炯有神地闪烁出坚定而富有智慧的光芒,只有那浓黑茂密的眉毛,与那张略带孩子气的脸庞显得有些轻微的不协调。
在他居室的墙边,一溜儿排开的是无数的书籍,空地被一些画和零碎的小物件以及十分廉价的窗帘充填着和分隔着,一对扶手椅子之间是一只干瘪的鳄鱼和两只傲慢的小猫,旁边是几台计算机,其中有3台PC,一台大功率的苹果机,还有3台基于Alpha处理器的微型机。最有趣的也是一个十分引人注目的物件,就是将这些计算机和墙壁上的电话插座连接起来的导线。这是一条256KB的Internet访问线路,由当地的一家ISP免费安装并支付使用费用,这是他们对这位创造了Linux的发明家的微小奖赏。
Linus许多一成不变的初级编程岁月都是陪伴着一台古老的1984年制造的计算机度过的,但是最终引导他跨入Linux之门的事件发生在1990年秋天。那时他在赫尔辛基大学修Unix课程(取得计算机科学硕士学位)。 那年秋天,大学里刚刚安装了一台运行Ultrix的MicroVAX计算机,而这台计算机不能同时为16个以上的用户所使用,因此有时不得不为了上机而排队等候。
在他主修的课程中,有一门是操作系统课,专门研究程序的设计和执行。这门课程提供的是一种称为Minix的初期UNIX系统开发使用指南。只是从那个时候开始,他才真正破例得到了一台属于自己的PC,而直到那时他还是有一种抵触情绪,为得到一台PC而感到心有余悸。他解释说那是因为”如果我早一些有PC用,我可能就会陷入到这个糟糕的机器以及糟糕的MS-DOS操作系统中去,从而学不到一点别的东西。”
Minix的功能是很有限的,因为它仅仅是为了操作系统的教学而设计。不过,Minix似乎奏响了一种旋律,在1978年它推出后的两个月中,世界范围内就有超过40000的用户加入了一个有关的新闻组,无数电子函件讨论的一个问题就是如何为它添加这样或那样的功能。
Linus开始通过自己的工作来进行试验,他把Minix当做一种基础来开发一种新的程序。他回忆说:”我完成了两个过程,而后让它们进行写操作,并且利用一个在任务之间切换的时间记录器。一个过程往上写A,另一个过程写的是B,这样我看到的就是AAAA、BBBB等内容。”
Linus说他从不打算建造内核,即一个操作系统进行真正的处理和控制的那个部分。相反,他编程的内容只是为了一种纯粹实际的需要,就是阅读Usenet新闻组。这种需求驱使着他修改最先写出来的两个试验性的过程。”在某种程度上,我注意到我有这个能力。”
是的,Linus早先就一直是一个真正的Hacker。还在他十几岁的时候,他就在极端困难的条件下编写了一个Commodore Vic-20微程序,当时使用的是汇编语言。之所以使用汇编语言,主要原因是他那时还不知道有其他的编程工具可用。
到了1991年,他需要一个简单的终端仿真程序来访问新闻组,于是他就写了一个,还是以从前建立的两个过程为基础来应急。正如Linus所说的那样,这样做剩下的工作就只是将A们和B们变成别的东西,这显然不是一件复杂的事情。”一个过程从键盘读信息,并将信息发送到Modem,同大学里的计算机建立联系;另外一个过程则从Modem读数据,接收反馈回来的消息并发送到屏幕”。
1991年的夏天,也就是在他得到第一台PC之后的6个月,Linus发现他需要下载某些文件。但是在他能够读写磁盘之前,他回忆说,”我不得不写一个磁盘驱动程序,后来就写了个文件系统以便能够阅读Minix文件系统及其中的文件。”他解释说,这似乎是唯一合乎逻辑的工作。”当你有了任务切换,有了文件系统和设备驱动程序后,这就是UNIX,或者至少是其内核。”
于是,Linux就诞生了。要不是Linus在Minix新闻组里提到了这个羽翼未丰的操作系统,它很可能是短命的。当时他在赫尔辛基技术大学的FTP服务器上获得了一个空间,放置了这个操作系统,让人们下载Linux操作系统的第一个公开版本。”Linux是我使用的笔名”,Linus回忆说,”但是如果我真的将其用于正式的名称,人们会认为我是一个狂妄的家伙,而不会严肃地看待这个操作系统。所以我选择了一个十分拗口的名称—Freax,含义是free + freak + x”。”这简直是有病!”这个名称得到管理FTP站点的Ari Lemmke如此的评价。他不喜欢这个名称,所以继续使用Linus的笔名代替。
到了1992年1月份,只有100个左右的用户使用Linux,但是他们提供了一个关键的在线工作开始的典礼。网络上的任何人在任何地方都能够得到基本的Linux文件,电子函件使得他们能够评论并提供改进意见,而Usenet为这种讨论提供了一个论坛。
早期的那些上载内容及评论是决定性的,特别是此后Hacker们发送来的修改代码问题的补丁程序。Linus打算将这些修补工作集中起来将他的操作系统好好地修改一下。作为一种思想技术成果的开端,Linux正在转变为一种具有同样头脑的Hacker们的运动。
Linus认为,操作系统的内核本身并没有多大的用途,即使不断地通过来自Hacker的补丁程序加以完善,也提高不到哪里去。其部分原因是作为一个完整的操作系统,几乎所有需要的其他事情都只有等待。这些处于等待过程中的程序是自由软件基金会GNU工程的一部分。GNU不是UNIX,不是那个1984年由Ri**d Stallman作为一种针对某些由销售商强加给软件用户某些规则引起的反感而开始出现的UNIX。GNU的目标是写出一个完全免费的UNIX版本—内核连同所有的相关元素,是一个能够给用户共享并且修改的自由,而不是添加限制并且将这些限制强加给他人的UNIX版本。Linus没有等待别人写出专门为其操作系统而设计的应用程序,而是将Linux加以改变使之完全适应GUN已经存在了的应用程序。”我从来不修改程序,而是改变内核使之能够同程序一道工作。Linux永远也不会是任何糟糕事情的首要原因。”
应用程序的进展使得Linux获得了一个类似于Windows的图形前端,这使得其被广为接受。而直到那时之前,Linux一直是通过非直观的命令行提示符输入文本指令,这很像DOS操作系统。GUI是由Xfree86工程组提供的,这个工程组是一个非赢利的组织,它为Windows系统的PC版本提供免费软件。
事实证明,GPL对于Linux的成功起到了极大的作用。首先,它启动了一个十分繁荣的商用Linux阶段。尽管 Linux在Internet上是可以免费得到,但是花费30美元购买一套CD-ROM和从网络上下载几百兆字节的代码相比通常要便宜很多,而且也快得多。其次,GPL还为编程人员提供了一种凝聚力,诱使大家加入这个充满了慈善精神的Linux运动。使用许可保证了他们的工作成果将能够自由地扩散,而不是被一些不择手段的商业组织不公平地占有。在某种意义上,GPL为后来的在线Linux Hacker们提供了一种编程模式。许可明确地规定,在他人代码的基础上建立或者完全地引用他人的代码是合法的,甚至可以通过这种方式赚钱(毕竟Hacker们也需要吃饭)。但是你不能打破Hacker们的基本的软件规矩:源代码必须可以免费获得以便继续完善。
1994年3月, 正式的Linux 1.0出现了,这差不多是一种正式的独立宣言。截止那时为止,它的用户基数已经发展得很大,而且Linux的核心开发队伍也建立起来了。在linux包含的数以千计的文件中,有一个名为Credits,其中记录了主要的Linux Hacker们的姓名和电子函件地址。这个列表中包含了100多个名字,世界各地的都有。此外,Linux中包含有一系列的十分浅显易懂的FAQ、Howto和通用的帮助文件。
开发队伍的增长反映了Linux本身的有组织性,现在不能再说它是混乱和自发的了。Linus开始有计划地选择并且依靠一些hacker们,早期的Linux hacker之一的Michael K. Johnson这样描写到:”这是一些被信任的副手,Linus从他们那里可以得到大量的补丁并且相信这些补丁的功能,结果是副手们反而创造了内核中较大的部分。”
Linux的发展相对而言就十分简单了。所有的hacker们自由地鼓捣任何附加的性能或予以改进,即使是最初阶段,新代码对于试图提出意见的用户也是免费下载的:beta测试不是逮住最糟糕的问题的最后步骤,而是整个完善过程中的一个有机组成部分。
当几个人在相同的领域内工作时,他们可以竞争或者合作,通过物竞天择的达尔文定律来决定最好的代码将取得胜利。”Linux和免费软件联盟可以被认为是真正的英才教育”,1994年建立了销售最流行的Linux版本的Red Hat 软件公司的Marc Ewing如是说。曾经编制了Linux内存管理代码的Bruno Haible说得更明了:”当主要的作者不再改变其代码时,其他的人却还在继续改进”。
这种自由的氛围已经使得成千上万的用户将Linux运行在千奇百怪的硬件配置中。Linux支持所有的东西,从Intel 386到Pentium pro处理器,从Alpha Digital公司的RISC、SPARC(Sun公司的RISC芯片)、MIPS(Silicon Graphics公司正在开发的RiSC芯片)到MkLinux (一种Linux版本)。
通过网络,用户能够将任何问题提交给最了解这种问题的人—作者—那里。这可以成为一种巨大的补充,也可能是一种不同寻常的消极因素。严肃的Hacker们喜欢交换心得,常规用户则希望问题尽快得到解答。一个可靠的Linux帮助平台可能帮助一个销售商将Linux带给大众用户。Linus是他所创造的整个开发过程中的总领导人,但他几乎从来不干预。在某种意义上,他解决了所有的前沿性问题,发挥了别具一格的有利作用。
升级的步伐是迅速的,从最早期的开发研制到后来每周都要出现的补丁程序,都说明了这一点。Linux以常见的版本号形式推出,例如1.1、1.2等等。当然还有更复杂的次版本号系统,例如1.1.12等。当功能有一个飞跃的时候,主版本号升级,这个过程通常由Linus来负责。这种双向的发展过程已经使得Linux差不多成为最先进的和最稳定的系统,胜过今天其它任何版本的UNIX系统。现在,Linux正在进入一个纯粹的发展阶段,而不是当初那样跟在UNIX的后面亦步亦趋。
|