皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linus Torvalds 对 vDSO 中的 getrandom() 不以为然,并计划在 Linux 6.11 中拒绝使用它

Linus Torvalds 对 vDSO 中的 getrandom() 不以为然,并计划在 Linux 6.11 中拒绝使用它

虽然有计划在即将到来的 Linux 6.11 合并窗口中在 vDSO 中添加 getrandom() 以加快用户空间随机数生成访问的速度,但 Linus Torvalds 对这项工作并不信服,并打算拒绝任何针对 Linux 6.11 的拉取请求。

在过去的 2+ 年中,vDSO 中的 getrandom() 工作已经经历了 20+ 轮审查,但 Linus Torvalds 还不满足于它的设计,甚至还不满足于它的需求。Torvalds 在美国独立日花了一些时间来论证 Linux 内核邮件列表上补丁的优点。

Torvalds 首先写道

“没有人向我解释自上次 vdso getrandom 以来发生了什么变化,除非修复这个根本缺陷,否则我不打算拉它。

为什么这_如此_关键,它需要一个 vdso?

为什么用户空间不自己做呢?

这一切有什么神奇之处?

这一切对我来说似乎完全没有意义,因为它正在优化一些似乎没有人关心的东西,添加新的 VM 基础设施、新的魔法系统调用、yadda yadda。

上次我非常怀疑,绝对_什么都没有_改变。不知道为什么它现在突然又变得如此重要了。

我们不会“仅仅因为我们可以”添加东西。我们需要有一个该死的充分理由。我仍然没有看到原因,我甚至没有看到任何人试图解释原因。

然后他回应自己补充道

“哎呀,我希望看到实际的*用户*说’这是一个问题,这是我真正的负载,在getrandom()上花费了10%的时间,这解决了它”。

我对微基准测试或理论上的“如果用户需要高性能随机数”完全不感兴趣。

我需要一个真正的真实用户,他说“我不能只在上面使用 rdrand 和我自己的 chacha mixing”,并解释为什么在内核代码中将 SSE2 chachacha 公开为 vdso 如此重要,以及由内核维护的神奇缓冲区。

Torvalds 还在第三条消息中补充道

“最后一点:我对这一切如此否定的原因是,随机数子系统在两个主要冲突问题上有着绝对可怕的历史:人们想要合理的可用随机数,然后人们讨论”熵“这个词在另一边意味着什么。

老实说,我不希望内核在泥潭中卡住更多。我强烈怀疑,glibc 人想要这个的一个原因与完全相同的原因:_他们_不想和疯子_也_被困在同一个软垫房间里,所以他们喜欢“别人的问题”的概念。

所以没有。我不认为“libc 人想要这个”根本不是内核这样做的论据。恰恰相反。这是一个“传递烫手山芋”的事情。这就是为什么我真的希望那些真正的用户站起来说“我们不能使用 rdrand 和 rdtsc 以及我们自己的混音”。

在与作为补丁首席开发人员的 Jason Donenfeld 来回交谈后,Torvalds 评论道

“杰森。这闻起来很香。

天哪,让我们做一个交易:做一个五行补丁,将生成号添加到 vdso 数据中,并基本上将其记录为“内核认为您需要使用 getrandom 重新设定缓冲区种子”标志。

而且*如果*将来证明有任何主要原因导致这不起作用,我会采取 1000+ 行的东西,好吗?

交易?

鉴于 Torvalds 的评论,这些随机的 vDSO 补丁似乎不会在即将到来的 Linux 6.11 周期中被选中。