https://habr.com/ru/post/646073/
https://wiki.postgresql.org/wiki/FreeBSD/AIO
В 2019 году произошло великое событие: инженеры из Facebook написали
новый механизм асинхронной работы с дисковым IO, который получил
название io_uring. Он был добавлен в ядро версии 5.1. Вполне неплохо
-- Linux 2019 года уже может полноценно работать с файлами.
Тогда как в FreeBSD AIO появился в 5.0 в 2003-ем году. Facebook молодцы!
Ну а в macOS, как и с сетевым стэком (f19e0f25f0bf0c1563602d922e9cdf0c1f5ff00b):
MacOS в скобках, потому что это не серверная ОС. aio там
присутствует, но вместе с aio идет огромное количество граблей.
From: kmeaw
Date: 2022-01-18 02:27:34Z
Не поверил, что в столь широко используемых ядрах ОС, AIO появился
относительно недавно. Стал искать упоминания.
AIO в Linux появился сильно раньше 2019 - файл fs/aio.c существует в
git-репозитории ядра с момента его создания (2005-04-16, 2.6.12-rc2).
В linux-2.6.0/fs/aio.c есть комментарий:
Copyright 2000, 2001, 2002 Red Hat, Inc. All Rights Reserved.
mtime у этого файла: 2003-12-18 02:58:48
Впервые он появился в экспериментальном 2.5.32:
-rw-r--r-- torvalds/eng 28606 2002-08-27 23:26 linux-2.5.32/fs/aio.c
Самое старое упоминание AIO во FreeBSD я могу найти в версии 3.0:
AIO_READ(2) BSD System Calls Manual
…
HISTORY
The aio_read() system call first appeared in FreeBSD 3.0.
Revision 26685
Added Mon Jun 16 12:10:21 1997 UTC (24 years, 7 months ago) by dyson
Original Path: head/sys/sys/aio.h
From: Sergey Matveev
Date: 2022-01-18 08:02:32Z
*** kmeaw [2022-01-18 05:26]:
>AIO в Linux появился сильно раньше 2019 - файл fs/aio.c
Я так понимаю, что, с точки зрения авторов, это очень геморройное
решение, требующее DIRECT флага и всего из этого вытекающего.
Поэтому только io_uring считается началом чего-то юзабельного.
>Самое старое упоминание AIO во FreeBSD я могу найти в версии 3.0:
>The aio_read() system call first appeared in FreeBSD 3.0.
Хм, кстати да. Ведь сам смотрел в man-page, в котором написано:
The aio facility appeared as a kernel option in FreeBSD 3.0. The aio
kernel module appeared in FreeBSD 5.0.
и я только на aio kernel module обратил внимание.
У меня то вообще мнения нет на счёт AIO -- не приходилось использовать.