访谈

作者:David Phillips

4Front Technologies 公司的业务是为 AIX、BSD、Solaris、SCO、HP-UX、Linux 和其他系统提供 UNIX 声卡驱动程序。多年来,该公司与 Linux 保持着特别友好的关系:4Front 的 Hannu Savolainen 提供了内核声卡驱动程序和系统声音应用程序编程接口。该公司还销售内核驱动程序的增强支持版本。

我们向 Dev Mazumdar 和 Hannu Savolainen 致以亲切的问候,访谈开始

David:4Front 何时、何地、为何以及如何开始运营的?

Hannu:实际上,我们的故事始于 1992 年 8 月,当时我第一次让 Linux 运行起来。我曾开始为 Minix 编写 Sound Blaster 驱动程序,但由于各种原因放弃了这个项目。我将其移植到 Linux 并在一两周后发布了第一个 hack 版本。之后发生的事情就是一个很长的故事了。

然后在 1994 年 9 月或 10 月,Dev 联系了我。他当时在销售基于 MCA 的声卡,并询问他是否可以将我的驱动程序移植到 AIX。在几封电子邮件之后,我们决定联手并将驱动程序移植到所有可以运行的系统。

Interview

最初,我们的想法是仅针对 Linux 以外的操作系统销售商业 Open Sound System (OSS),因为 OSS/Linux 似乎没有任何市场。但是,我们决定发布 OSS/Linux,因为该软件已经准备就绪。我们只需要检查是否没有版权问题。

Dev:1992/3 年,我开始为 IBM 新的 RS/6000s 上具有 MCA 插槽的 Creative Labs Sound Blaster MCA 编写声卡驱动程序。那时,互联网规模很小,只有我们三四个人在为 UNIX 开发声卡驱动程序。

David:目前在 4Front 谁负责什么工作?

Hannu:按照定义,我的职责是设计和编程,而 Dev 负责支持、营销以及我们网站的维护。但是,现在 Dev 几乎和我做一样多的编程工作。

Dev:我还负责操作复印机和倒垃圾!;-) 说正经的,我的主要职能主要是运营 4Front 的日常业务。我接听客户电话并拜访与我们合作的各个公司。每当我进行错误排查时,我总是听从 Hannu 的技术专长。

David:支持多少种声音系统,即声卡、板载和外置?

Hannu:实际上,我们实施对声音芯片组的支持,而不是声卡。相同的芯片通常被许多声卡供应商使用,尤其是在远东地区。我完全不知道我们支持多少种不同的声卡。

我们的配置程序目前知道 250 个不同的“声卡”名称。我认为其中大约 150 个以某种方式是独一无二的,并且至少需要对 OSS 进行小的修改。列表中的其余 100 个名称是某些芯片组的别名。我们不得不添加它们,因为太多客户不断询问为什么这个或那个声卡不在我们的支持卡列表中。

我们支持或目前正在开发大约 40 到 50 种“主要”声卡架构或芯片组。

Dev:更好的理解方式是将声卡芯片的数量乘以 UNIX 版本的数量,再乘以每个声音设备(音频、MIDI、混音、合成器等)的功能,就能了解 OSS 的规模和复杂性!

David:你们如何决定支持哪种声卡或系统?

Hannu:主要来说,决策是基于客户反馈,但有时仅仅是因为某些声卡在某些方面看起来特别有趣。实际上,通过查看有多少潜在客户询问是否支持某个芯片组,很容易弄清楚需要支持哪些芯片组。

目前,我们的重点是大型供应商(如 Creative、ESS、Aureal 和 Yamaha)生产的流行的基于 PCI 的芯片组。

Dev:就操作系统而言,系统供应商正在来找我们并要求使用 OSS,因为他们已经在 Linux 上看到了它的作用。此外,随着使用 OSS 的应用程序数量的激增,我们发现许多 UNIX 和实时供应商都在注意到这一事实并正在与我们接触。最近的一个例子是 HP(惠普)。我们之前曾与 HP 联系,讨论将 OSS 移植到 HP-UX,但直到现在,由于 Linux 受到的关注,我们才达成开发协议。

David:创建、测试并最终营销一个声卡驱动程序需要做哪些工作?

Hannu:首先是获得声卡或芯片组的编程规范。这通常需要很长时间,因为硬件制造商根本无法立即提供合适的文档。

获得规范后就可以开始编程了。最困难的部分是从设备中发出第一个声音。对于复杂的 3D PCI 音频加速器,这需要数月时间,因为这些芯片的复杂性至少达到 i286 级别。通常一切都必须在完全黑暗中完成,因为无法看到芯片内部在做什么。在发出第一个声音后,一切都容易得多,因为我们至少可以听到芯片在做什么。

在声卡似乎可以工作后,我们会在两到三台不同的机器上测试驱动程序大约一个月。在那之后,它会作为 beta 版本发布,以便所有愿意尝试的人都可以这样做。最后,如果在几个月内没有报告重大问题,则会删除 beta 状态。

实际上,为不同的声卡实现底层驱动程序只是其中一部分。另一项重要任务是试图弄清楚为什么某些应用程序不断引起问题。如果应该改进 OSS 中的某些内容,我们会这样做。但是,我们不会尝试通过更改我们的代码来修复有缺陷的应用程序。

另一项重要任务是使安装更容易。毕竟,我们的许多客户是不想花时间让事情正常运转的人。如果他们不能快速让声音工作,他们就会放弃。因此,我们必须使其能够在两分钟内下载并安装 OSS,而无需阅读任何手册。这实际上是一场永无止境的战斗,因为 Linux 和 PC 架构是一个快速发展的目标。所有 Linux 发行版都略有不同,不同的内核版本也是如此。我们目前支持所有 2.0.x 和 2.2.x 版本。

最后,用户拥有无限数量的不同 CPU、芯片组、SMP/UP、声卡和其他硬件组合(我几乎忘了提及超频)。此外,许多用户自己编译内核并在他们的机器上安装各种 UFP(不明飞行补丁)。识别由这些差异引起的问题并找到解决方法是一个巨大的挑战。我们通常每两到四周发布一个新的 OSS 修订版(通常在新内核版本发布后),只是为了解决这些类型的问题。

David:请描述一下您与 Linux 的关系多年来的演变过程。

Dev:我拥有 UNIX 背景,曾在 IBM RT 4.2 基于 BSD 的内核以及 IBM 的 AIX 3x 内核上工作(与 USC 的一个联合项目)。我的第一个驱动程序之一是 IBM Megapel 5081 显卡的控制台驱动程序,之后是该卡的第一个彩色 X Window System X11R1 服务器。

Interview

1994 年,当 1.2.13 版本发布时,我开始第一次运行 Linux(在那之前,我的桌子上有一台庞大的 AIX/RS6000 530)。在我看来,Linux 具有最佳的设备驱动程序编程环境,并且与其他 UNIX 环境相比,它对开发人员更友好。当然,由于 PC 架构的 ISA 总线,在 Linux 上为客户提供支持比在基于 RISC 的 UNIX 系统上困难得多。

Hannu:我拥有小型计算机背景。我于 1981 年在拉彭兰塔理工大学 (http://www.lut.fi/) 开始使用 HP3000 Series III 进行编程。因此,我从不喜欢 DOS 或任何在 PC 上运行的东西。我在 1984 年 12 月首次接触 UNIX (HP-UX),并且它是我唯一感兴趣的操作系统。因此,我在 1991 年 5 月/6 月在我第一台 386/25 PC 之后不久购买了 Minix 是很自然的。我安装了 i386 扩展和 GCC,并且刚刚完成将无数应用程序移植到它,这时我第一次接触了 Linux。我是幸运儿之一,看到了 Linus 发布到 comp.os.minix 的历史性消息(1991 年 8 月 25 日)。

那时,我已经对 Minix 感到失望,并且已经开始计划我自己的名为 SKUNKX(Smells liKe UNiX 的缩写)的操作系统,但实际上还没有开始编写它。我对那个无名的 UNIX 克隆的最初反应略微负面,因为它是一个竞争项目。我暂时忘记了整件事(Linus 和我的项目),直到我看到有关第一个 Linux 版本发布的一些信息。我决定跳过前几个版本,主要是因为我的机器有 Linux 不支持的非标准磁盘 (SCSI)。在第一个 AHA1542 驱动程序之后,我花了几个月的时间才弄清楚如何让该卡与 Linux 一起工作,Linux 使用的 IRQ 与我的系统中可用的 IRQ 不同。我不记得解决方案是什么,但最终我在 1992 年夏天安装了 Linux。在那之后,我将我的磁盘格式化为 Linux,并一直将其用作我的主要操作系统。即使在那些日子里,它的工作也非常可靠,这真是令人惊叹。

正如我之前提到的,我很快就开始在我的业余时间开发 Sound Blaster 驱动程序。在第一个版本发布后,它很快引起了一些用户的注意,他们提出了建议并发送了一些修复程序。与 Craig Metz 一起,我们将 Sound Blaster 驱动程序扩展为支持 Pro Audio Spectrum PAS16。几个月后,我开始添加对 Gravis Ultrasound 的支持,并得到了 Greg Lee 的重要帮助。在一年之内,添加了对其他一些卡的支持,最终该驱动程序被包含在内核中。

除了开发 OSS 之外,我还使用 Linux 来完成我使用计算机所做的一切事情,主要是各种编程、电子邮件、新闻、上网、Web 服务器、Samba 以及使用 Acrobat 阅读文档。自从我开始使用 Linux 以来,或者实际上是在我升级我的机器以运行 X 之后,所有这些功能都运行得非常好。现在,在获得 StarOffice 之后,确实没有太多理由使用任何其他操作系统。我确信这在不久的将来会变得更好。

正如 Dev 所说,Linux 是设备驱动程序开发工作的非常好(如果不是最好的)环境。硬件接口非常容易,因为 Linux 不会试图将硬件隐藏在一堆抽象层后面。此外,Linux 不会试图强制执行任何特定的编程模型,因此您可以以您认为最合适的方式做您想做的事情。

David:4Front 如何看待 Linux 本身的演变?

Dev:作为一家商业公司,我们很乐意看到 Linux 进入桌面领域,因为与 Linux 现在开始主导的服务器领域相比,声音支持在桌面领域更有意义。

毫无疑问——商业应用程序将继续存在,并且许多聪明的人才都投入到编写“非开源”应用程序中。我们期望开源运动走向成熟,并包容所有专有和 GPL 应用程序。我们还期望看到许多公司使用我们的混合开源/专有模式。许多公司将以开源形式发布其应用程序的一部分,并且仍然销售具有附加功能的专有版本,但仍保持与免费版本的 API 兼容性。

这允许开源和专有开发团队之间进行清洁健康的竞争。在某些方面,我们正在与现在由 Alan Cox 等真正有才华的人维护的 OSS/Free 内核驱动程序竞争。有些卡仅在 OSS/Free 中受支持,例如对 Apple PowerMac 音频和 Sun SPARC SS20 音频的支持。

Hannu:我认为我们对 OSS 的第一个也是最大的错误是愚蠢地认为我们可以控制 Linux 的所有声卡驱动程序开发。实际上,对所有人(甚至对我们来说)来说,独立小组继续开发免费软件驱动程序是最好的。这使我们能够安心地专注于对我们当前和未来客户最重要的功能和声卡。当然,这意味着许多声卡将存在竞争驱动程序,但我实际上将这种竞争视为一种挑战,而不是一个问题。

我们正在制作商业的、仅限二进制的软件这一事实并不意味着我们反对开源意识形态。我们之所以在这里,仅仅是因为 Linux 和最初的“VoxWare”声卡驱动程序是开源的。我们最初的想法是为 OSS 和 OSS/Free 维护一个通用的源代码库。通过这种方式,可以很容易地将对 OSS 的大多数添加内容合并到 OSS/Free 中。这种模式是愚蠢的,因为它使得采用对 OSS/Free 的贡献非常困难。目前维护 OSS/Free 的模型要好得多。OSS/Free 的内部架构现在与 OSS 显着不同,因此我们的代码对 OSS/Free 团队来说不是很有用。但是,我确信我们可以在未来找到一种为 OSS/Free 做出贡献的方法。

Interview

Dev:您将看到我们的概念被许多开源开发人员使用——Sendmail、Ghostscript 和其他是一些开发人员如何提出“专有/开源”模式来产生收入的例子。这需要作者完全投入,这意味着放弃日常工作并专注于软件。我们收到了许多客户对 OSS 的赞誉,这正是让我们坚持下去的原因。

4Front 一直盈利,我们没有风险投资或声卡或操作系统供应商的资助。如果 Linux 的增长速度继续下去,我们可能会在明年雇用一些人——一切都取决于能否通过做你最擅长的事情,从一家车库作坊发展成为一家专业公司。

David:Linux 用户可以对未来版本的 4Front 驱动程序有何期待?

4Front:我们目前正在开发对所有流行的 PCI 声卡的支持。对一些高端声卡的支持应该会在今年下半年发布。今年基本 OSS 的功能将几乎保持不变,但我们正在实现一些功能,这些功能将使 OSS 在模拟器(3D 音效)和无线电(直播)系统中非常有用。明年,重点很可能将放在向 API 添加新功能,至少在 MIDI 编程方面,例如在 SoftOSS 虚拟合成器中支持 DLS 采样以及支持 MIDI 音色库。

当然,我们将继续努力使 OSS 比今天更容易安装和使用。

我们也在关注更多的操作系统支持。例如,我们将在今年晚些时候开发 BeOS 支持。当 Mac OSX 在今年晚些时候推出时,我们可能会关注它,因为它据传具有类似 UNIX 的核心。

David:除了这些问题之外,您还有什么想补充的吗?

4Front:我们要感谢所有为 Linux 编写音频应用程序的开发人员。没有你们的支持,OSS 就无法取得今天的成就。我们希望你们的基础工作将把更多来自其他操作系统的人才带入 Linux 和 OSS 平台。

David:请告诉 LJ 读者一些关于你们在公司工作之外的活动。

Hannu:我的家人占据了我工作之外的大部分时间。我的爱好是阅读、听音乐、电影、骑自行车、游泳、烹饪和数码摄影。我收集各种电子产品。我也在尝试获得一些电子工程方面的经验,但似乎没有足够的时间。

Dev:我的爱好包括全年在海滩上打排球(这是住在洛杉矶的乐趣之一)。我也喜欢滑雪和高尔夫(我在高尔夫方面很糟糕!)。我小时候经常制作电子产品。我目前与一位出色的女性订婚,并将于九月结婚。

4Front Technologies4035 Lafayette Place, Unit FCulver City, CA 90232电话:310-202-8530传真:310-202-0496电子邮件:info@opensound.com网址:http://www.opensound.com/

David Phillips (dlphilp@bright.net) 是一位居住在俄亥俄州的作曲家/表演者。最近的计算机音乐活动包括为艺术家 Phil Sugden 创作环境音乐作品、在 Bowling Green State University 讲授计算机音乐编程语言,以及维护 Linux 的 “官方” Csound 版本。Dave 还喜欢阅读拉丁诗歌、练习太极拳以及与他可爱的伴侣 Ivy Maria 度过的任何时光。

加载 Disqus 评论