Ядро Linux выучило HTTP
Товарищи из ETH Zurich, NYU и NVIDIA принесли на Linux Plumbers Conference проект Beeper - парсер седьмого уровня сети, живущий прямо в ядре. Пишется на Rust, крутится на eBPF, код открытый.
Механика простая. Обычно запрос топает привычным маршрутом: сетевая карта --> ядро --> системный вызов --> приложение, которое наконец соизволит ответить. Beeper перехватывает HTTP прямо в ядре, умеет кэшировать ответы и отдавать их, вообще не беспокоя приложение. Как швейцар, который не только открывает дверь, но и отвечает посетителям за вас - большинство из них до вас просто не доходит.
Цифры из презентации: до 3.4× роста пропускной способности, а в связке с hyper-fast-path (быстрый путь для Rust-библиотеки Hyper) - до 4.5×. Применений нарисовали больше, чем просто кэш: мониторинг трафика на уровне приложений, редиректы по содержимому запроса.
Пока это исследование, а не готовый продакшен - авторы на это и не претендуют. Но тренд любопытный: eBPF уже следит за сетью, безопасностью и планировщиком, а теперь ещё и подрабатывает веб-сервером.
Если парсинг HTTP уже живёт в ядре - что остановит энтузиастов дальше? Не удивлюсь, если лет через пять find / -name nginx* на боевом сервере ничего не найдёт.
Че сразу в сетевую не вставили