После подсистемы Windows для Linux (WSL), которая была хорошо принята различными пользователями операционной системы, Microsoft решила позаимствовать еще одну важную технологию у сообщества Linux, eBPF (расширенный фильтр пакетов Беркли) и перенести его в Windows.
Компании сказал, что это не будет форк eBPF, Да, это будет использоваться в существующих проектах, включая проект IOVisor uBPF и верификатор PREVAIL, для запуска API-интерфейсов и программ eBPF в их собственных операционных системах, включая Windows 10 и Windows Server 2016 (или выше).
За последние пять лет Microsoft, которая в начале этого тысячелетия все еще рассматривала Linux как раковую опухоль компьютерной индустрии, стала одним из крупнейших участников разработки ядра.
С помощью WSL он проложил путь для множества приложений в Windows, позволяя системным администраторам и программистам использовать инструменты и службы Linux непосредственно из Windows без необходимости виртуализировать что-либо еще или создавать сложные инфраструктуры.
Теперь Microsoft решила добавить eBPF в Windows, поскольку Эта технология хорошо известна своей программируемостью и гибкостью. особенно для расширения ядра операционной системы для таких случаев использования, как защита от DoS-атак и наблюдаемость.
Это виртуальная машина на основе реестра разработан для работы на 64-битной пользовательской архитектуре RISC через JIT-компиляцию в ядре Linux. Таким образом, программы eBPF особенно хорошо подходят для отладки и анализа системы, например, для мониторинга файловой системы и вызовов журнала.
Связь eBPF с ядром Linux сравнивалась с отношением JavaScript к веб-страницам., позволяет изменять поведение ядра Linux, загружая работающую программу eBPF, без изменения исходного кода ядра или загрузки модуля ядра.
eBPF представляет собой одно из крупнейших нововведений ядра Linux за последнее десятилетие. И поскольку был некоторый интерес к адаптации технологии для других операционных систем, Microsoft решила попробовать программное обеспечение Windows. Проект под названием ebpf-for-windows имеет открытый исходный код и доступен на GitHub.
«Проект ebpf-for-windows нацелен на то, чтобы дать разработчикам возможность использовать знакомые наборы инструментов eBPF и интерфейсы прикладного программирования (API) в существующих версиях Windows», - пояснил Дэйв Талер в своем блоге в понедельник, младший инженер-программист Microsoft и Пурна Гаддехозур Старший инженер-программист Microsoft.
«Основываясь на работе других, этот проект берет несколько существующих проектов eBPF с открытым исходным кодом и добавляет средний уровень для работы поверх Windows».
Компания не называет это форком eBPF. Таким образом, разработчики Windows смогут использовать такие инструменты, как clang, для генерации байт-кода.
eBPF исходного кода, который можно вставить в любое приложение или использовать с командной строкой Windows netsh. По заявлению компании, это делается с помощью общей библиотеки, которая использует API-интерфейсы Libbpf.
Библиотека передает байт-код EBPF через PREVAIL в среде безопасности Windows, что позволяет компоненту ядра доверять демону пользовательского режима, подписанному доверенным ключом.
Инженеры Microsoft говорят, что проект направлен на обеспечение поддержки кода eBPF с помощью хуков и помощников, которые существуют как в Linux, так и в Windows.
«Linux предоставляет множество ссылок и помощников, некоторые из которых очень специфичны для Linux (например, с использованием внутренних структур данных Linux), которые не могут быть применимы к другим платформам», - заявили они.
В конце концов Если вам интересно узнать об этом больше, вы можете проверить детали По следующей ссылке. Хотя для тех, кто заинтересован в возможности взглянуть на репозиторий eBPF на GitHub, они могут сделать это из по следующей ссылке.