Linux API с точки зрения разработчика высокопроизводительного веб-сервераЭлементы архитектуры
Профессиональную деятельность начал в 2003 году в роли разработчика веб-сайтов. C 2011 по 2022 трудился в компании NGINX, Inc (c 2019 часть F5 Networks). За это время успел поработать практически над всеми подсистемами одноименного веб-сервера и его коммерческой версии. Разрабатывал модули протоколов SPDY и HTTP/2, а также механизм пулов потоков для асинхронного исполнения блокирующих и ресурсоемких операций. Принимал участие в работе над JavaScript-интерпретатором njs. Помимо реализации различной функциональности, немало времени посвятил оптимизации кода под Linux. Был одним из ключевых авторов сервера нового поколения NGINX Unit, разработку которого и возглавлял последние годы.
С 2022 года возглавляет отдел разработки компании ООО Веб-Сервер.
В данном докладе я дам обзор системных интерфейсов, которые предоставляет Linux для эффективной обработки запросов. В частности, речь пойдет о мультиплексировании ввода-вывода, отправке файлов и многопоточной обработке входящих соединений. Расскажу о нюансах и недостатках в сравнении с аналогичными интерфейсами других unix-подобных операционных систем. Личный опыт показывает, что продуманность и качество реализации интерфейса для прикладных программ — это, к сожалению, довольно слабая сторона ядра Linux.