IO
Blocking vs non-blocking vs multiplexing (2+ calls) vs async (AIO)
Linux kernel IO
AIO: POSIX AIO - glibc v2.1, 1999, and native Linux AIO (KAIO or libaio) - Linux v2.6, 2003
POSIX AIO calls: user land, portable to any OS, implemented with threads
Setup/teardown: none
Submission: aio_read, aio_write, aio_fsync
Status: aio_return, aio_error, aio_suspend, aio_cancel
Linux KAIO calls: kernel mode, works only on directed-IO
Setup/teardown: io_setup, io_destroy
Submission: io_submit
Status: io_getevents
io_uring