Для рассмотрения разработчиками ядра Linux представлен (https://lkml.org/lkml/2015/3/24/254) набор патчей (https://github.com/libos-nuse/net-next-nuse) с реализацией технологии LibOS (http://libos-nuse.github.io/) для Linux. Суть LibOS сводится к возможности сборки сетевого стека ядра в форме внешней разделяемой библиотеки, выполняемой в пространстве пользователя и связываемой с пользовательскими приложениями. Важной особенностью, является то, что в библиотеку выносится штатный сетевой стек ядра, что позволяет использовать такие возможности, как TCP, UDP, SCTP, DCCP,
Mobie IPv6, Multipath TCP и netlink.Подобный подход позволяет подключать к разным приложениями персонализированные варианты полноценного сетевого стека, адаптированные для конкретной области применения. Для разработчиков ядра поддержка LibOS позволит упростить тестирования кода сетевого стека при разных сценариях использования. Из интересных особенностей LibOS отмечается возможность привязки к одному приложению нескольких экземпляров сетевого стека, что даёт возможность симулировать на одной системе разные сложные сетевые топологии.
В текущем виде LibOS сосредоточен на сетевом стеке, но теоретически архитектура LibOS позволяет виртуализировать и другие подсистемы. Для управления работой вынесенного в библиотеку сетевого стека предоставляется специальный
набор утилит (https://github.com/libos-nuse/linux-libos-tools). Например, можно назначить каждому экземпляру свои сетевые интерфейсы и маршрутизацию. Связываемые с библиотекой приложения не требуют модификации и работают по аналогии с обычным сетевым стеком, для чего применяется специальный транслятор системных вызовов (связанные с сокетами символы заменяются на локальные вызовы LibOS).
<center><iframe src="//www.slideshare.net/slideshow/embed_code/44752487" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe></center>
URL: https://lkml.org/lkml/2015/3/24/254
Новость: http://www.opennet.ru/opennews/art.shtml?num=41904