阿姆斯特丹的 Linux
在十二月,当我本应准备这期Linux Journal时,我在阿姆斯特丹度过了一周,参加了第一届荷兰 Linux 国际研讨会。Linus、Remy Card、Matt Welsh 和其他几位人士就各种主题发表演讲。我将在此仅提及所做报告的抽样。
无论从哪个方面衡量,本次研讨会都是一次成功。研讨会最初安排在一个 80 人的房间举行,后来改到一个 120 人的房间,但组织者仍然不得不拒绝一些人参加。虽然许多参与者是荷兰人,但我相信大多数是外国人。来自欧洲和北美各地,以及至少一位来自日本的参与者,这真是一次国际研讨会。
研讨会的许多参与者以前从未见过面,但通过电子邮件和 Usenet 新闻交流彼此非常熟悉。需要被介绍给你感觉很熟悉的人,这是一种有趣的现象。
荷兰人是非常严谨的民族。他们的火车准时运行,他们的博物馆准时关闭,他们的会议严格按照日程进行。每次演讲都准时开始。在每位演讲者预定时间结束前五分钟,厨房定时器会响铃。然后在结束时,五分钟后,它会再次响铃,演讲者被允许(实际上如果不是理论上)完成他的句子。第二次响铃被会议组织者称为 kill -9。
Matt Welsh 就如何移植到 Linux 做了我听过的最好的阐述。他不满足于大多数为 POSIX、SVR4、SVR3 或 BSD 编写的(可移植)程序只需编译(给定 BSD 程序的正确编译器标志)的标准答案,他解释了哪些类型的不可移植代码可能并且将会导致问题,并为听众提出了解决问题的方法,或者让听众知道解决这个问题需要付出巨大的努力。
Remy Card 对第二代扩展文件系统进行了技术介绍,表明在文件系统内置的文件系统中还有进一步开发的空间,这样,随着额外功能的添加,人们不必重新格式化他们的硬盘驱动器。他还解释了使它比其他文件系统更不易损坏的一些特性。
我做了一个关于我如何看待 Linux Journal 影响 Linux 市场的演讲,包括在可用软件和可用工作岗位方面,并花了一些时间在问答环节中讨论 Linux Journal,这有点像给编辑的信,只是更快。
Michael Kraehe 就 Onyx 做了演讲,Onyx 是他在 Linux 下开发的(并销售支持)的 Copylefted 4GL。它可以将许多不同类型的数据库(Informix、Ingres、Postgres、Yard、gawk、Shql 等)与一个数据演示联系起来。4GL 语言更像 shell 而不是其他 4GL,因为可以使用系统命令;打印账单的报告可以通过“gawk | groff | lpr”管道发送命令的输出。它使用标准的 Unix 工具,而不是替换它们。
来自牛津大学的 Peter Braam 解释了如何在分布非常广泛的牛津大学校园内分发 Linux,而不会严重损害安全性,并且无需学生成为他们自己 Linux 机器上的系统管理员,通过使用 Kerberos 进行网络授权和 SUP(软件更新协议,来自 CMU)来更新学生驱动器上的软件包。
一个设计名为 Viper 的产品的团队,该产品是 Linux 的衍生产品,将在符合 POSIX 1003.4a 的软件包中提供完整的内核线程,介绍了他们迄今为止所做的工作,并解释了剩下的工作。
Linus Torvalds(Linux 项目的创始人、主要专家和“独裁者”,对于 Linux 新手而言)做了两次演讲。第一次是会议的开幕式,是对 Linux 的介绍。第二次是会议的闭幕式,技术性更强,也引发了更多问题。Linus 亲切地要求在任何人有问题时随时打断他,技术性演讲比概述性演讲产生了更多的打断。
他给出了一个有趣的例子,说明了在编写原始 Unix 时,重新思考某些假设的自由如何在 Linux 中实现了更简单的设计。在其他版本的 Unix 中,“睡眠”会产生竞争条件,可能导致进程永远休眠,除非在进入睡眠状态时仔细禁用中断。Linux 使用了与大多数 Unix 系统略有不同的范例(睡眠分两个步骤完成,首先说“我现在睡着了”,然后再真正进入睡眠状态),这消除了竞争条件的可能性,而无需禁用中断,从而提高了性能和鲁棒性。
Linus 向我们介绍了正在进行的几项工作,包括他正在进行的 64 位移植到 DEC Alpha。该移植仍处于初期阶段,但对于帮助使整个内核更具可移植性非常重要,因为它使用 64 位指针(默认情况下为 64 位整数),这非常有效地暴露了不可移植的代码。现在正在努力将几个端口上完成的工作集成到主线源代码树中,以实现使 Linux 成为真正的多平台操作系统的目标。“我总有一天会发布 [版本] 2.0,而何时发布 2.0 的决定本质上取决于我何时拥有一个稳定的多平台版本,”他说。
Linus 的其他引言既有趣又(通常)信息丰富。我收录了一些非技术性和技术性的引言样本
“Dennis Ritchie 在澳大利亚时说,他对 Unix 最自豪的一个特点是它的可移植性。当谈到 Linux 时,我最自豪的决定不是系统的实际物理设计,而是使其免费的决定。”
“最重要的设计问题……是 Linux 应该是有趣的……”
“Linux 是 PC 克隆机的 Unix 克隆。我正在尝试修复 ‘PC 克隆机’ 部分,其他人也在尝试修复它。”
“[Linux] 在六秒钟内执行无限循环。”
“我[真的很想]看到 Word for Windows 在 Linux 下运行……”
“……所以,我显然决定制作我自己的 Unix。我需要什么?我需要大量的无知,因为如果你知道得太多,你就会知道这显然是不可能的。然后你需要傲慢——‘是的,我可以做到,而且我可以做得比任何人都好’。你需要这两点才能开始……你需要有点疯狂,并且真正坚持下去……”
“Novell 的一位人士评论说,他们有一个大约一百台机器的 alpha 测试实验室,他说,‘难怪 Linux 工作得这么好。他有一个一万人的 alpha 测试实验室!’——这是真的。”
“Ext2 比 Minix 文件系统好得多。”
“总体趋势是最终获得内核线程,这可能是 Viper 线程,也可能不是。”
“在半年到一年内,我希望看到 Linux 有三个得到合理支持的不同平台。不过,386 版本将是正常的版本,仅仅是因为每个人都有一台。”
说到可能在 1.3.x 中首次亮相的改进:“改进的数据缓存本质上意味着现在的数据缓存是根据设备和设备上的块号索引的……从长远来看,我们希望根据 inode 和 inode 的偏移量对其进行索引,这将使 VFS 层更容易查找缓冲区,而无需通过底层文件系统来查找块号。它还可以实现 NFS 缓存(读取缓存,因为写入缓存 [NFS] 是禁止的)。”
Michael K. Johnson 是 Linux Journal 的编辑,也是 Linux Kernel Hackers' Guide (KHG) 的作者。