Терминальный интерфейс для захвата и анализа сетевого трафика в Linux на базе eBPF.
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
Прочитайте руководство 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 обновляется ежедневно.
Похожие проекты
Библиотека и платформа на C, обёртывающая libbpf для компиляции и загрузки eBPF-программ с поддержкой удалённой компиляции и обратного переноса функций на старые версии ядра.
CNI на базе eBPF и сетевой, защитный и наблюдательный слой для кластеров Kubernetes с политиками L3–L7, учитывающими идентификаторы, и заменой kube-proxy.
Пошаговое руководство по eBPF с короткими запускаемыми примерами на C, Go и Rust, в основном на базе libbpf и CO-RE.
Экспериментальный прозрачный прокси-движок для Linux на Rust: следует дизайну eBPF и синтаксису конфигурации dae, а для групп исходящих подключений использует подход sing-box.
APM-система для мониторинга, трассировки и диагностики распределённых и cloud-native микросервисных архитектур.