航行报告 3:海上新物种的发现
上个月在 Linux Lunacy Geek Cruise 航行中,我有幸
与 2.6 内核维护者进行了非常有教育意义的交流时间
Andrew Morton 和文件系统专家 Ted Ts'o。我不仅
对 Andrew、Ted 和内核团队表示极大的敬意,而且
更深刻地认识到,Linux 不是我们一直以来
从商业市场中学到的那种操作系统。
意思是,Linux 不是一个产品。
Linux 当然是一个项目。具体来说,它是一个开源的
开发项目。但这是一种技术性的解释,一个名词
复合词。作为一种描述,“项目”并不能传达 Linux 与商业平台之间巨大的
本质差异,例如
微软的 Windows 和苹果的 MacOS。即使 Linux 被打包
成发行版,它仍然是截然不同的。这种差异
大于产品和项目、商业和
非商业、封闭和开放之间的差异。这本身就是本质上的差异。
过去,我将 Linux 的本质描述为一种建筑
材料。此外,我将其描述为天然建筑
材料,类似于木材或花岗岩。我说它存在于人类的本性中,
由人类的思想和工作产生。我仍然相信这一切都是真的。
但现在我相信它比这更深层。
这就是我从 Andrew 和 Ted 那里学到的。在参加了他们的
会议(持续了数小时——这次航行有点像一次速成
海上课程)后,我意识到 Linux 的本质,作为一种建筑
材料,类似于物种的本质。
在我写这篇文章时,商业操作系统的创造者们正在努力
预测尚未有人从事的工作形式。即使是 OS X,它
基于 BSD,也在不断地被修改以预测
尚未有人追求的目的。Windows 开发者在开发
Vista,这款计划明年发布的 Windows 后续产品时,情况也是如此。他们的
产品实践了消费电子产品的营销 101 原则——
创造一些能够孕育需求的东西。对于苹果来说,可能是高清视频
编辑。对于微软来说,可能是多层 Web 服务。对于
Linux 来说,可能是...
怎么样...“消灭错误”?
这是 Andrew Morton 对“什么让你兴奋?”这个问题的回答。
在船上的问题。他的回答对我来说是一个巨大的线索,因为我意识到
Andrew 的工作几乎完全是被动反应式的,而不是主动积极的。
我过去常常想知道为什么 Linus 在早期的航行中发言时,会
用“我不在乎”来回答这么多问题,然后解释为什么他
不在乎,说“那是用户空间”。当时我认为这
仅仅是 Linus 限制他的兴趣范围并避免分心的一种方式。
当然,事实也的确如此。但它也比这更深刻,
现在我越来越清楚了。
用户空间是商业产品存在的地方。目前,在
桌面和笔记本电脑上,世界上大多数用户都在使用
Windows 或 OS X。Andrew 毫不怀疑 Linux 最终也会达到那个程度。
但他也没有屏息等待,因为他
知道进化是以一种令人恼火的缓慢速度进行的。
当我告诉他我在我的 IBM 上使用不同发行版的经历时
ThinkPad T40,以及我最终选择 Novell (SUSE)
桌面的原因时,他认为我的个人例子具有误导性。
相反,他将问题放在进化时间的深远视角中
服务器领域要简单得多。基本上你拥有的是
内核、一个 C 库,以及在其之上的一堆专有和
遗留资源,所有这些都由
实施服务器的组织严格控制。对于桌面来说,组件要多得多。而且它应该
在非常非常非常多不同类型的
硬件上运行。因此,这个问题要复杂得多,无论从
工程角度还是从人的角度来看。然而,如果桌面在商业上更重要,那么
资源就会到位,团队也会到位。在某种程度上,我
希望这种情况会随着 Novell 的转型而出现——因为
Novell 有很多交易台和类似的东西。但是
我怀疑 Linux,对于像您这样的顶级知识工作者来说,是否
是 Novell 打算在未来五年内积极发展的领域。
我认为您是 Linux 认知问题的一个典型案例,在
那方面,基本上,像(您的)机器是最后的边界,
就复杂性和您对其提出的要求而言。连接性,
即插即用...这很困难...桌面方面应该采取的方式应该是在简单的
领域。信息亭的情况。销售点。交易台,
呼叫中心办公桌,诸如此类的东西。一旦我们达到 15%
的市场份额,并在商业上变得重要,
公司将开始更多地投资于它。然后我们将在
那个领域做得非常好,并提升到下一个级别。运行
几个应用程序的办公室工作人员。目前还没有任何自由发挥的空间。然后更多的资源开始涌入,我们达到 15%
在该领域的市场份额。我们一次提升一个级别。最终我们应该能够处理这种机器。但我
认为您试图跳过太多的阶段。对于评论员
像您这样的人来说,期望太高了。从好的方面来说,
作家会一次又一次地来,看看我们已经变得多么好。
情况确实在好转。
内核开发与摩尔定律无关。它与自然
选择有关,它是被动反应式的,而不是主动积极的。内核的每个补丁都是适应性的,响应环境的变化以及
内核是适应性的,响应环境的变化以及
以及对物种的本质和功能进行总体改进的内在需求。
物种的本质和功能。
我们可以将每个补丁、每个新的内核版本,甚至是
最小的增量版本,都看作是一代比其前辈略微更好地适应
世界。看看每个补丁提交——或者
供应商提出的内核适应其需求的每个要求——作为来自环境的输入,内核可能会适应。
某种方式——作为来自环境的输入,内核可能会适应。
我们可以将 Linux 的增长看作是一个成功物种的增长,
由于其繁殖周期,它在适应方面做得很好,这个繁殖周期
让果蝇都相形见绌。操作系统,像其他数字生命形式一样,
繁殖力旺盛。一个 cp 命令或 Ctrl-d,你就得到了一个
副本,随时可以使用——通常进入一个环境,物种
可能会通过补丁不断改进。随着
物种数量的增长和更多补丁的出现,内核会适应并
改进。
这些适应是被动反应式的,而不是主动积极的。这
甚至,或者可能尤其如此,对于大型公司想要的改变。
例如,像 IBM 和 HP 这样的公司可能希望看到对
内核进行主动的更改,以更好地支持其商业应用程序。
几年前,我与一位微软高管进行了一次对话,他
告诉我 Linux 已经成为大型商业供应商的项目,
因为如此多的内核维护者和贡献者受雇于
这些供应商。然而,Andrew 特意澄清,
毫不讽刺地表示,大型供应商与 Linux 之间的共生关系
内核对内核没有任何商业压力。每个
共生体都有自己的责任。为了说明这一点,他举了一个大型公司应用程序的例子
一个大型公司应用程序的例子
[应用程序]团队不想在 [某物] 在
内核中可用之前实施它。我不愿意
在内核中实现它的原因之一是他们没有证明
它对重要的应用程序有显着的益处。他们没有做
工作来证明它将使应用程序受益。他们
说,“如果它不在内核中,我们就不打算做这项工作”。
而我说,“我想看到如果我们把它放在
内核中,它将使内核受益”。
他补充说,“在内核团队中,我们关心代码库的长期
可行性和完整性。我们不愿
因为商业公司可能出于特定原因而将东西
放入内核”。他说供应商参与内核存在一个“有机过程”。
参与内核。
今年早些时候,我与 IBM 的 Dan Frye 进行了一次对话,他在对话中
说了同样的话。他还说,IBM 花费了数年时间才学会
如何适应内核开发过程,而不是反之亦然。
Andrew 解释说
例如,看看在内核上工作的 IBM 工程师。
他们现在了解 [它是如何工作的]。他们不再是 IBM 工程师
在内核上工作。他们是为 IBM 工作的内核开发人员。
我的理论是,如果 IBM 管理层找到一位内核
开发人员,说“听着,我们需要做那个”,这位 IBM 工程师
不会说,“哦,内核团队不会接受那个”。他会说“我们
不会接受那个”。因为现在他们明白了。现在他们理解了我们对
代码库的连贯性和寿命的总体担忧。
代码库。鉴于现在这些公司已经参与其中足够长的时间,
他们了解我们对内核代码库的担忧。如果
IBM 需要一个特定的功能,[公司] 可以着手将其放入
内核。就像他们为 AIX 所做的那样。但是,他们这样做有一些限制,
他们也明白这一点。
但它必须对内核有利。并且有利于支持,正如
Andrew 所说,“重要的应用程序”。
内核空间是 Linux 物种生存的地方。用户空间是
Linux 被投入使用的地方,以及许多其他天然建筑
材料。内核空间和用户空间之间的划分类似于
天然材料和人类用
这些材料制造的东西之间的划分。
更多的线索来自所使用的语言。树。分支。分叉。
错误。可行性。寿命。甚至“内核”也是一个来自自然的术语。
多年前,我与当时的微软的 Jackson Shaw 进行了交谈,
关于嵌入式操作系统。当他要求我列出三个
嵌入式 Linux 的顶级应用程序时,我反驳说,“列出三个
木材的顶级应用程序。”我通过补充说“Linux
生长在树上。”Jackson 没有与我争论,而是顺着我的思路,
得出了结论,“Linux 不是生长在树上。它就是树木本身。”
在船上与这些智者相处了一周后,我
开始更多地了解这些树木是如何进化的。
资源
IT
对话 - Doc Searls:DIY-IT
“巡航
内核,与 Andrew、Ted 和 Gang 一起,第一部分”
Doc Searls 是 Linux Journal 的资深编辑,为
该杂志撰写“Linux for Suits”专栏。他还主持
Doc Searls 的 IT Garage,
该专栏由 Linux
Journal 的出版商 SSC 出版。