日期:2014-05-16  浏览次数:20787 次

[Linux] Gentoo的前世今生
原文链接:Making the Distribution
原作者: Daniel Robbins
译者:    Linky_fan

这篇文章的作者是Daniel Robbins,作为Gentoo公司的CEO和创始人,Robbins的经历充满争
议,这包括他见证了开源软件发展的历史,他也曾经供职于Microsoft,甚至由于对游戏的
挚爱而但当SONY的首席图形设计师。

此文的英文原文完成于2001年11月,文章详尽的叙述他在Gentoo的出世和成长历程中经历过
的种种磨难和变迁,字里行间带有对软件自由理念的热爱和狂热追求,绝对是一篇针对自由
软件开发者的传颂于世的精神宝典。

----------

Making the distribution, Part 1

我和Linux

现今对每一个linux爱好者来说,linux不再只是一个字面上的名称,她所呈现的一切对很多
开发人员来说已经超过了他们所接触过的任何东西, linux比它们更强大、更令人着迷和称
赞。当我在新墨西哥大学担任系统管理员时便与linux结下了不解之缘。那时因为我们的NT
服务器运行得非常棒,我的手头上也有了很多空余的时间可以加以利用,就这样第一个
linux操作系统被我安装到了一台Pentium 166的主机上,接下来的不断学习和深入理解的过
程使我对linux越来越着迷了......

一开始学习了linux下的很多细节的东西:网络访问、执行备份、搞定samba等等。接着我建
了一个qmail和apache的服务器并学习了 python编程和shell编程。我还搭建了一个小型局
域网接着把linux请回了家,在尝试过很多发行版后我最终选择了Stampede Linux这个版本
(注:该版本从2001起就没有再更新了)详细的消息可以看一下
http://distrowatch.com/table.php?distribution=stampede
你知道学习linux的过程是怎么样的吗?:第一、努力搞清楚linux基本的东西;第二、当你
已经有了相当好的掌握程度之后,学习定制你的linux,知识的累积会和你深入的程度成正
比。由于linux并没有隐藏任何东西,当linux对你来说变得越来越得心应手之后就可以开始
探究技术和那些实现这些技术的工具了。

Linux的潜能

Linux提供了很多以前我所没有见到过的东西,如果一定要我用一个词来形容这些不可思议
的话,我选择“潜能”这个单词:用来维护、改变、提高事物的能力,这种能力甚至能够冲
破一些固有规则的约束。 当我把kernel升级到一个更新的版本时,简简单单的就把我眼前
的这个linux的性能提升了很多,更为令人兴奋的是这种改变几乎每时每刻都在进行着。而
我也正是这种进步的一份子,伴随着linux的前进而不断进步着, 对我而言这种感觉真的很
棒。

如果你和我是同一类人,在你进入开源世界和linux世界之前大概看过位于Redmond和
Cupertino的那些大公司们准备的下一代操作系统,它们确实如你所愿般的完美,然而那些
东西却始终都只是一个虚幻的影子而已。然后就在我们慢慢等待的过程中linux来到了我们
面前。虽然等来的这个精灵并不如我们预料的那么完美,但是她却提供给了我们这些喜欢动
手hack的男孩和女孩一个亲手改变她的机会。就这样我们一边期待着一个更强大的操作系统,
一边津津有味的hack我们的linux。日子一天一天过去,直到某天我们才突然发现原来期待
着的那个强大的操作系统其实就在我们自己的手中,大家不约而同的笑了起来,也决定了继
续在linux这条路上走下去。

Linux的人文艺术

我学到的另一件事就是Linux对人们的影响,这个话题可能听上去还真有点新鲜,是吧?
Linux不仅仅只是一堆源代码的,它其实就是一个“社区”,从一开始的依赖这个社区解决
我们提出的问题到付出我们的时间和经验帮助他人,渐渐的我们也成为了这个社区的一部分。

IRC (Internet relay chat)既是一个交朋友的好地方也是一个很打发时间的场所。
irc.openprojects.net上的 #stampede频道已经成为了我在网络上正式的安乐窝^-^。那是
我解答自己疑问的地方,也是第一次回答朋友问题的地方。#stampede频道需要很多有安装
经验的用户去帮助那些新手解决他们刚刚开始安装后碰到的各种各样的问题。由于那些新手
在安装过程遇到的问题在irc中越来越普遍,原来很多有经验的Stampede Linux用户渐渐失
去了他们一开始的热情。但是我依然还是很兴奋,因为很多菜鸟的问题我都知道解决的办法,
要我忍着不回答那些问题我可做不到!当然我也并不是唯一的那个对解决新手问题乐此不彼
的人,同样的家伙也有不少。我也承认自己也有那么点私心,想从那些更有经验的家伙们
(不是指Stampede的开发人员)身上学到更多的东西。

如何起步

当有朋友问我如何才能加入一个开源项目时,我告诉他们的是首先是找一个能为他人做些什
么的地方,就算那里只是解答一些很基础的问题。一份诚挚的渴望帮助他人的愿望是通往
Linux社区的通行证,因为这份诚挚的愿望同样也扎根在每一个开源项目开发人员的心中
(不仅仅只是Linux项目),也应该扎根在那里。

沿着这条路走下去不可避免的你会遇到比你更有经验的同志,你将会从他们身上学到更多的
知识,就像以前新手从你身上学习时一样。另一方面,当你积累起更多的经验时在碰到某些
问题时你就会用一个新方法去解决它而不是用以前惯用的一套思路。你遇到的一些开发人员
有时会提出一些建议,有时又或者会需要一些帮助,他们更可能会邀请你加入他们的开发队
伍;如果你的助人为乐成为焦点时,他们可能会笑着从你身边经过;如果你帮助了很多很多
人之后,你在社区内肯定会备受瞩目。在Stampede和我身上这些故事都曾经发生过。

渐渐的我在Stampede的开发越来越深入,不久以后我就成为了一个正是的Stampede开发人员。
在受到了Stampede的领导者 Matt Wood的鼓励后,我开始对用于Stampede Linux软件包的原
有的.slp机制进行升级。当时,.slp软件包格式包含一个.tar.bz2的软件包和后面的一个包
含软件描述及软件包创作者等等在内的一个定长的页脚。这种实现的方式有两个主要问题:
页脚部分实际上包含的内容根本达不到定长所约定的字节数;该格式没有预留任何扩充余地
(也就是说如果未来没有办法加入一些可能需要的额外信息)。显然这些问题需要动一次大
手术了,活活。

和那些老资格的Stampede开发人员工作一段时间后,我拟了一个解决上面那些问题的草案。
过了一阵子我便开始用Python先编写了一些原始的实现方案,新的格式(代号slpv6)有些类
似与Amiga世界的IFF格式。下一代的.slp格式包含了了2 32(注1)个字段,字段种类为2
32种,每个字段最大数据段同样为2 32bytes。新的格式不仅具有良好的扩充性而且比纯文
本更加紧凑和简洁并易于解析。二进制代码和文本都能存储在这样的格式当中,该架构对其
本身在未来的进一步发展带来了无限的可能性。我的想法是把这个新版的动态header加入道
打包文件的结尾部分,从而这个新版本的.slp格式未来可以为 Stempede用户服务相当一段
时间并且同时又能和标准的UNIX档案文件保持不错的兼容性。

丑陋的一面

slpv6的开发进展很顺利,所有的资深开发者看到我取得的成果后都很高兴。不幸的是,两
名刚加入的Stampede开发者想要自己掌控slpv6项目。由于不欣赏我选择的开发方向,他们
花了很大劲诋毁和打击这个新的slpv6系统,虽然我也用了大量时间一边继续我的开发一边
加入讨论一边回应他们的攻击,但是这样做也没从根本上解决问题。最后一切都变的很明了,
他们只是很擅长辩论,并且显而易见的是除非走他们自己的路子,不然是不会罢休的。幸运
的是我的项目依然得到了资深开发人员的认可和支持。可是这些讨论渐渐地使我背上了一些
包袱,同时对Stampede的开发也产生了一些不好地影响。唉。。。。。。。