Linux Lunacy 2003:纵览全局,第一部分

“关键在于玩得开心,并在过程中学到很多东西”。这是 “船长” Neil Bauman 谈到 Geek Cruises 时所说的话,他于 2000 年 5 月启动了这个项目。他想将这两个基本的极客需求结合起来,并将其推向一个不太可能的极端:在一艘游轮上举办为期一周的课程和研讨会,并在世界上一些最能激发思考的环境中航行。
这就是今年九月发生的事情,当时 Linux Lunacy III 在 M.S. Amsterdam 号上游览了阿拉斯加的内湾航道,这是一艘 780 英尺长的荷兰美洲航运公司的游轮。Linux Lunacy I (2001) 和 Linux Lunacy II 也发生了同样的事情,它们覆盖了加勒比海东部和西部。明年 Linux Lunacy IV (2004) 将再次举行,它将从威尼斯出发,并在地中海东部的港口停靠。LL4 将是 Geek Cruise 在欧洲的首次航行。与前三次一样,它将由 Linux Journal 赞助。
大多数贸易展会议持续一到三或四天。“花整整一周时间来处理一切——包括专业和休闲——你可以享受每一个停靠港,你可以预订的每一次岸上游览——并且仍然可以在船只在港口之间航行时完成全部课程”,Neil 说。“我们安排好一切,让所有的讲座和会议都不会与岸上游览冲突。我们不希望任何人不得不在学习和玩得开心之间做出选择。我们希望每个人都能两者兼得。”

2003 年 Linux Lunacy 游轮上的 Linux 记者
Linux Lunacy III 的课程涵盖了更广泛的 Linux 平台——简称为 LAMP。(即 Linux、Apache、MySQL、PHP、Perl、Python 以及套件中包含的所有其他内容。)Ted T'so 用了一整天(两个长会期)讲解 Linux 内核,并另外增加了一场关于文件系统的讲座。David Axmark 讲授了 MySQL。Randall Schwartz 讲授了 Perl。Guido van Rossum 讲授了 Python。Kara 和 Steven Pritchard 提供了 LPI 认证课程和考试。Bruce Perens 介绍了 Linux 在微型嵌入式应用中的应用,以及国际无线连接。Mick Bauer 教授了 Linux 安全课程。David Fetter 教授了 Linux 数据库。Greg Haerr 教授了编程,Keith Packard 教授了 X 中的图形和 Linux 中的字体。
在高层次的观点方面,Charles Roth 就在线协作发表了演讲。Ian Shields 介绍了 IBM 启动 Linux 应用程序开发的快速方法。(IBM 也是联合赞助商。)Paul Kunz 来自 斯坦福线性加速器中心 (SLAC),他发表了关于将 Web 带到美国的演讲。我发表了关于 Linux 在企业中的应用的演讲。Linus 举行了他现在每年一度的关于 Linux 总体状况的问答。(该讲座的文字记录将在本周晚些时候发布在本网站上。)
会议是与那些几乎没有时间陪伴家人,更不用说其他任何人的人相聚的机会。但是,如果你把会议放在游轮上,家人可以一起来。Linus、Guido、Bruce 和许多其他人带了他们的家人。通常我会带我的家人,但今年我带了我的姐姐,她恰好曾经是 Charles Roth 担任首席技术官的公司的首席运营官。因此,这次游轮是与朋友和家人分享美好时光,并在旅途中结交新朋友的好方法。
甚至在停靠港的朋友也是如此。上次航行中我们与 牙买加 Linux 用户组 会面。这次我们与两个太平洋海滨 LUG 会面,分别是朱诺的 JLUG 和 维多利亚的 VLUG。
“一次好的游轮旅行是一次情境的巨大改变”,Neil 说。“你可以利用这个环境来玩得开心,或者它可以让你以新的方式思考熟悉的主题。这是极客喜欢乘坐游轮的原因之一。他们无论如何都会思考,但在新颖的环境中,他们经常会产生新的视角和新的想法。”
以下是关于我们每天去哪里以及沿途学到了什么的每日记录。
利用建筑挑战重力的冲动始终投入到巨型建筑中,从金字塔到大教堂,再到飞艇和高层建筑。现在,世界上一些最大的建筑物都有船体。将今天的巨型游轮视为高层建筑的水上等价物:一个长浮体。
玛丽皇后二号 最近在法国下水,创下了游轮尺寸的新纪录。它长 1,131 英尺,高 21 层,可容纳 2,600 名乘客,总注册吨位为 150,000 吨。(“grt”实际上是体积而不是重量的度量单位。一个 grt 是 100 立方英尺。)一周前,皇家加勒比通过 宣布 购买 Ultra Voyager,抢了 玛丽皇后二号 下水的风头,后者可容纳 3,600 名乘客和 1,400 名船员。公告中没有提及总吨位,但确实表示该船比该航运公司的其他 巨型游轮 大 15%,后者的吨位在 140,000 grt 左右。星公主号 是 P&O 公主 舰队的大型游轮之一,停靠在 西雅图 阿姆斯特丹号 的后面,它跟随我们完成了整个航程。星公主号 只有 110,000 吨,从各个角度看起来都很巨大,包括从上方看到的角度。在朱诺,我们能够从罗伯茨山缆车顶 俯瞰,看到船顶甲板上的 高尔夫球场。
为了将这一切放入 视角,泰坦尼克号 为 46,329 grt。USS 尼米兹号 —— 世界上最大的航空母舰 —— 为 95,000 grt。
如果说航海巨型化存在限制因素,那就是 巴拿马运河。它在上个世纪的第一个十年建成,旨在容纳一个船闸中的多艘船只,现在它的作用与机场柜台的箱子相同,后者会告诉你随身行李尺寸的外部限制。希望通过运河的船只必须适合长 1,000 英尺、宽 110 英尺、深 70 英尺的船闸。它们可以在码头线上方五个方向扩展,但在其他方面需要适合该箱子,并且四周至少留出几英尺的空隙。当然,不打扰运河的船只可以尽可能大。目前的记录保持者是 Jahre Viking 超级油轮,长 1,504 英尺,总注册吨位为 260,851 grt。毋庸置疑,它不是一艘符合运河标准的船只。
虽然 The Cruise People Ltd. 将 阿姆斯特丹号 放在他们最大的客船名单的末尾(它排名第 88 位),但它仍然非常庞大,超过 61,000 grt。这艘船的乘客容量为 1,380 人,三组电梯(每组四部,共十二部)通往十一层楼,两个游泳池,一个赌场,几个巨大的餐厅,以及足够的会议室、酒吧、夜总会、剧院和其他设施,足以媲美高档酒店的街区。阿姆斯特丹号 也是 荷兰美洲 航运公司的旗舰,船龄不到三年。我们在船上被告知,舰队中其他船只上的员工因表现出色而获得奖励,可以升到 阿姆斯特丹号 上。前两次 Linux Lunacy 旅行乘坐的是 M.S. Maasdam 号,这也是一艘非常出色的船只。但 阿姆斯特丹号 显然更胜一筹。服务非常周到和专业,几乎每天都能看到有人清洁柜台或擦亮固定装置。食物也很棒,特别是考虑到近乎持续不断地喂养大量人群。
西雅图这个臭名昭著(虽然并非 特别)潮湿的城市,今年夏天异常干燥。虽然干旱烧毁了无数的草坪(西雅图没有人洒水),但也为我们提供了近乎完美的出发天气。雷尼尔山 在我们 驶离城市 并 驶出港口 并向北驶入普吉特海峡时,显得格外雄伟。
我们在出港航道上的同伴是 集装箱货轮,它们为软件业务提供了一个有益的教训,传统上软件业务一直厌恶 商品化 对 巨大利润率 构成的威胁。然而,西雅图港,像世界上所有的船舶和货运站一样,充分证明了商品作为商业基础生态系统的多产性。
当然,比特本身可能像空气一样自由——甚至更自由,因为它是一种可克隆的商品——但这并不意味着在 存储、运输、管理 或 构建 它们方面无利可图。尽管将微软(尤其是在西雅图)视为典型的软件公司很诱人,但更好的视角是 IBM、Oracle、SAP 和 Computer Associates——所有这些公司都在不断调整,以利用 Linux 作为构建材料和开源作为构建方法。
在晚上在 Crows Nest 酒廊举行的鸡尾酒会之后,随着美国和加拿大海岸城镇的灯光在星空下逐渐消失在黑暗中,我下到网吧,在那里我注册了为期一周的 Wi-Fi 网络访问权限(这是 Geek Cruising 的基本恩典)。我在那里查阅了软件商品化,找到了 “商品化:创新者的机会”,作者是 Ian Murdock(Debian 的创始人)。他的结论是:
技术人员需要思考的关键是,在他们的商业模式中进行创新,其程度不亚于(如果不是超过)在他们的技术中进行创新。当然,对于技术人员来说,只考虑技术是很自然的陷阱,但技术只是技术业务的一小部分。寻找你竞争对手的阿喀琉斯之踵,这通常是一个瞬息万变的世界中过时的商业模式,而不是技术。仅仅用技术来攻击你的竞争对手,就是正面冲撞巨人,这种方法注定在绝大多数情况下都会失败。
这对于 John Carroll 的 “软件的商品化” 和 Bruce Sterling 的 “自由的阴暗面”(通过相同的搜索挖掘出来)都是一个很好的答案。两位作者都担心自由和开放结束后软件业务会发生什么。Ian 的简单答案是利用代码以外的东西。这并不是 那么 难以掌握的概念。(见鬼,Ian 自己通过 Debian 和 Progeny 做到了。)我最喜欢的 Don Marti 的话是“信息想要卖 6.95 美元”。看着货轮驶过,我发现自己在想,“这就是你的基本集装箱的成本。”
由于我们的游轮是从西雅图而不是温哥华(阿拉斯加游轮的另一个主要出发点)出发的,我们跳过了内湾航道的下部,并通过出海和绕过温哥华和夏洛特皇后群岛前往朱诺。船桥(自动地,使用每个客舱电视上的特殊频道)将海况描述为汹涌,海浪在 7.5-12 英尺范围内。有些人感到晕眩,但前台免费赠送了大量晕船药。我乘坐过许多其他船只(大型和小型),其颠簸程度要糟糕得多。
在航程的这一段中,唯一的休闲缺点是游泳池关闭,相反,游泳池为聚集在丽都甲板上的人群提供了极好的娱乐,他们研究 戏剧性的海浪运动,游泳池已成为船上的实验室。

丽都甲板上的波浪池
通过将上面的照片的时间调整到 阿姆斯特丹号 船首(右侧或前方)的最大下沉,我稍后可以使用我值得信赖的量角器判断出,这些效果是由 2° 的纵倾角产生的。换句话说,情况并没有看起来那么糟糕。
那天早上,我参加了 Ted T'so 的 Linux 内核入门课程。对于像我这样的非技术类型(我在这里用相对术语来说,我的大多数非极客朋友认为我像车间手册一样技术),参加这样的课程就像通过沉浸式学习语言。正如 Don 在他的 游轮报告 中指出的那样,Ted 的教程是他多次讲授的教程(Don 在 2002 年 6 月写过一篇),每次都随着内核的发展而更新。这次游轮教程是基于 Ted 今年 6 月在 Usenix 上的 教程。那是在我 7 月份在 O'Reilly 开源大会上看到 Ted 的演讲的前一个月。在那次演讲中,Ted 说 2.6 内核应该会在“几个月内”发布。鉴于那些月份刚刚过去,我很好奇想知道他对这个问题的看法。
好吧,Ted 和 Linus 都没有给我们提供绘制渐近线的方法。“准备好了就发布”是他们两人的报告。(本周晚些时候在关于 Linus 演讲的部分会有更多介绍)。无论如何,Linux 都是一个永无止境的项目,Ted 给他的班级提供了大量有趣的新内容来咀嚼。以下是我在笔记本电脑上实时输入的教程笔记:
IBM(Ted 的雇主)想要热插拔和热交换内存。明年年初可以期待。
Ted 感谢作者:Rusty Russel 的模块加载器,Ingo Molnar 的 0(1) 调度器...
内核功能更强大,现在可以处理重定位和加载...强制类型检查...捕获更多不兼容性...
期待更好的吞吐量,因为新的块设备驱动程序利用了新的块 I/O API。它们还将能够寻址巨大的地址空间...在 32 位架构上高达 16TB。
希望用于笔记本电脑...支持新的 BIOS 扩展和硬件...更好的新 ACPI 支持,CPU 频率缩放...高级 Linux 声音架构 (ALSA)
在 2.4 内核中,任务永远不会被其他进程抢占。内核代码可能会显式地让出(最终调用 schedule ()),或者通过页面错误隐式地让出。回顾从 2.2 到 2.5 的中断更改、工作队列、内核模式 CPU 时间的优先级、SMP 系统上各种调度器的优缺点...
“微软做了一件真正有益于整个行业的事情...” 通过坚持认为只有配备纯 PCI 总线的机器才能为 Windows 98 做好准备,微软扼杀了 ISA 总线。“之后,你实际上可以提前证明设备...”
如果你配置一个高性能系统,你需要确保它们支持多个 IRQ,这样你就不会不必要地强制中断发生。PCI 支持四个 IRQ...
“只有业余的专业偏执狂才真正关心 /dev/random。” 他补充说,“/dev/random 对于生成长期加密密钥是必需的。但对于许多其他用途,加密的伪随机数生成器就足够了;没有必要使用“真正的随机性”。OpenBSD 有一个 /dev/crandom 设备,它是一个加密伪随机生成器,但在内核中没有必要这样做。你也可以在用户空间库中完成它。”
所有内核代码都在进程上下文中运行。在 2.4 中,你永远不会被其他进程抢占。内核代码可能会显式地让出。在 2.6 中,如果启用了 CONFIG_PREEMPT,内核代码可能会被抢占。
一些有趣的历史... 在 NT 的服务包 3 和 4 之间,微软拆除了他们的网络堆栈,并放回了一个更好的堆栈。然后他们针对 Linux 进行了 Mindcraft 基准测试挑战。这就是他们操纵基准测试的方式。你看,当时 Linux 有一个单线程网络堆栈。在服务包 4 中,网络堆栈变为对微软有利。他们设置好一切,并让 Mindcraft 按下按钮。其效果是激发了 Linux.2.4 的网络团队。由于挑战,2.4 网络堆栈变得功能齐全,使 2.4 比以前的版本有了质的飞跃——也比微软的替代方案更好。是的,调度器和 I/O 子系统仍然需要改进。但网络堆栈很快就得到了修复。
公司希望销售大型机器。他们希望创造可扩展性,以便在高 端添加资源。但你需要确保你不会影响 2-CPU 或少 CPU 的情况。你不能影响低 SMP 性能,在低 SMP 系统中廉价地进行锁定。你需要一个内核,它可以跨越规模中的许多点在许多机器上工作,而不是针对频谱中的一个 CPU 计数点优化内核。这就是拥有像 IBM 这样的公司参与其中的优势。Sun 可能主要关心高 CPU 计数性能。IBM 希望同时关心低 CPU 计数和高 CPU 计数。
教程中给我留下最深刻印象的部分是早期关于基于对内核需要管理的所有不同类型的东西的清醒评估的开发选择部分。有物理(内存、CPU、磁盘、外围设备)资源和逻辑(进程、安全、配额)资源。以及需要安全可靠的资源之间的接口。所有这些都是在复杂性和规模的需求不断增加的情况下进行的。你如何确定所有这些开发的优先级?
我脑海中浮现出一个答案:“通过将第一人称利益放在复数形式中”。当 Ted 说“我们”时,他通常不是在谈论 IBM。他也不需要明确区分 IBM 的“我们”和 Linux 的“我们”。对于他的工作来说,在大多数情况下,这种区分是无关紧要的。
之后,我告诉 Ted 我在 OSCon 上与一位微软员工的对话。这个人一开始就说“你首先要理解的是,我们的高级管理层已经决定 Linux 是我们最大的威胁。” 我回答说 Linux 是一个项目,而不是一家公司。“但我们的竞争对手为 Linux 开发贡献资金和人力”,他回答说。“看看 IBM 和 HP。他们是我们的竞争对手。” 但是,“他们不也是你的 OEM 厂商吗?” 我说。
令我惊讶的是,Ted 同意这个人的观点。“Linux 发展得更快,因为它能够利用许多公司的利益来改进,因此,它的改进速度比微软与一家公司开发的单个操作系统竞争时要快得多。因此,微软感到如此受到威胁是正确的。”
我接下来参加的演讲是 Bruce Perens 的“JGPRS 和 GSM 国际无线连接,为公路战士而生”。很高兴听到 Bruce 开场对 Eric Raymond 表示了友好的话语,他们共同撰写了一封 致 Darl McBride 的公开信,日期为 9 月 9 日。我们谈论了一会儿 SCO——谈论它几乎是不可避免的。“他们(SCO)正在做一些非常愚蠢的事情”,他说,“并且说了太多可能不真实的事情。” 他在应有的地方给予了赞扬,说 SCO 的举动“似乎确实在支撑他们的股价... 只要他们保持这种价值,他们就可以从中拿出数百万美元,而你却看不到。” 他还说,“他们是微软的代理。这将是我们未来看到微软对抗开源的方式。还有很多其他代理机构很乐意从微软那里收取数百万美元的许可费。”
在移动领域,两件事变得清晰起来:1) 正在发生很多有趣的事情,在美国这里并不明显;2) 其中绝大多数都是用 Linux 完成的。
我接下来参加的演讲是 Charles Roth 的“在线协作:理解它、选择它以及使其在工作场所中发挥作用”。Charles 和 Neil Bauman 从二年级就认识了,Neil 将 Charles 归功于他开始接触技术和计算机。(当我告诉 Charles Neil 告诉 Linus Charles 是“我认识的最聪明的人”时,Charles 畏缩了。)
Charles 的演讲为构建和维护向前推进的对话提供了有益的程序性建议,这些对话创造了更好的“我们”。他也是一个有趣的人。他的妙语包括:
Subversion 真的是一个有用的东西。
使权力可见。决策不能是不可见的,并且必须链接到在线对话对象。没有权力的人必须看到他们正在处理的过程。
给予人们所有权,并将他们放在在线对话空间中。
真的有人使用白板吗?(在线上,我是说。)
晚上的演讲是 Paul Kunz 的“将 Web 带到美国”。Paul 是一位来自 斯坦福线性加速器中心 (SLAC,或 “Slack”) 的高能物理学家,并且是所有最佳含义的旧派技术专家。他的职业生涯从普林斯顿大学博士学位到 CERN、费米实验室和 SLAC,自 1974 年以来他一直在 SLAC 工作。这个人是一位大科学家,他的使命之一是阐明大型科学和学术研究界在将互联网和 Web 带入世界中所发挥的作用——以及沿途被它淘汰和取代的、以自我为中心、愚蠢且最终注定失败的系统,常常伴随着巨大的阻力。
Paul 的演讲中许多令人惊讶的启示(至少对我而言)之一是欧洲 PTT(国家邮政、电话和电信当局)对公共网络拥有如此巨大的垄断地位。由于其巨大的政治影响力,PTT 建立了 OSI X.25 数据包服务作为一种协议,该协议不仅是法律强制要求的,而且允许 PTT 按千字节 收费。我痛苦地回忆起在 90 年代初左右每年支付高达 3,000 美元/年来通过各种 X.25 网络进行通信。“如果德国总理想与 PTT 的负责人会面,他必须预约”,Paul 说。“甚至华盛顿也感受到遵循国际标准的压力,并命令所有实验室制定五年计划以转换为 X.25。”
是什么打破了 PTT 的控制?它是学术和科学计算中心和网络的结合,从 ARPANET 和各种 DECNets 开始,但最重要的是美国的 BITNET 和欧洲的 EARN。1984 年,建立了从美国 CUNY 和 BITNET 到意大利 EARN 的链接。随后是另一个从意大利到以色列的链接,物理学家 Haim Harari 发挥了关键作用。然后是通往瑞士和法国南部的链接。然后瑞士允许 CERN 连接到意大利。然后,在 1985 年,德国 PTT 允许临时 EARN 链接到各州,“直到他们的 X.25 基础设施到位”。然后 DECNET 链接被连接进来。然后 ARPANET 将斯堪的纳维亚半岛连接到美国。因此,Paul 说,“到 PTT 部署 X.25 时,临时网络上的流量太高,X.25 无法处理。”
在此过程中,IBM “巧妙地或意外地”呼吁欧洲科学界对“因缺乏免费网络而落后于美国人”的偏执。高能物理学也资助了网络向俄罗斯和中国的传播。
Paul 继续概述了互联网历史上更熟悉的部分,明确了一个经常在叙述中丢失的事实:“骨干网的使用仍然是免费的,ARPANET 开源文化仍然存在。”
虽然几乎每个极客都知道 Tim Berners-Lee 在使用 NeXT 机器时开发了 Web,但 Paul 额外赞扬了 NeXT 和 NeXTStep 将 UNIX 带入面向对象的 GUI 世界。“NeXTStep 的伟大之处可以通过一个非常小的社区以开源文化制作的大量高质量应用程序来衡量。一个有好主意的凡人可以在合理的时间内编写一个应用程序,只是为了尝试一下并与他人分享。” Paul 说,Web 至少部分是 Tim Berners-Lee 为解决高能物理问题并与世界各地的其他人一起解决问题而做出的努力的产物。他通过购买一台 NeXT 计算机,编写一个超文本应用程序,并通过向网络添加一个新协议 HTTP 将超文本扩展到远程计算机上的文档来实现这一点。
“完全偶然地”,Paul 也有一台 NeXT 机器。然而,当他看到 Tim 在 1991 年 8 月 19 日 宣布 Web 的消息时,他的脉搏并没有加快。事实上,当他下个月访问 CERN 时,他并没有刻意去拜访 Tim。相反,是 Tim 追上了 Paul。
在向 Paul 推销了 Web 的实用性之后,Paul 要求进行演示。Tim 说 Web 的所有服务器都在同一栋楼里。因此,Paul 说,“我们用浏览器软件上传了我在 SLAC 的 NeXT,并在那里运行它,窗口发送回 CERN。效果很好。非常棒。我告诉 Tim,我一回到家就要将 SLAC 的 SPIRES 数据库放到 Web 上。”
几个月过去了,两人才再次取得联系。当 Tim 在他的浏览器上通过 Web 看到 SPIRES 时,历史发生了。(这是 SLAC 屏幕截图。)
Paul 称 SPIRES-Web 为 “Web 的第一个杀手级应用”。为什么?“它有 200,000 条物理学家想要搜索的记录”。在短时间内,就有来自四十个国家的数千名用户。SPIRES 成为 Tim 在一系列物理学家参加的会议上的演示应用程序。它也被越来越多的高能物理社区的黑客看到,包括 NCSA 的 Marc Andreessen。我们都知道接下来发生了什么。
Paul 总结说,互联网和 Web 是 “开放、资金充足的学术研究界成果的戏剧性展示”。
他还说他的旧 NeXT 服务器仍然运行良好。
Doc Searls 是 Linux Journal 的高级编辑,负责商业新闻报道。他在该杂志上的月度专栏是 Linux For Suits,他的双周通讯是 SuitWatch。
电子邮件:doc@ssc.com