Проект LibOS развивает вариант ядра Linux с сетевым стеком в форме библиотеки

Для рассмотрения разработчиками ядра Linux представлен набор патчей с реализацией технологии LibOS для Linux. Суть LibOS сводится к возможности сборки сетевого стека ядра в форме внешней разделяемой библиотеки, выполняемой в пространстве пользователя и связываемой с пользовательскими приложениями. Важной особенностью, является то, что в библиотеку выносится штатный сетевой стек ядра, что позволяет использовать такие возможности, как TCP, UDP, SCTP, DCCP, Mobie IPv6, Multipath TCP и netlink. Подобный подход позволяет подключать к разным приложениями персонализированные варианты сетевого стека, адаптированные для конкретной области применения. Для разработчиков ядра поддержка LibOS позволит упростить тестирования кода сетевого стека при разных сценариях использования. Из интересных особенностей LibOS отмечается возможность привязки к одному приложению нескольких экземпляров сетевого стека, что даёт возможность симулировать на одной системе разные сложные сетевые топологии.

В текущем виде LibOS сосредоточен на сетевом стеке, то практически архитектура LibOS позволяет виртуализировать и другие подсистемы. Для управления работой вынесенного в библиотеку сетевого стека предоставляется специальный набор утилит. Например, можно назначить каждому экземпляру свои сетевые интерфейсы и маршрутизацию. Связываемые с библиотекой приложения не требуют модификации и работают по аналогии с обычным сетевым стеком, для чего применяется специальный транслятор системных вызовов (связанные с сокетами символы заменяются на локальные вызовы LibOS).

©  OpenNet