Skip to content
Advertisement

“Linux aio” and “Linux native aio” are the same thing?

I’m recently digging into linux io model, and I frequently hear that like windows IOCP, linux has its own aio model implementation: Glibc aio and kernel aio.

Question:

(1) when people say “linux native aio”, which model is indicated?

(2) I hear 2 different terms, “linux aio” and “linux native aio”. Are they the same thing, or indicating different implementations?

Advertisement

Answer

Linux native AIO is kernel AIO. The interfaces are io_setup(2), io_submit(2), io_getevents(2), and a handful of other calls.

When people are talking about “linux AIO”, they probably mean “Linux native AIO” – though who knows. This is the Internet, after all.

Posix AIO is something altogether different. It’s implemented with threading in user-space. See the top answer to Difference between POSIX AIO and libaio on Linux? for a good, well vetted description of the differences between Posix AIO and Linux kernel AIO.

Advertisement