Перейти к основному содержимому

Вышел F-Stack 2.0 — сетевой стек FreeBSD в пользовательском пространстве

Состоялся релиз F-Stack 2.0 — библиотеки, которая выносит сетевой стек FreeBSD в пользовательское пространство и позволяет приложениям работать с сетевой картой напрямую, минуя стек ядра. Проект развивает Tencent и применяет в собственных…

F-Stack — это редакция сетевого стека FreeBSD, оформленная как отдельная библиотека для работы в пользовательском пространстве. Код написан на языке Си и распространяется под лицензией BSD, поддерживаются Linux и FreeBSD. Проект создан китайской телекоммуникационной компанией Tencent и используется в её сервисах.

Смысл решения в том, чтобы приложения могли задействовать собственный локальный стек, не зависящий от сетевого стека операционной системы. Это актуально, когда штатный TCP/IP ядра Linux становится узким местом и ограничивает масштабирование. По заявлению проекта, теоретически F-Stack позволяет выйти на потолок сетевой производительности карты, а в некоторых ситуациях — в разы увеличить число обрабатываемых мелких запросов.

Прирост достигается за счёт отказа от копирования пакетов, планирования потоков, обработки прерываний и системных вызовов. С сетевой картой библиотека взаимодействует через фреймворк DPDK, который даёт низкоуровневый доступ к адаптерам и снижает накладные расходы. Функциональность TCP/IP соответствует стеку FreeBSD 15. Для разработки доступны стандартный API POSIX (socket, epoll, kqueue) и собственный интерфейс на микропотоках; немодифицированные приложения можно подключать через LD_PRELOAD.

В версии 2.0 компоненты стека обновлены с FreeBSD 13 до FreeBSD 15. Появился многопоточный режим в одном процессе (thread_mode=1) в дополнение к многопроцессному, а также легковесный режим primary_slim, при котором основной процесс занимается только инициализацией и координацией, а приём пакетов и обработка очередей rx/tx идут на дочерних процессах. Добавлена поддержка аппаратного ускорения TSO, в том числе улучшенная для IPv6, возможность менять MTU и поддержка jumbo-кадров, расширено управление аппаратным расчётом контрольных сумм.

Среди других изменений — функция ff_zc_recv() для приёма данных без промежуточной буферизации, переработанная ff_zc_send(), опция FF_KERNEL_COEXIST для совместной работы с сетевым стеком ядра и сохранение трафика в pcap-дампах с наносекундной точностью. В config.ini добавлены параметры idle_loop_interval, extra_eal_args, drain_ring_size, reload_heartbeat_timeout_ms и reload_udp_idle_ms. Проект также поддерживает переведённые на F-Stack редакции Nginx 1.28 и СУБД Redis 6.2.6, которые, по данным источника, показывают производительность выше обычных сборок поверх системного стека; в сборке nginx реализована перезагрузка конфигурации и обновление бинарного файла без разрыва соединений.

Почему это важно

Для бизнеса и владельцев высоконагруженных сайтов F-Stack — способ выжать больше из имеющегося железа там, где возможности ядра Linux уже исчерпаны: например, при обработке большого числа мелких запросов. Разработчикам он интересен готовыми сборками Nginx и Redis и совместимостью со стандартным API, хотя переход на обход ядра требует понимания DPDK и меняет привычную модель эксплуатации. Для российских команд это ещё и открытая BSD-лицензия и поддержка Linux — можно тестировать без вендорских обязательств, но стоит помнить, что проект развивает Tencent и его развитие зависит от интереса компании.

Источник: OpenNET. Материал пересказан ИИ-агентом.

Алексей

Практикующий full-stack разработчик. Специализируюсь на создании, доработке и ускорении коммерческих сайтов на WordPress, 1C-Битрикс, Joomla и MODX.

Подробнее об опыте и стеке →

Похожие статьи по теме

Новости IT • 2 мин чтения

Arrowmax показала отвёртку с камерой и нейросетью для подбора бит

Arrowmax анонсировала электрическую отвёртку со встроенной камерой, которая распознаёт винты по снимку и подсказывает нужную насадку. В комплект входят 52 биты из инструментальной стали…

Читать статью полностью →
Новости IT • 2 мин чтения

Claude нашла уязвимости в Chrome, Safari, Android, Windows и Linux

Anthropic провела испытания внутренней версии Claude, которая сама обнаружила уязвимости в пяти платформах и собрала из них работающие цепочки эксплойтов. Атаки проводились в исследовательской…

Читать статью полностью →
Новости IT • 2 мин чтения

Астрономы нашли кандидата в шестую карликовую планету Солнечной системы

Обсерватория имени Веры Рубин объявила об открытии объекта 2026 ED138 за орбитой Нептуна — возможного нового члена семейства карликовых планет. Если статус подтвердится, он…

Читать статью полностью →

Обсудим ваш проект или задачу по доработке сайта

Опишите задачу в свободной форме, приложите ссылку на сайт или файл с ТЗ. Я изучу вводные и вернусь с конкретной вилкой по срокам, стоимости и вариантами реализации.

  • Честная техническая оценка без навязывания лишних услуг
  • Ответ лично от разработчика в течение 1–2 рабочих часов
  • Готовность подключиться как к разовой задаче, так и к проекту под ключ