LWN: 该怎么merge exFAT代码?

微软的exFAT文件系统经过长时间的专利争议后,终于有望被整合进Linux主线内核。exFAT由微软在2006年创建,主要用于大容量闪存卡。尽管存在专利问题,但随着微软的推动,exFAT的代码已被清理并提交至Linux社区,引发了关于其质量和整合方式的讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

640
点击上方蓝色“Linux News搬运工”关注我们~

Examining exFAT

By Jonathan Corbet

Linux kernel开发者都喜欢让新功能尽快合入,例如新的文件系统支持。不过面对exFAT文件系统,大家很犹豫。exFAT是微软在2006年创造的,用于大容量的闪存卡。Linux kernel从来没有相关的支持。微软最近宣布希望把exFAT加入Linux主干分支,虽然扫除了合法性上的障碍,不过仍然遗留不少挑战需要面对。

多年来,Linux社区基本都是忽视exFAT的。因为这是在众多专利重重保护下的一个私有文件系统格式。此前曾经有一个版本的Linux驱动可以支持,是作为私有module发布在各种Android设备上的。在2013年,这个驱动程序的源代码泄露到GitHub上,不过因为这部分代码从来没有正式采用开源软件协议发布过,并且一直有专利争议,所以从来没人认真想把这个驱动推到Linux mainline去。

情况一直没有改变,哪怕微软在2018年决定加入Open Invention Network (OIN)也没有产生什么变化。exFAT一直不属于OIN Linux System Definition的一部分,也就没有任何新专利保护。当时有人提出这个问题,不过没多少人关注。大多数人看起来都已经把exFAT给忘掉了,毕竟采用这个文件系统的设备也并不是市场主流。

今年7月,Valdis Klētnieks,发出一封邮件,介绍道他已经清理了exFAT的代码,想知道如何能推入Linux mainline。这引起了不少讨论,不过最终看来专利问题仍然阻碍了exFAT的合入。当时的讨论也专门提醒参与其中的几位微软雇员,希望他们能想办法改善这个境地。看起来这确实在微软内部引起了一些讨论,最终微软同意把exFAT加到Linux mainline。

没人能搞清楚这些巨型公司里面有了那些变化。当初微软不肯答应把exFAT包含在OIN里面,看起来就像是特意为之的一种做法,就是传统的微软人行事方式。不过现在看起来微软变了,包括开放exFAT,很多事情人们都没有想到微软会这么做。

Greg Kroah-Hartman很快就直接接受了Klētnieks的代码,提议合入staging tree,因为据说还需要不少工作完善才能从staging tree毕业。不过很快Christoph Hellwig就提出了反对意见,他认为应该“直接review这个该死的代码,把它放到更合适的代码tree上去”。他不喜欢把文件系统的代码放在staging tree里来做完善,尤其是前不久的EROFS文件系统的处理就引起不少争议。然后这封信就孵化出一个单独的话题来争论EROFS文件系统的争议根本跟exFAT无关。

exFAT代码质量还是比较有争议。如果放到staging tree里面的话,确实可以逐步改善。不过exFAT还是有不少深层次的尖锐问题。其中之一是 Pali Rohár抱怨的exFAT的规范文档并不完整。他特别指出“TexFAT”扩展在文档中完全没有描述。Klētnieks 回复中指出这个扩展其实只在Windows CE中用过,现在已经不再需要了。

另一个更麻烦一点的问题,是这个文件系统模块根本不应该存在,基本没有什么调试参数的必要(所以不该放在staging下面)。Hellwig是这么说的:“这个代码基本上就是把fs/fat/目录重新实现了一遍,而且没有按照kernel的标准,只是加了一些函数来增加exfat支持。所以这个代码里面多数工作对我们帮助不大。”

他认为正确的做法应该是在kernel现有的VFAT文件系统里面增加相关的支持代码。不过Kroah-Hartman回答说他好几年前就试过这种方法了,不过他的结论是没法这么实现。不过他觉的现在可能好弄一些了,毕竟现在有了规范文档。如果exFAT需要完全重新实现成为目前已有的VFAT代码的一部分,那么staging的版本可以直接删除就好了,只要大家都觉得它已经不再有用。此前已经有过一些例子都是这么操作的。

Hellwig明确表达他不希望这么推进。不过他的担心可能不足以阻止exFAT合入staging tree。不管是否会合入staging tree,看起来exFAT要想真正合入mainline,还是有不少工作要做。不过,毕竟已经被忽略了13年了,现在急着几天内把它合入mainline,也并没有多大必要。

全文完

LWN文章遵循CC BY-SA 4.0许可协议。

极度欢迎将文章分享到朋友圈 
热烈欢迎转载以及基于现有协议修改再创作~

长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值