On linux, the two AIO implementations are fundamentally different. The POSIX AIO is a user-level implementation that performs normal blocking I/O in multiple threads, hence giving the illusion that the I/Os are asynchronous. The main reason to do this is that: it works with any filesystem it works (essentially) on any operating system (keep in mind that gnu's libc is portable) it works on files wi