玩酷网

下一个将改变世界的Linux程序?iour ing

几年前,开发人员知道eBPF是一种构建防火墙的便捷方式,但现在它已经广泛应用于各个领域。大多数人对Linux一无所知。为

几年前,开发人员知道eBPF是一种构建防火墙的便捷方式,但现在它已经广泛应用于各个领域。

大多数人对Linux一无所知。为什么会这样?与大多数操作系统相比,Linux运行得更好。没必要捅进去。但是在表面之下,像eBPF这样的程序正在改变我们每天使用的操作系统下的基础设施。

正如本周透露的,微软选择将eBPF移植到Windows,而不是试图用自己的程序复制它的功能。Io_uring可能成为Linux开发者的下一个工具。

Io_uring允许Linux异步启动一个操作并等待它完成。与异步I/O(AIO)子系统不同,它的前身io_uring使用用户空间和Linux内核共享的内存环形缓冲区。这使它能够提交操作并收集结果,而不需要大量耗时的Linux内核调用。它的API很复杂,但是如果你的应用程序需要大量的I/O,那么你会得到极大的性能提升。

当我说“大量”I/O时,我指的是大量的I/O调用,千兆字节或更多。当我说“大大提高”时,我的意思是即使在2020年,io _ uring也比旧的Linux AIO快20倍。

这种提速让开发者关注。正如后端即服务公司Chisel Strike的首席执行官兼创始人Glauber Costa所说,“它从根本上改变了Linux应用程序的设计方式:它不再是在需要时发出系统调用的代码流,而是需要考虑文件是否准备好了。它们自然成为一个事件循环,不断地向共享缓冲区添加内容,并处理先前完成、刷新和重复的条目。”

科斯塔并不孤单。在都柏林Linux基金会欧洲开源峰会上,资深Linux内核开发者Jonathan Corbet在Linux内核峰会的演讲中表示,io_uring是一个游戏改变者。它将“使用户空间和内核空间之间的边界变得多孔”

在Linux存在的大部分时间里,缓慢的用户空间和快速的内核空间进程之间只有一个狭窄而缓慢的系统调用桥。

正如科比特所说,这“允许你通过戒指做一些非常复杂的事情。从某种意义上说,它已经成为了当前系统的一个独立的API,允许你将一些简单的程序加载到内核中并异步执行,然后在它们发生时得到结果。这是一种非常不同的Unix类型的系统编程方法,人们开始用它做有趣的事情。”

在未来,他认为两种方法在编程中几乎是融合在一起的,因为io _ uring的关键内存缓冲环概念被用于其他基本的Linux编程进程中。

Linus Torvalds在与欧洲开源峰会同时举行的Linux管道工大会上接受采访时表示,虽然io _ uring仍然是一项新技术,但“我认为这项技术相当合理。我认为它已经在小范围内证明了自己。人们开始说,‘嘿,我想用这个工具!’

托瓦尔兹不确定io_uring是否会改变Linux编程,但他不排除这种可能性。

评论列表

123456789
123456789 3
2022-09-17 15:32
赞同