Repolode
microsoft

microsoft/ebpf-for-windows

Среда выполнения eBPF для Windows, позволяющая запускать существующие Linux-инструменты, API и программы eBPF поверх ядра Windows.

Звёзды
3,588
Форки
310
Открытые issues
322
Последний коммит
4 часа назад

Что это?

eBPF for Windows переносит модель программирования eBPF в Windows. Проект повторно использует существующие проекты eBPF, например JIT-компилятор uBPF и верификатор PREVAIL, и добавляет слой интеграции с Windows, чтобы программы, собранные стандартными инструментами eBPF, такими как clang, можно было загружать в ядро. Для загрузки программ и управления ими доступны совместимые с Libbpf API и инструмент командной строки bpftool.

Программы можно развёртывать в трёх режимах: нативном, в котором байткод преобразуется в C и включается в драйвер Windows (предпочтительный режим, работающий при включённом HVCI); с JIT-компиляцией через службу в пользовательском режиме; и с интерпретатором, доступным только в отладочных сборках. Программы подключаются к хукам ядра и вызывают вспомогательные функции-обёртки для публичных API ядра Windows. Проект поддерживает Windows 11 и Windows Server 2022 или более поздние версии.

Ключевые возможности

  • 01Запускает в Windows программы eBPF, собранные стандартными инструментами, такими как clang.
  • 02Предоставляет совместимые с Libbpf API и поддержку bpftool для загрузки программ.
  • 03Предлагает нативный режим, в котором байткод eBPF компилируется в драйверы Windows, совместимые с HVCI.
  • 04Поддерживает JIT-компиляцию с помощью компилятора uBPF.
  • 05Предоставляет хуки и вспомогательные функции-обёртки для публичных API ядра Windows.

Сценарии использования

  • Запуск логики для наблюдаемости или защиты от DoS в ядре Windows с помощью инструментов eBPF.
  • Перенос сетевых программ или программ трассировки на основе eBPF в Windows с минимальными изменениями исходного кода.
  • Развёртывание программ eBPF на уровне ядра в системах с включённым HVCI.

Быстрый старт

  1. 1

    Прочитайте руководство Getting Started Guide в docs/GettingStarted.md, чтобы установить проект и попробовать его

Что важно знать

  • Требуется Windows 11 или более поздняя версия либо Windows Server 2022 или более поздняя версия.
  • В описании проекта указано, что он находится в разработке.
  • При включенном HVCI работают только программы eBPF в нативном режиме, поскольку программы, скомпилированные JIT, не могут запускаться, а интерпретатор отсутствует в релизных сборках.

В подборках

Темы

Частые вопросы

Что такое ebpf-for-windows?
Среда выполнения eBPF для Windows, позволяющая запускать существующие Linux-инструменты, API и программы eBPF поверх ядра Windows. eBPF for Windows переносит модель программирования eBPF в Windows. Проект повторно использует существующие проекты eBPF, например JIT-компилятор uBPF и верификатор PREVAIL, и добавляет слой интеграции с Windows, чтобы программы, собранные стандартными инструментами eBPF, такими как clang, можно было загружать в ядро. Для загрузки программ и управления ими доступны совместимые с Libbpf API и инструмент командной строки bpftool.
ebpf-for-windows можно использовать бесплатно? Какая у него лицензия?
ebpf-for-windows распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
ebpf-for-windows всё ещё поддерживается?
Активно поддерживается. Последний коммит в ebpf-for-windows — 6 нояб. 2026 г..
Для чего можно использовать ebpf-for-windows?
Запуск логики для наблюдаемости или защиты от DoS в ядре Windows с помощью инструментов eBPF. Перенос сетевых программ или программ трассировки на основе eBPF в Windows с минимальными изменениями исходного кода. Развёртывание программ eBPF на уровне ядра в системах с включённым HVCI.
Как установить ebpf-for-windows?
Прочитайте руководство Getting Started Guide в docs/GettingStarted.md, чтобы установить проект и попробовать его
Где скачать ebpf-for-windows?
Исходный код и инструкции по установке — на GitHub: https://github.com/microsoft/ebpf-for-windows

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

CNI на базе eBPF и сетевой, защитный и наблюдательный слой для кластеров Kubernetes с политиками L3–L7, учитывающими идентификаторы, и заменой kube-proxy.

25,8 тыс.+49 за неделю4,2 тыс.GoApache-2.0Обновлён 5 часов назад

Экспериментальный прозрачный прокси-движок для Linux на Rust: следует дизайну eBPF и синтаксису конфигурации dae, а для групп исходящих подключений использует подход sing-box.

1,5 тыс.+476 за неделю133RustGPL-3.0Активно поддерживаетсяОбновлён 5 часов назад