io_uring 究竟是什么?

Ama*_*ani 5 io io-uring

最近我在不同的论坛上看到了这个。据我阅读一些论坛讨论可以看出,它与输入和输出有关。io_uring 究竟是什么?

Ano*_*non 10

io_uring是一个(截至 2019 年中期的新)Linux 内核接口,可让您高效地异步发送和接收数据。它最初旨在针对块设备和文件,但后来获得了处理网络套接字等功能的能力。

与类似的东西不同epoll(),它是围绕完成模型而不是准备模型构建的。这是可取的,因为其他操作系统已经成功使用完成模型有一段时间了。io_uring为 Linux 提供了具有竞争力和完整的功能,而没有以前的 Linux AIO 接口缺点

作者io_uring编写了一个名为Efficient IO with io_uring的 PDF 文档,该文档以技术方式讨论了其用法。io_uring指南的提供了更温和的介绍。您可以阅读 ScyllaDB 开发人员 Glauber Costa 在How io_uring and eBPF Will Revolutionize Programming in Linux 中对其进行宣传。最后,LWN.net 已经写过io_uring很多次了

(无耻的插件:我在“Linux 上真的没有异步块 I/O?”问题写了一个更链接的答案