number A few years ago, developers realized that eBPF was a convenient way to build firewalls, but now it’s used everywhere. Be prepared to do the same.
Most people don’t know anything regarding internal Linux. Why are they? Linux works better than most operating systems. No need to rush inside. But beneath the surface, there are programs like eBPF that are changing the infrastructure of the operating systems we use every day.
As it was revealed this week, Microsoft has chosen to port the eBPF to Windows rather than trying to duplicate eBPF’s functionality in its own software. io_uring might be the next Swiss-Army tool for Linux developers.
Io_uring allows Linux to start a process asynchronously and wait for it to complete. Unlike its predecessor, the asynchronous input/output (AIO) subsystem, io_uring uses a memory loop buffer shared between user space and the Linux kernel. This allows you to send processes and collect results without the need for time-consuming Linux kernel calls. Its API is complex, but if your application requires a lot of I/O, it will greatly improve performance.
I/OI “Large” means gigabytes or more of large I/O calls. And when we say “dramatically improved”, even in 2020, io_uring was up to 20 times faster than legacy Linux AIO.
This kind of overclocking causes developers to stand up and get their attention. Whether a file is ready or not, it naturally ends up in an event loop, constantly adding something to the shared buffer, processing previous entries that have completed, rinsing them, and iterating them, said Glauber Costa, CEO and founder of ChiselStrike, a back-end as a service. “
Costa is not alone. At the Linux Foundation’s Open Source Summit in Dublin, Linux kernel lead developer Jonathan Corbett said in his speech at the Linux kernel summit that io_uring is a game-changer. It will “make the boundary between user space and kernel space porous.”
For most of Linux’s existence, there has been only a narrow, slow bridge for system calls between slow user space and fast kernel space operations.
It’s a completely different way of programming on Unix-type systems, says Corbet, and people are starting to do interesting things with it. “
In the future, it is believed that the two will largely be combined for programming purposes, as the io_uring main memory loop buffer concept will be used in other core Linux programming processes.
In an interview at the Linux Plumber Conference, which coincided with the Open Source Summit in Europe, Linus Torvalds said that while io_uring is still new: people are starting to say, “I want to use this tool!” “
Torvalds isn’t sure that io_uring will transform Linux programming, but he doesn’t deny it either.
So if you’re a serious Linux developer, or someone building high performance computing, a web server, or a DBMS, check out io_uring. I’m glad you did. ®