社区导向型开源软件开发的三项案例研究

作者:Randall P. Embry

一个日本 PDA、一个视频采集卡和一个将您的电视连接到网络的多媒体设备有什么共同之处? 它们都是基于 Linux 的专用设备的例子,周围都有蓬勃发展的亚文化——一群爱好者夜以继日、废寝忘食地努力使他们的玩具完全按照他们想要的方式工作。 当然,15 年前,Linux 本身也有着类似的开端。

“大家好,所有使用 minix 的人——我正在做一个(免费的)操作系统(只是一个爱好,不会像 gnu 那样庞大和专业),用于 386(486) AT 克隆机。” Linus Torvalds 不满意制造商的选择,他想按照自己的方式使用他的 Intel 计算机。 他开始编写代码,然后他用这些简单的话语向世界发出呼吁,宣布他的成就并吸引了帮手。 这种精神在今天还在延续吗?

2005 年 7 月 4 日。 令人毛骨悚然的是,IVTV 开发人员又一次在我开始这个项目时发布了一个版本。 也许我应该等待一段时间,直到事情稳定下来。 他们的进展时好时坏—— сначала 音频不对劲,然后视频看起来很糟糕。 这次安装脚本肯定更容易了——不再需要神秘的 modprobe 序列才能使一切正常工作。 从事这项工作的主要人员甚至没有和我相同的型号——他是怎么做到的?

这就是我典型的假期或周末偶然发现 Linux 项目的开始。 在本文中,除了介绍一些特定的 Linux 友好型产品和项目成就外,我还简要调查了一些包含它们的开源社区,重点介绍了每个社区中的一位杰出人物。

Hauppauge WinTv PVR-150MCE

首先,我从微软 Windows 产品开始——其型号中的前缀和后缀都描述了其目标市场。 Hauppauge 的 WinTv PVR-150MCE 是一款电视调谐器和视频采集卡。 使用当前技术直接存储广播质量的视频是不切实际的。 即使您的硬盘驱动器的吞吐量足以接收数据,您可用的存储空间也会很快被耗尽。 MPEG-2 压缩与 DVD 标准使用的压缩相同,大大降低了要求,减少了存储空间,并将流媒体速率降低到更易于管理的 6Mbps。 对质量进行适度妥协可以将每小时视频的存储需求降低到 2G 或更少。 压缩视频是计算密集型的,会给最快的处理器带来压力,但 PVR-150MCE 通过使用其 MPEG-2 编码器硬件来解决这个问题,从而减轻了系统压缩数据的耗时任务。 因此,您可以使用普通的硬件实时录制压缩视频。 它的价格不到 100 美元,如果您还不知道我为什么要在关于 Linux 的杂志中描述 Windows Media Center Edition (MCE) 产品,那么在阅读下一段之后您就会明白了。

IVTV 是一个允许基于 Conexant 的视频采集设备在 Linux 下运行的项目。 PVR-150MCE 只是基于 Conexant 芯片组的一系列卡中的一款。 Hauppauge 生产许多此类卡,但其他几家制造商也生产基于 Conexant 的卡。 预计现在或在驱动程序的未来版本中将有大约 12 种不同的卡可以工作。 顺便说一下,IVTV 的发音是“Ivy TV”。 它不是首字母缩写词,而是受早期 Conexant 型号 iTVC15 的启发。 生产兼容卡的的其他制造商包括 Yuan、Avermedia 和 Adaptec。 有关详细信息,请访问 IVTV 网站(请参阅在线资源)。 虽然这些卡具有相同的核心芯片组,但绝非完全相同,支持所有细微的排列组合说起来容易做起来难。 在极端情况下,您甚至可能需要跨越大西洋才能体验到这些差异。

除了这些卡的不同型号外,还支持欧洲 PAL 和美国 NTSC 视频标准。 测试这两种信号尤其棘手,因为给定的开发人员只能轻松访问其中一种视频源。 这个团队已在国际上协调,为两者提供良好的支持。 这仅仅是在源代码中的某个地方翻转一位吗? 还是他们利用了光速绕地球一周只需微秒级的时间,以及欧洲的开发人员在睡觉的时候,美国的同行正在醒来这一事实? 一位荷兰开发人员对 NTSC 调制器的请求让我相信是后者。

该项目的首席开发人员 Chris 欢迎捐款

自 2003 年 12 月左右以来,我一直在维护 IVTV 驱动程序,保持所有补丁合并,并且还反向工程了 DMA,并重新设计了驱动程序的内部部件,以实现增长和稳定性。 我在 IVTV 上投入了大量时间,过去每周通常超过 40 个小时,并希望在未来继续像这样工作。 我最近离婚了,因为现在大部分收入都被拿走了,所以需要收入,并且感谢任何捐款来帮助我,并希望我对驱动程序的工作也能帮助您。 我在开发驱动程序方面有很多乐趣,并且很高兴能够为人们提供这项服务,使 MPEG-2 编码芯片在这些 WinTV/etc. pci 卡上尽可能地工作到最佳状态。

Hauppauge MediaMVP

接下来,MediaMVP 是一款固态设备,带有以太网插孔、S-Video/复合输出和立体声 RCA 音频。 花费大约 100 美元,您就可以远程登录到一台运行 Linux 的盒子,该盒子可以插入您的电视。 好吧,几乎是这样。 在您可以远程登录之前,您可能需要安装 mvpmc。

这个项目的设置有很好的文档记录,但并非易事。 它涉及设置 DHCP 服务器和 TFTP 服务器,以便将替代引导加载程序交付给设备。 您可能还需要导出​​一个或多个 NFS 共享,以便为设备提供内容。 构建源代码涉及设置交叉编译器,除非您的 gcc 恰好以 powerpc-405-linux-uclibc 架构为目标。 夜间自动构建也可以作为交叉编译源代码的替代方案。

这项辛勤工作的回报是,您可以使用没有移动部件且无需担心过热或风扇噪音的设备浏览文件系统中的多媒体文件或从 MythTV 流式传输视频。

近两年来,Jon,一位居住在美国的专业固件工程师,不知疲倦地检查改进并回应项目邮件列表中的问题。 在回答“Jon,你有没有考虑过通过 SourceForge 接受这个项目的捐款?”这个问题时,他总结了一种常见但崇高的态度:“不。 我更希望人们给我发送代码而不是钱。 或者硬件,如果你想要支持我本来不会买的东西。”

Sharp Zaurus SL-C3100

最后,如果您的个人信息管理器定义包括您自己编译的最新版本的 Emacs,那么 Sharp SL-C3100 可能会梦想成真。 Sharp 仅在日本销售这款多功能(想想可以放在衬衫口袋里的普通笔记本电脑)产品,但围绕它形成了一个活跃的社区,其中许多人直接从日本进口这款 800 美元的设备。 这是一款非常棒的机器——640x480 VGA 显示屏、4G 微硬盘存储,采用带有 QWERTY 键盘、USB、CF 和 SD 的翻盖外壳。 作为其日本血统的证明,它省略了蓝牙和 Wi-Fi,因为这些无线协议在该市场不太普及。 社区提供从进口技巧到特定硬件兼容性实践经验的建议。

Zaurus 具有巨大的潜力,但并非一定容易上手。 功能性和稳定性之间似乎存在权衡。 寻求最新的软件可能会有所收获。 因此,无论您认为它是半满还是半空,以及您是否购买以及在哪里购买都是个人决定。 对于保修维修,该设备需要退回日本。 谁支付运费和手续费? 这取决于您是从增值经销商处购买还是从朴素的出口商处购买。 社区可以帮助您做出这个选择。 顺便说一句,如果您自己进口,您可能会发现日语版本的“点击屏幕开始”有点吓人,您可能需要利用英文翻译。 同样,Zaurus 社区已经利用光速克服了许多国际障碍——导航外国说明的分步指南随处可见。

Zaurus 主导着开放嵌入式软件基金会 (OESF) 论坛上的讨论。 在那里您可能会遇到来自澳大利亚的 Sharp/Linux 的多产倡导者“Meanie”。 他在一系列网页中捕捉到了 Zaurus 所有权的本质,详细介绍了他的自定义和增强功能。 Meanie 的辛勤工作让我在承诺购买之前间接地评估了该产品。 在最近的一篇文章中,他提醒我们,他在使用通用 USB 电缆时烧坏了他价值 800 美元的 Zaurus SL-C3000。 社区认可了他的宝贵存在并表示愿意提供帮助,但他拒绝了他们多次提出的凑钱为他购买替代品的提议。 相反,他记录了他购买新款 Zaurus SL-C3100 的过程,并建议善意人士向他最喜欢的 Zaurus 开发人员捐款。

但有时一点财政支持就能起到很大的作用。 考虑一下来自 pdaXrom(一个流行的 Zaurus 子项目)的这个请求:“您知道吗? 我们的主要程序员每月只需要总共 200 美元就可以支付所有账单,从而专注于开发……”

结论

那么,为什么是这些特定的产品呢? 它们恰好是我自己最近购买的三款技术产品。 我在购买它们之前做了调查,我当然对 Linux 产品有偏见,但除此之外,这些社区的选择是相当随意的。 如果您想知道,是的,它们可以顺利协同工作。 我可以使用我的 Zaurus PDA 的 Web 浏览器访问 MythTV 并选择一个程序来使用我的 PVR-150MCE 录制,我也可以使用它通过 telnet 连接到我的 MediaMVP 以进行调试、探索和升级。 (实际的视频播放由遥控器启动。)更重要的是,经过一些繁琐的转码后,我可以绕过 MediaMVP 并在 3.7 英寸屏幕上观看海绵宝宝

Hauppauge 通过提供可靠的文档并允许重新分发其受版权保护的固件,简化了安装,在这方面值得称赞。 这证明了该公司进步的价值观以及 IVTV 开发人员的勤奋沟通。 因此,不要让名称中令人怀疑的冗余产品名称阻止您考虑这款设备。 谁知道呢,也许有一天 Hauppauge 会以“LinTv PVR-150 MythTV Edition”这样的名称重新命名这款卡。

Sharp 通过 GPL 软件对其硬件进行了补充,并且当然也跟进了,提供了其衍生作品的源代码。 最重要的是,它通过文档和偶尔的促销活动鼓励开发人员。 让我们希望未来版本的 Zaurus 将再次在日本市场以外直接推广。

这些项目中有两个直接受益于 GPL 的严格要求。 我不是一个狂热者——我个人发现其他许可证在某些情况下是有效且方便的——但很难想象这些制造商会在没有义务的情况下发布源代码。

所有这些项目的成功都是因为他们拥有热情的个人聚集在一个社区中。 这些个人都是普通的开发人员,他们参与了这些项目,现在已成为蓬勃发展的项目社区的关键成员。

运行这些项目的人们不仅仅是坐在家里在 Slashdot 上咆哮——他们正在创造性地花费时间,表现出纪律性,做下一步正确的事情,以便为世界系统地开发出伟大的产品,供大家免费享用。 他们是熟练的技术人员,已经成为社区领袖,耐心而快速地回答问题并提供建议。

这些社区专注于实际,不受形式主义的束缚。 这是一件务实的事情——通常,您带着特定的问题来到社区,社区会提供答案。 我个人倾向于潜伏——搜索论坛直到找到问题的答案,然后溜走。 也许,与其溜走,不如发布一条简短的“谢谢”消息对所有人都有好处,内容大致为:“感谢这个宝贵的资源; 我通过阅读过去的帖子找到了 XYZ 问题的答案。 顺便说一句,答案是 ABC,以防有人在搜索时偶然发现此消息。”

您如何支持这些和类似的项目? 如果答案尚未发布在 FAQ 中,请先提问! 没有唯一的答案——正如这里指出的,一些项目积极寻求财政支持,而另一些项目则避之不及。 务必关注各个网站上的任何广告并访问他们的赞助商(在适当的时候)。 先研究一下社区,如果感觉合适,就尝试加入。

本文资源: /article/8718

Randall Embry (randall@embry.com) 是印第安纳大学的雇员,受雇开发用于高等教育的开源软件。 他曾参与 Sakai 课程管理系统和 OSP 电子作品集。 他现在是 Kuali 财务信息系统的开发经理。

加载 Disqus 评论