对 GNSS 和 GPS 子系统的支持

作者:Zack Brown

最近,对于一个子系统是否真正解决了其核心目的存在争议。 这是一个不寻常的争论。 通常,开发人员知道他们是否正在为一个功能提供支持。

在这个特殊案例中,Johan Hovold 发布了补丁,以添加 GNSS 子系统(全球导航卫星系统),该子系统被 GPS 设备使用。 他的想法是,商用 GPS 设备可能使用任何输入/输出端口和协议(串行、USB 等),迫使用户代码执行困难的探测,以确定它正在处理哪个硬件。 Johan 的代码将统一 /dev/gnss0 文件下的用户界面,该文件将隐藏各种硬件差异。

但是,Pavel Machek 一点也不喜欢这个。 他说 Johan 的 GNSS 子系统中没有任何实际的 GNSS 特定代码。 有很多 GPS 设备无法与 Johan 的代码一起使用。 Pavel 认为,Johan 的补丁充其量是串行设备的通用电源管理系统。 他认为它不应该使用名称(例如“GNSS”),这些名称将来可能无法用于可能编写的“真正的”GNSS 子系统。

但是,在内核开发中,“足够好”往往胜过“好但未实现”。 Johan 承认他的代码不支持所有 GPS 设备,但他表示,许多是使用专有接口的专有设备,这些公司可以提交自己的补丁。 此外,Johan 在他的补丁中包含了两个 GPS 驱动程序,表明即使他的子系统可能不包含 GNSS 特定代码,它仍然对其预期目的有用——规范 GPS 设备接口。

这场辩论来回持续了一段时间。 Pavel 似乎掌握了最终的真理——Johan 的代码充其量是命名不当,最糟糕的情况是不完整且结构不良。 尽管 Johan 拥有现实世界的实用性,就像他的补丁一样,其他开发人员长期以来一直在请求它,并且解决了当今人们面临的实际问题。

最后,Greg Kroah-Hartman 通过简单地接受该补丁并将其提供给 Linus Torvalds 以包含在主内核源代码树中,从而停止了所有争论——至少目前是这样。 他基本上说,没有人提供竞争补丁,所以 Johan 的补丁会在有更好的补丁出现之前暂时使用。

Pavel 不想这么快放弃,他至少试图协商将名称从“GNSS”更改掉,以便“真正的”GNSS 子系统仍然可以出现而不会发生冲突。 但凭借他新获得的官方支持,Johan 说:“这就是真正的 gnss 子系统。 接受它吧。”

这是一个奇怪的情况。 另一方面,Linux 内核通常避免尝试为尚不存在的基础设施划定地盘。 也许 Johan 的非 GNSS GNSS 子系统将是 GPS 设备支持所需的一切。 在这种情况下,为什么要假设它会比这更复杂呢? 不祥的预感。

注意:如果您在上面被提及并且想在评论区上方发布回复,请将包含您的回复文本的消息发送至 ljeditor@linuxjournal.com。

Zack Brown 是 Linux JournalLinux Magazine 的技术记者,并且是“Kernel Traffic”每周新闻通讯和“Learn Plover”速记打字教程的前作者。 他于 1993 年首次在他的 386 上安装了 Slackware Linux,该 386 具有 8 MB 的 RAM,并且他的思想被开源社区永久震撼。 他是纯粹策略棋盘游戏 Crumble 的发明者,您可以用一些纸板自己制作。 他还喜欢写小说、尝试动画、改革拉班舞谱、设计和缝制自己的衣服、学习法语以及与朋友和家人共度时光。

加载 Disqus 评论