Что такое io_uring и найдется ли ему место в Go

Системное программирование

Доклад принят в программу конференции

Целевая аудитория

GO разработчики интересующиеся низкоуровневым программированием

Тезисы

Уже не первый год в сообществе Linux проходят бурные обсуждения инструмента io_uring. Несмотря на то, что этой фиче более пяти лет, она все равно остается довольно экзотической в наших краях. Тем не менее, новый механизм уже нашел применение во множестве рантаймов, веб-серверов, баз данных, файловых систем и других сложных программных продуктах.

В своем докладе я расскажу про:
- связь асинхронности и неблокирующего I/O
- класические подходы к работе с не блокирующим IO
- новый интерфейс ядра - io_uring
- liburing как об удобном способе работы с io_uring
- использование libruing в GO и почему все не так гладко
- движение в сторону включения io_uring в рантайм GO
- опыт создания приложения с io_uring

Rust/C++ разработчик, активно работал с Go с 2018 по 2021 год, но до сих пор интересуюсь судьбой языка. Активный участник open source сообщества (https://github.com/godzie44) и автор статей на Хабре (https://habr.com/ru/users/godzie/articles/).

Видео