Microsoft реализует eBPF для Linux на Windows

    Microsoft запустил проект с открытым исходным кодом, чтобы адаптировать инструмент ядра Linux eBPF (Extended Berkeley Packet Filter) для работы на Windows.

    Архитектура проекта и связанных компонентов
    Архитектура проекта и связанных компонентов

    Функция eBPF предлагает поддержку расширенных пакетных фильтров Беркли и используется в большей части Unix-подобных систем для программ, которые должны, помимо прочего, анализировать сетевой трафик. По сути, это виртуальная машина на основе регистров, разработанная для запуска пользовательской 64-битной RISC-подобной архитектуры посредством своевременной компиляции внутри ядра Linux.

    Отношения eBPF с ядром Linux можно сравнить с отношениями JavaScript с веб-страницами — они ​​позволяют изменять поведение ядра Linux путем загрузки выполняемой программы без изменения фактического исходного кода ядра или загрузки модуля ядра.

    Windows в последние годы перешла на использование инструментов Linux. Программы eBPF доказали свою эффективность в Linux для защиты от отказа в обслуживании и наблюдения за системой, и возник интерес к адаптации технологии для других операционных систем.

    Проект ebpf-for-windows нацелен на то, чтобы позволить разработчикам использовать наборы инструментов eBPF и интерфейсы прикладного программирования поверх существующих версий Windows.

    По словам партнера-разработчика ПО Microsoft Дэйва Талера и главного инженера-программиста Пурны Гаддехосур, они используют несколько существующих проектов с открытым исходным кодом eBPF и адаптируют их к работе в Windows. Пока проект находится на ранней стадии разработки. eBPF для Windows будет полагаться на IOVisor uBPF и верификатор PREVAIL с использованием специфической среды хостинга.

    Разработчики Windows смогут использовать такие инструменты, как clang, для генерации байт-кода eBPF из исходного кода, который можно использовать с командной строкой Windows netsh через общую библиотеку на API Libbpf. Библиотека передает байт-код eBPF через статический верификатор PREVAIL в среде безопасности Windows.

    Инженеры Microsoft говорят, что проект направлен на обеспечение совместимости кода eBPF с использованием хуков и помощников, которые существуют как в Linux, так и в Windows.

    Пока добавлены два перехватчика — XDP и привязка сокета — для обработки событий и взаимодействия с вспомогательными API-интерфейсами, доступными через оболочку eBPF.

    Комментарии 2

      +1
      Так, в будущем будет три среды рабочих столов: windows, gnome, kde.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое