vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2025-02-18 06:23 pm

Асинхронный линукс

Народ, кто-нибудь уже поимел опыт с <linux/io_uring.h>? Как оно по жизни?

Неожиданно для себя обнаружил, что в Линуксе пять лет назад появилась крутая фича. А именно три системных вызова, реализующих эффективный асинхронный интерфейс ко всем сервисам ядра.
  • int io_uring_setup(unsigned entries, struct io_uring_params *p);
  • int io_uring_enter(unsigned fd, unsigned to_submit, unsigned min_complete, unsigned flags, sigset_t *sig);
  • int io_uring_register(unsigned fd, unsigned opcode, void *arg, unsigned nr_args);
Революционная штука, как я погляжу. Может коренным образом изменить подход к разработке приложений. Только сложновато для программиста выходит. Есть статьи про это дело.
lev: (Default)

[personal profile] lev 2025-02-19 07:46 pm (UTC)(link)
double buffering легко делался в ос/ес на ПЛ/1
помнится с приятелем мутили печать с ленты, в один буфер читалось, другой форматировался, третий выводился (без спулера)