XSuSE—为 XFree86 产品增添更多功能
XFree86 是在运行类 UNIX 操作系统的 PC 上实现的 X 窗口系统的免费软件(或开源软件)。XFree86 在很大程度上独立于 Linux。它最初是一个免费软件项目,始于 1992 年初,即 X11R5 发布后不久。当时,Linux 尚处于起步阶段,XFree86 最初支持的平台是商业 UNIX 实现,如 ISC SVR3 和 Dell SVR4。然而,到 1992 年年中,XFree86 也被移植到 Linux,如今,绝大多数 XFree86 用户都在运行 Linux 作为其操作系统。
X11R5 于 1991 年 9 月发布,是首个包含 PC UNIX 系统支持的 X 窗口系统官方版本。X386 由 Thomas Roell 捐赠给 X 联盟,他当时在 SGCS 工作,这是一家咨询公司,其业务包括为 PC UNIX 系统提供商业 X 服务器。
不幸的是,X11R5 的公开补丁并未解决性能和稳定性问题,这些问题使得 X11R5 中包含的 X386-1.2 对于大多数运行 UNIX 的 PC 用户来说几乎无法使用。由于缺乏针对 X386 的补丁,四个人走到了一起,意图增强 X386。David Dawes、Glen Lai、Jim Tsillas 和 David Wexelblat 启动了一个他们认为只是供他人使用的小项目。1992 年 7 月,他们发布了 X386-1.2E。
很快,很明显,这个项目,即创建一个可用的 X 免费软件实现,将不仅仅是对 X386 的增强,因此项目名称更改为 XFree86,表明了软件运行的(正如我们现在所知,最初的)平台,以及团队提供 X 窗口系统免费实现的中心目标。
自那时以来,XFree86 大约发布了十几个版本。最新的版本是 XFree86-3.3.2,于 1998 年 3 月发布。支持的显卡数量难以追踪;XFree86 不支持的显卡和芯片组数量出奇地少。XFree86 在目前大多数可用的 PC 类 UNIX 操作系统上运行。除了 Intel x86,还支持 Digital Alpha、Motorola Power PC 和 68k 平台,其他平台也在开发中。现在积极参与该项目的人数已接近 300 人。
这与最初的 XFree86 创始人有时被称为“四人帮”所启动的小项目相比,变化很大。
1994 年,X 联盟正在开发 X11R6,XFree86 团队决定参与该开发。为了使之成为可能,需要一个能够加入 X 联盟的法律实体,在讨论了各种方案后,成立了一个名为 The XFree86 Project, Inc. 的非营利性公司。
这家公司仍在维护代码并组织 XFree86 的开发。我是 XFree86 核心团队的成员,也是 The XFree86 Project, Inc. 的副总裁。
S.u.S.E. GmbH 成立于 1992 年,恰好是 XFree86 启动和 Linux 变得更广泛使用的同一年。自 1993 年以来,S.u.S.E. 一直在销售 Linux 发行版,最初是在软盘上,后来是在 CD-ROM 上。最新发布的 S.u.S.E. Linux 发行版,S.u.S.E. Linux 5.2,包含四张 CD,附带详细手册和 60 天安装支持。S.u.S.E. Linux 提供德语和英语版本;其他国家语言版本正在开发中。
目前,约有 50 人在 S.u.S.E. 工作,为全球超过 10 万客户提供服务。S.u.S.E. 为基于 Linux 的系统提供专业支持、培训、预装和配置的硬件、咨询和软件开发。
S.u.S.E. 致力于积极推动免费软件开发,并支持 Linux 社区。
XFree86 的开发模式一直与 Linux 开发的许多领域中使用的理念略有不同。主要区别在于,只有一小群开发人员(目前约 300 人)可以直接访问最新的源代码。这个开发团队创建了经过良好测试的 XFree86 版本,然后以源代码和二进制形式分发给公众。
这种设置有很多原因。其中更重要的是像 XFree86 这样的系统创建的支持负担。对于许多人来说,配置 XFree86 很困难,而设置 PC 硬件可能相当具有挑战性。因此,大量用户有问题或需要帮助配置 XFree86。向公众发布一组相当小的版本使得可以合理地了解在请求支持的人的系统上实际运行的软件。尝试支持任意开发版本是根本不可能的。
此外,开发版本的软件可能包含可能损坏硬件的代码,存在轻微风险。今天的显示器对超频的敏感度远低于以往,其他组件也更加坚固,因此这种论点正逐渐失去其依据。
然而,XFree86 的开发模式仍然相同,并且不太可能在短期内发生改变。这导致新版本之间的间隔有些长。
另一方面,显卡行业的世代周期变得越来越短,市场上出现的新显卡和芯片组的数量正在迅速增长。许多显卡的货架寿命缩短至 6-9 个月。显卡市场的这种快速周转意味着 XFree86 中许多受良好支持的显卡已不再可用,而许多新推出的显卡在 XFree86 中尚未得到支持。
作为 Linux 发行版的提供商,S.u.S.E. 显然对其客户可用的最佳硬件支持感兴趣。为了实现这一目标,S.u.S.E. 与 XFree86 项目之间存在长期且非常积极的关系。作为这种关系的一部分,S.u.S.E. 向 XFree86 捐赠了资金和设备,以进一步推动 XFree86 的开发,并确保可以及时发布新版本的 XFree86。自 1995 年以来,S.u.S.E. 一直支付开发人员从事 XFree86 开发工作,1997 年,我作为 S.u.S.E. 的员工,花了近九个月的时间全职从事 XFree86 工作。
即便如此,这种帮助也只是部分地缓解了 XFree86 在跟上市场上出现的新硬件方面的问题。
1997 年年中,积极支持 XFree86 的众多显卡供应商之一 Elsa AG 建议,他们可以帮助为其新的基于 3DLabs 的显卡系列开发服务器。由于这些显卡的文档只能在保密协议 (NDA) 下获得,S.u.S.E. 同意进行开发,并在 NDA 解除后立即将服务器捐赠回 XFree86。(不幸的是,这种情况尚未发生,这也是该代码未集成到 XFree86-3.3.2 中的唯一原因。)
经过几个月的开发,S.u.S.E. 为 Elsa 的显卡制作了第一个服务器 XSuSE_Elsa_GLoria,并使其可用。这标志着 XSuSE 服务器小家族的开始。该服务器很快变得非常流行,随着时间的推移,它被扩展为支持许多非 Elsa 显卡,并更新为支持来自 3DLabs 的更新芯片组。该服务器的大部分开发工作由 S.u.S.E. 员工完成,但其他 XFree86 开发人员也做出了重大贡献。
不仅仅做一个服务器的动机来自于 Matrox 在 XFree86-3.3.1 完成前几周发布了其 Millennium II 显卡的文档。虽然时间允许快速破解以使 XF86_SVGA 在 Millennium II 上工作,但很快就明显地发现还有一些问题尚未解决。此外,Millennium II 的 AGP 版本也已上市,XFree86-3.3.1 服务器未检测到该版本。S.u.S.E. 决定修复 Millennium II 支持中最重要的问题,并添加 Millennium II AGP 支持。这作为 XSuSE_Matrox 发布。
这引发了对其他新发布硬件服务器的大量请求,例如,来自 NVidia 的 Riva128 芯片、来自 ATI 的 Mach64 系列的新版本,或来自 Alliance Semiconductor 的 AT3D 和 AT25 芯片组。XFree86 开发人员开始致力于这些芯片组的驱动程序,但 XFree86 的新版本还需要几个月才能发布。
与其告诉人们等待,许多开发人员希望使其服务器可用。然而,鉴于 XFree86 源代码的大小,发布补丁似乎不是让大多数用户访问这些驱动程序的好方法。此外,这将造成可用的不同版本的混乱局面,这是 XFree86 试图避免的。此时,S.u.S.E. 接管了发布临时服务器的协调工作,在其自身员工的帮助下开发了许多这些驱动程序,并以仅二进制发布的形式向公众提供这些服务器。
XFree86 项目愿意在以下条件下允许这些发布
它们不得称为 XFree86。
它们将由 S.u.S.E. 支持,并且不会给 XFree86 团队带来额外的支持负担。
为这些服务器开发的所有代码都将捐赠回 XFree86。
由于这些条件完全符合 S.u.S.E. 的意图,因此 XSuSE 服务器的创建和分发开始了。
从那时起,许多人想知道 S.u.S.E. 是否会开始开发商业 X 服务器,并成为该市场中的又一个参与者(如 Metro Link 和 Xi Graphics)。这从来都不是最初开发这些服务器的意图,并且仍然不在 S.u.S.E. 正在考虑的选项之列。相反,这些服务器作为免费软件提供,可以被任何人自由分发。S.u.S.E. 明确鼓励其他 Linux 发行版在其 CD 中包含这些服务器。S.u.S.E. 正在支持这些服务器,而不管用户是否购买了 S.u.S.E. Linux 或其他 Linux 发行版。从支持处收集的反馈被提供给开发人员。这些服务器的源代码是 XFree86 开发源代码的一部分。
只要对早期访问服务器二进制文件有需求,S.u.S.E. 将继续在 XSuSE 系列中提供服务器。XSuSE_Elsa_GLoria 目前的情况就是如此,并且将在 XFree86 的下一个版本准备就绪之前添加其他服务器,因为新的驱动程序已被编写出来。
此外,S.u.S.E. 还在积极致力于增强 XFree86 的许多其他方面,最值得注意的是服务器的配置。由于这项工作的规模很大,我们希望与 XFree86、S.u.S.E.、Red Hat 和其他分发 XFree86 的公司合作,将此作为一个联合项目来完成。
本文最初发表于 Linux Expo 98 会议论文集。
Dirk Hohndel (hohndel@aib.com) 是 The XFree86 Project, Inc. 的副总裁。他曾在 1997 年在 S.u.S.E. GmbH 工作,并且仍然以自由职业者的身份为 S.u.S.E. 工作。他从 1991 年 11 月开始参与 Linux,并且一直活跃于免费软件领域。