stringtranslate.com

eBPF

eBPF — это технология, которая может запускать программы в привилегированном контексте , таком как ядро ​​операционной системы . [5] Она является преемником механизма фильтрации Berkeley Packet Filter (BPF, где «e» изначально означало «расширенный») в Linux и также используется в несетевых частях ядра Linux.

Он используется для безопасного и эффективного расширения возможностей ядра во время выполнения, не требуя внесения изменений в исходный код ядра или загрузки модулей ядра . [6] Безопасность обеспечивается с помощью встроенного в ядро ​​верификатора, который выполняет статический анализ кода и отклоняет программы, которые дают сбой, зависают или иным образом негативно влияют на работу ядра. [7] [8]

Эта модель проверки отличается от изолированных сред, где среда выполнения ограничена, а среда выполнения не имеет представления о программе. [9] Примерами программ, которые автоматически отклоняются, являются программы без строгих гарантий выхода (т. е. циклы for/while без условий выхода) и программы, разыменовывающие указатели без проверок безопасности. [10]

Дизайн

Загруженные программы, прошедшие проверку, либо интерпретируются , либо компилируются в ядре точно в срок (JIT-компиляция) для собственной производительности выполнения. Модель выполнения управляется событиями и, за редкими исключениями, выполняется до завершения [ 2], что означает, что программы могут быть прикреплены к различным точкам перехвата в ядре операционной системы и запускаться при возникновении события. Варианты использования eBPF включают (но не ограничиваются) сетевые функции, такие как XDP , трассировку и подсистемы безопасности . [5] Учитывая, что эффективность и гибкость eBPF открыли новые возможности для решения производственных проблем, Брендан Грегг назвал eBPF «суперспособностями для Linux». [11] Линус Торвальдс сказал: «BPF на самом деле был действительно полезен, и его настоящая сила в том, как он позволяет людям выполнять специализированный код, который не включается, пока его не попросят». [12] Благодаря своему успеху в Linux, среда выполнения eBPF была перенесена на другие операционные системы, такие как Windows . [4]

История

eBPF развился из классического Berkeley Packet Filter (cBPF, ретроспективно примененное название). На самом базовом уровне он ввел использование десяти 64-битных регистров (вместо двух 32-битных длинных регистров для cBPF), другую семантику перехода, инструкцию вызова и соответствующее соглашение о передаче регистров, новые инструкции и другую кодировку для этих инструкций. [13]

Архитектура и концепции

карты eBPF

Карты eBPF — это эффективные хранилища ключей/значений , которые находятся в пространстве ядра и могут использоваться для обмена данными между несколькими программами eBPF или для связи между приложением пользовательского пространства и кодом eBPF, работающим в ядре. Программы eBPF могут использовать карты eBPF для хранения и извлечения данных в широком наборе структур данных. Реализации карт предоставляются ядром ядра. Существуют различные типы, [44] включая хэш-карты, массивы и кольцевые буферы.

На практике карты eBPF обычно используются для таких сценариев, как запись программой пространства пользователя информации о конфигурации для извлечения программой eBPF, сохранение программой eBPF состояния для последующего извлечения другой программой eBPF (или будущего запуска той же программы) или запись программой eBPF результатов или показателей в карту для извлечения программой пространства пользователя, которая представит результаты. [45]

виртуальная машина eBPF

Виртуальная машина eBPF работает в ядре и принимает программу в форме инструкций байт-кода eBPF , которые преобразуются в машинные инструкции , которые выполняются на ЦП. Ранние реализации eBPF интерпретировали байт-код eBPF, но теперь это заменено процессом компиляции Just-in-Time (JIT) по причинам, связанным с производительностью и безопасностью. [45]

Виртуальная машина eBPF состоит из одиннадцати 64-битных регистров с 32-битными подрегистрами, счетчика программ и большого стекового пространства BPF размером 512 байт. Эти регистры общего назначения отслеживают состояние при выполнении программ eBPF. [46]  

Хвостовые крики

Хвостовые вызовы могут вызывать и выполнять другую программу eBPF и заменять контекст выполнения , аналогично тому, как системный вызов execve() работает для обычных процессов. Это в основном позволяет программе eBPF вызывать другую программу eBPF. Хвостовые вызовы реализованы как длинный прыжок, повторно используя тот же стековый фрейм . Хвостовые вызовы особенно полезны в eBPF, где стек ограничен 512 байтами. Во время выполнения функциональность может быть добавлена ​​или заменена атомарно, тем самым изменяя поведение выполнения программы BPF. [46] Популярный вариант использования хвостовых вызовов — это распределение сложности программ eBPF по нескольким программам. Другой вариант использования — замена или расширение логики путем замены содержимого массива программы во время его использования. Например, для обновления версии программы без простоя или для включения/отключения логики. [47]

Звонки BPF-BPF

Обычно считается хорошей практикой в ​​разработке программного обеспечения группировать общий код в функцию, инкапсулирующую логику для повторного использования. До ядра Linux 4.16 и LLVM 6.0 типичная программа eBPF C должна была явно указывать компилятору встроить функцию, что приводило к объектному файлу BPF, содержащему дублирующие функции. Это ограничение было снято, и основные компиляторы eBPF теперь поддерживают написание функций естественным образом в программах eBPF. Это уменьшает размер сгенерированного кода eBPF, делая его более дружественным к кэшу инструкций ЦП. [45] [46]

верификатор eBPF

Верификатор является основным компонентом eBPF, и его главная обязанность — гарантировать, что программа eBPF безопасна для выполнения. Он выполняет статический анализ байт-кода eBPF, чтобы гарантировать ее безопасность. Верификатор анализирует программу для оценки всех возможных путей выполнения. Он проходит по инструкциям по порядку и оценивает их. Процесс проверки начинается с поиска в глубину по всем возможным путям программы, верификатор имитирует выполнение каждой инструкции, отслеживая состояние регистров и стека, если какая-либо инструкция может привести к небезопасному состоянию, проверка завершается неудачей. Этот процесс продолжается до тех пор, пока все пути не будут проанализированы или не будет обнаружено нарушение. В зависимости от типа программы верификатор проверяет наличие нарушений определенных правил. Эти правила могут включать проверку того, что программа eBPF всегда завершается в течение разумного периода времени (без бесконечных циклов или бесконечной рекурсии) , проверку того, что программе eBPF не разрешено читать произвольную память, поскольку возможность произвольного чтения памяти может привести к утечке конфиденциальной информации в программе, проверку того, что сетевым программам не разрешено получать доступ к памяти за пределами границ пакета , поскольку смежная память может содержать конфиденциальную информацию, проверку того, что программам не разрешено блокироваться , поэтому все удерживаемые спин-блокировки должны быть сняты, и только одна блокировка может удерживаться за раз, чтобы избежать взаимоблокировок в нескольких программах, проверку того, что программам не разрешено читать неинициализированную память. Это не исчерпывающий список проверок, которые выполняет верификатор, и из этих правил есть исключения. Примером является то, что программы трассировки имеют доступ к помощникам, которые позволяют им читать память контролируемым образом, но эти типы программ требуют привилегий root и, таким образом, не представляют угрозы безопасности. [47] [45]

Со временем верификатор eBPF развивался и включал в себя новые функции и оптимизации, такие как поддержка ограниченных циклов, устранение мертвого кода , проверка функций и обратные вызовы .

eBPF CO-RE (скомпилировать один раз — запустить везде)

Программы eBPF используют память и структуры данных из ядра. Некоторые структуры могут быть изменены между различными версиями ядра, изменяя структуру памяти. Поскольку ядро ​​Linux постоянно развивается, нет гарантии, что внутренние структуры данных останутся теми же в разных версиях. CO-RE — это фундаментальная концепция в современной разработке eBPF, которая позволяет программам eBPF быть переносимыми между различными версиями и конфигурациями ядра. Она решает проблему различий в структуре ядра между различными дистрибутивами и версиями Linux . CO-RE включает BTF (формат типа BPF) — формат метаданных , который описывает типы, используемые в ядре и программах eBPF, и предоставляет подробную информацию о макетах структур, смещениях полей и типах данных. Он обеспечивает доступность типов ядра во время выполнения, что имеет решающее значение для разработки и проверки программ BPF. BTF включен в образ ядра ядер с поддержкой BTF. Специальные перемещения выдаются компилятором ( например, LLVM). Эти перемещения фиксируют высокоуровневые описания того, к какой информации программа eBPF намеревается получить доступ. Библиотека libbpf адаптирует программы eBPF для работы с макетом структуры данных на целевом ядре, где они запускаются, даже если этот макет отличается от ядра, где был скомпилирован код. Для этого libbpf нужна информация о перемещении BPF CO-RE, сгенерированная Clang как часть процесса компиляции. [45] Скомпилированная программа eBPF хранится в объектном файле ELF (Executable and Linkable Format) . Этот файл содержит информацию о типе BTF и перемещения, сгенерированные Clang . Формат ELF позволяет загрузчику eBPF (например, libbpf) динамически обрабатывать и корректировать программу BPF для целевого ядра . [48]

Брендинг

Псевдоним eBPF часто используется взаимозаменяемо с BPF, [2] [49] например, сообществом разработчиков ядра Linux. eBPF и BPF упоминаются как название технологии, как LLVM . [2] eBPF произошел от машинного языка для виртуальной машины фильтрации в Berkeley Packet Filter как расширенная версия, но поскольку его варианты использования переросли сетевые технологии, сегодня «eBPF» предпочтительно интерпретируется как псевдоаббревиатура . [ 2]

Пчела является официальным логотипом eBPF. На первом саммите eBPF было проведено голосование, и талисман пчелы был назван «eBee». [50] [51] Первоначально логотип был создан Вадимом Щеколдиным. [51] Ранее существовали и неофициальные талисманы eBPF, [52] но они не получили широкого распространения.

Управление

Фонд eBPF был создан в августе 2021 года с целью расширения вкладов, вносимых для расширения мощных возможностей eBPF и выхода за рамки Linux. [1] Среди основателей — Meta , Google , Isovalent, Microsoft и Netflix . Цель — собирать, составлять бюджет и тратить средства на поддержку различных проектов с открытым исходным кодом, открытыми данными и/или открытыми стандартами, связанных с технологиями eBPF [53], чтобы и дальше стимулировать рост и принятие экосистемы eBPF. С момента основания к ним также присоединились Red Hat , Huawei , Crowdstrike , Tigera, DaoCloud, Datoms, FutureWei. [54]

Принятие

eBPF был принят на вооружение рядом крупных производственных пользователей, например:

Безопасность

Благодаря простоте программирования eBPF использовался в качестве инструмента для реализации микроархитектурных атак по сторонним каналам синхронизации, таких как Spectre, против уязвимых микропроцессоров . [99] В то время как непривилегированный eBPF реализовал смягчение последствий атак с использованием кратковременного выполнения, [100] непривилегированное использование в конечном итоге было отключено сообществом разработчиков ядра по умолчанию для защиты от использования в случае будущих уязвимостей оборудования. [101]

Смотрите также

Ссылки

  1. ^ abc "Meta, Google, Isovalent, Microsoft и Netflix запускают eBPF Foundation как часть Linux Foundation". Linux Foundation . 12 августа 2021 г. Получено 1 июля 2022 г.
  2. ^ abcde "BPF Internals". Конференция USENIX LISA 2021. 1 июня 2021 г. Получено 1 июля 2022 г.
  3. ^ "eBPF и Kubernetes: маленькие помощники для масштабирования микросервисов". CNCF KubeCon + CloudNativeCon Europe 2020. 19 августа 2020 г. Получено 1 июля 2022 г.
  4. ^ abc "Making eBPF work on Windows". Блог Microsoft Open Source . 10 мая 2021 г. Получено 1 июля 2022 г.
  5. ^ ab "eBPF Documentation: What is eBPF?". eBPF.io . Получено 1 июля 2022 г. .
  6. ^ "eBPF - Переосмысление ядра Linux". QCon 2020. Получено 1 июля 2022 г.
  7. ^ "Безопасные программы. Основа BPF". eBPF Summit 2021. 8 ноября 2020. Получено 1 июля 2022 .
  8. ^ "BPF и Spectre: смягчение атак с транзиентным выполнением". Конференция POPL 2022. 22 января 2022 г. Получено 1 июля 2022 г.
  9. ^ "eBPF - Тихая революция платформ из облака" (PDF) . SIGCOMM 2023, 1-й семинар по eBPF и расширениям ядра . 10 сентября 2023 г. . Получено 5 октября 2023 г. .
  10. ^ Хедам, Никлас (26 мая 2023 г.). «eBPF — с точки зрения программиста» (PDF) . doi :10.13140/RG.2.2.33688.11529/4.
  11. ^ "Linux BPF Superpowers". Блог Брендана Грегга . 5 марта 2016 г. Получено 1 июля 2022 г.
  12. ^ "Линус Торвальдс говорит о возвращении к работе над Linux". Интервью zdnet с Линусом Торвальдсом . 23 октября 2018 г. Получено 1 июля 2022 г.
  13. ^ "Classic BPF vs eBPF". LWN . Март 2014. Получено 6 января 2023 .
  14. ^ "net: filter: Just In Time compiler". lore.kernel.org . Апрель 2011 . Получено 1 июля 2022 .
  15. ^ «Еще один новый подход к seccomp». LWN . 1 января 2012 г. Получено 1 июля 2022 г.
  16. ^ "Обновления BPF". lore.kernel.org . Март 2014 . Получено 1 июля 2022 .
  17. ^ "Linux kernel 3.18, раздел 1.3. Системный вызов bpf() для программ виртуальной машины eBFP [sic]". kernelnewbies.org . 7 декабря 2014 г. . Получено 6 сентября 2019 г. .
  18. ^ "С днем ​​рождения, BPF!". lore.kernel.org . Сентябрь 2014 г. Получено 1 июля 2022 г.
  19. ^ "трассировка: прикрепить программы eBPF к kprobes". lore.kernel.org . Март 2015 . Получено 1 июля 2022 .
  20. ^ "eBPF support for cls_bpf". lore.kernel.org . Март 2015 . Получено 1 июля 2022 .
  21. ^ "net, sched: add clsact qdisc". lore.kernel.org . Январь 2016 . Получено 1 июля 2022 .
  22. ^ ab "eBPF-based Networking, Observability, Security". cilium.io . Январь 2016 . Получено 1 июля 2022 .
  23. ^ "LLVM 3.7 Release Notes". releases.llvm.org . Август 2015. Получено 1 июля 2022 .
  24. ^ "bcc: Укрощение Linux 4.3+ Трассировка суперспособностей". brendangregg.com . Сентябрь 2015 . Получено 1 июля 2022 .
  25. ^ "Добавить драйвер bpf hook для раннего отбрасывания и пересылки пакетов". lore.kernel.org . Июль 2016 . Получено 1 июля 2022 .
  26. ^ "eCHO episode 9: XDP and Load Balancing". youtube.com . Июнь 2021 . Получено 1 июля 2022 .
  27. ^ Хёйланд-Йоргенсен, Токе; Брауэр, Йеспер Дангаард; Боркманн, Даниэль; Фастабенд, Джон; Герберт, Том; Ахерн, Дэвид; Миллер, Дэвид (декабрь 2018 г.). «Путь данных eXpress: быстрая программируемая обработка пакетов в ядре операционной системы». Труды 14-й Международной конференции по новым сетевым экспериментам и технологиям . стр. 54–66. doi : 10.1145/3281411.3281443 . ISBN 9781450360807. S2CID  53779310.
  28. ^ "Cilium - Fast IPv6 Container Networking with BPF and XDP". slideshare.net . Август 2016. Получено 1 июля 2022 .
  29. ^ ab "Новый GKE Dataplane V2 повышает безопасность и видимость контейнеров". cloud.google.com . Май 2021 . Получено 16 августа 2022 .
  30. ^ "перенастройка кольца nfp и поддержка XDP". lore.kernel.org . Ноябрь 2016 . Получено 1 июля 2022 .
  31. ^ ab "XDP 1,5 года в производстве. Эволюция и извлеченные уроки". lpc.events . Ноябрь 2018 . Получено 16 августа 2022 .
  32. ^ "pull-request: bpf 2017-11-23". lore.kernel.org . Ноябрь 2017 . Получено 1 июля 2022 .
  33. ^ "tools: add bpftool". lore.kernel.org . Сентябрь 2017 . Получено 1 июля 2022 .
  34. ^ "Представляем поддержку AF_XDP". lore.kernel.org . Январь 2018 . Получено 1 июля 2022 .
  35. ^ «Драйвер режима опроса AF_XDP» . doc.dpdk.org . Август 2022 года . Проверено 16 августа 2022 г.
  36. ^ "BPF приходит в брандмауэры". lwn.net . Февраль 2018. Получено 1 июля 2022 .
  37. ^ «Почему сообщество разработчиков ядра заменяет iptables на BPF?». cilium.io . Апрель 2018 г. Получено 1 июля 2022 г.
  38. ^ "bpftrace (DTrace 2.0) для Linux 2018". brendangregg.com . Октябрь 2018 . Получено 16 августа 2022 .
  39. ^ «Объединение kTLS и BPF для интроспекции и применения политик» (PDF) . vger.kernel.org . Ноябрь 2018 г. . Получено 1 июля 2022 г. .
  40. ^ "BTF deduplication and Linux kernel BTF". nakryiko.com . Ноябрь 2018 . Получено 1 июля 2022 .
  41. ^ "BPF Performance Tools (книга)". brendangregg.com . Декабрь 2019 . Получено 16 августа 2022 .
  42. ^ "Политика MAC и аудита с использованием eBPF (KRSI)". lore.kernel.org . Март 2020 . Получено 16 августа 2022 .
  43. ^ "BPF in GCC". lwn.net . Сентябрь 2020 г. Получено 16 августа 2022 г.
  44. ^ "bpf.h - include/uapi/linux/bpf.h - исходный код Linux v5.15.86 - Bootlin". elixir.bootlin.com . Получено 2024-08-01 .
  45. ^ abcde Райс, Лиз (2023). Изучение eBPF: программирование ядра Linux для улучшения наблюдаемости, сетевых возможностей и безопасности (первое издание). Севастополь, Калифорния: O'Reilly Media. ISBN 978-1-0981-3512-6. OCLC  1353981026.
  46. ^ abc "Архитектура BPF — документация Cilium 1.16.0". docs.cilium.io . Получено 2024-08-01 .
  47. ^ ab "Tail calls - eBPF Docs". ebpf-docs.dylanreimerink.nl . Получено 2024-08-04 .
  48. ^ "BPF CO-RE - eBPF Docs". ebpf-docs.dylanreimerink.nl . Получено 2024-08-07 .
  49. ^ Брендан Грегг (декабрь 2019 г.). Инструменты производительности BPF . Addison-Wesley. ISBN 978-0136554820.
  50. ^ "eBPF Summit Day Two". cilium.io . Октябрь 2020 . Получено 1 июля 2022 .
  51. ^ ab "Как зовут пчелу?". ebpf.io . Получено 1 июля 2022 г. .
  52. ^ "eBPF: One Small Step". Блог Брендана Грегга . Май 2015 г. Получено 1 июля 2022 г.
  53. ^ "eBPF Foundation Charter". ebpf.foundation . Июнь 2021 г. Получено 16 августа 2022 г.
  54. ^ "eBPF Foundation Governance". ebpf.foundation . Август 2022 . Получено 16 августа 2022 .
  55. ^ "Открытый исходный код Katran, масштабируемого сетевого балансировщика нагрузки". fb.com . Май 2018. Получено 16 августа 2022 .
  56. ^ "BPF at Facebook". youtube.com . Декабрь 2019. Получено 16 августа 2022 .
  57. ^ "От XDP до сокета". lpc.events . Сентябрь 2021 . Получено 16 августа 2022 .
  58. ^ "eCHO episode 29: BPF LSM with KP Singh". youtube.com . Ноябрь 2021 . Получено 16 августа 2022 .
  59. ^ "Аудит безопасности BPF в Google - Брендан Джекман/КП Сингх". youtube.com . Ноябрь 2021 г. . Получено 16 августа 2022 г. .
  60. ^ "Замена HTB на EDT и BPF". netdevconf.info . Июль 2020 . Получено 16 августа 2022 .
  61. ^ «Архитектура Cloudflare и как BPF пожирает мир». blog.cloudflare.com . Май 2019 . Получено 16 августа 2022 .
  62. ^ "Здесь тесно!". blog.cloudflare.com . Октябрь 2019 г. Получено 16 августа 2022 г.
  63. ^ "Готовый к производству eBPF, или как мы исправили API сокетов BSD". blog.cloudflare.com . Февраль 2022 . Получено 16 августа 2022 .
  64. ^ "Устранение уязвимостей безопасности в ядре Linux с помощью модуля безопасности eBPF Linux". blog.cloudflare.com . Июнь 2022 . Получено 16 августа 2022 .
  65. ^ "Unimog - балансировщик нагрузки на периферии Cloudflare". blog.cloudflare.com . Сентябрь 2020 . Получено 16 августа 2022 .
  66. ^ «Как Netflix использует журналы потоков eBPF в масштабе для понимания сети». netflixtechblog.com . Июнь 2021 г. Получено 16 августа 2022 г.
  67. ^ «Расширение Vector с помощью eBPF для проверки производительности хоста и контейнера». netflixtechblog.com . Февраль 2019 г. Получено 16 августа 2022 г.
  68. ^ "Инфраструктура трафика Dropbox: Edge network". dropbox.tech . Октябрь 2018 г. Получено 16 августа 2022 г.
  69. ^ "eBPF Traffic Monitoring". source.android.com . Август 2022. Получено 16 августа 2022 .
  70. ^ "Расширение ядра с помощью eBPF". source.android.com . Август 2022 . Получено 16 августа 2022 .
  71. ^ "Перевод NAT46 с BPF". lore.kernel.org . Апрель 2022 . Получено 16 августа 2022 .
  72. ^ "BPF для Android: как мы используем BPF для наших сетевых решений - Мадхан Радж Канагаратинам". www.youtube.com . Февраль 2024 . Получено 19 февраля 2022 .
  73. ^ Программное обеспечение L4 Load Balancing для Kubernetes Services в Yahoo! – Картикеян Тангарадж, Verizon Media, 19 августа 2021 г. , получено 03.02.2024
  74. ^ "Skyfall: агент eBPF для обеспечения наблюдаемости инфраструктуры". www.linkedin.com . Получено 2024-02-03 .
  75. ^ «Как Alibaba Cloud создает высокопроизводительные облачные сети Pod в производственных средах?». alibabacloud.com . Сентябрь 2020 г. Получено 16 августа 2022 г.
  76. ^ "Datadog on eBPF". datadogon.datadoghq.com . Февраль 2021 . Получено 16 августа 2022 .
  77. ^ "Мониторинг безопасности во время выполнения с помощью eBPF" (PDF) . sstic.org . Февраль 2021 г. . Получено 16 августа 2022 г. .
  78. ^ «Наше путешествие по eBPF в Datadog - Лоран Бернай и Табита Сейбл, Datadog» . youtube.com . ноябрь 2020 года . Проверено 16 августа 2022 г.
  79. ^ «История пользователя — Как Trip.com использует Cilium». cilium.io . Февраль 2020 . Получено 16 августа 2022 .
  80. ^ «Trip.com: Вступление в эру облачных сетей с Cilium+BGP». arthurchiao.art . Ноябрь 2020 г. Получено 16 августа 2022 г.
  81. Основной доклад: Open Source Intrusion Detection for Containers at Shopify — Шейн Лоуренс и Крис Нова, 4 сентября 2020 г. , получено 09.02.2024 г.
  82. ^ Роджерс, Патрик (15.08.2023). "BPFAgent: eBPF для мониторинга в DoorDash - блог инженеров DoorDash". Блог инженеров DoorDash . Получено 09.02.2024 .
  83. ^ "Making eBPF work on Windows". cloudblogs.microsoft.com . Май 2021 . Получено 16 августа 2022 .
  84. ^ «Как запустить программы eBPF на базе Linux с помощью eBPF для Windows». cloudblogs.microsoft.com . Февраль 2022 г. . Получено 16 августа 2022 г. .
  85. ^ «Прогресс в работе eBPF на Windows». cloudblogs.microsoft.com . Ноябрь 2019 г. Получено 16 августа 2022 г.
  86. ^ "Cilium Standalone Layer 4 Load Balancer XDP". cilium.io . Июль 2022 . Получено 16 августа 2022 .
  87. ^ Ограничение скорости доступа к внутренним сервисам в виртуальной сети – Ник Булиан, DigitalOcean, 19 августа 2021 г. , получено 04.02.2024
  88. ^ «Создание безопасной и обслуживаемой PaaS — Брэдли Уитфилд, Capital One». youtube.com . Ноябрь 2020 г. Получено 16 августа 2022 г.
  89. ^ Почему eBPF меняет телекоммуникационное сетевое пространство – Дэниел Бернье, Bell Canada, 31 августа 2021 г. , получено 09.02.2024 г.
  90. ^ Elastic Universal Profiling , получено 2024-02-26
  91. ^ «Подумайте об eBPF для мониторинга безопасности ядра — Falco в Apple — Эрик Сейдж и Мелисса Килби, Apple». youtube.com . Октябрь 2021 г. Получено 16 августа 2022 г.
  92. ^ "eBPF & Cilium at Sky – Себастьян Дафф, Энтони Комтуа, Джозеф [так в оригинале] Сэмюэл, Sky". youtube.com . Август 2021 . Получено 16 августа 2022 .
  93. ^ «Запуск и организация нескольких программ XDP и TC – Брайан Меррелл, Walmart». youtube.com . Август 2021 г. Получено 16 августа 2022 г.
  94. ^ «Высокопроизводительная балансировка нагрузки @Walmart – Канти Павулури и Каран Далал, Walmart». youtube.com . Август 2021 г. . Получено 16 августа 2022 г. .
  95. ^ "DIGLIM eBPF: безопасная загрузка на уровне приложений с минимальными изменениями в дистрибутивах - Роберто Сассу". youtube.com . Август 2022 . Получено 16 августа 2022 .
  96. ^ «Частное облако IKEA, сетевое взаимодействие на основе eBPF, балансировка нагрузки и наблюдаемость с... Карстеном Нильсеном». youtube.com . Май 2022 г. Получено 16 августа 2022 г.
  97. ^ Панельная дискуссия: есть ли на самом деле байт за всей этой шумихой? eBPF в производстве!, 28 октября 2022 г. , получено 09.02.2024
  98. ^ Использование трассировки пользовательского пространства для решения проблем DNS – Андрюс Грабаускас, Palantir, 19 августа 2021 г. , получено 09.02.2024
  99. ^ "Чтение привилегированной памяти с помощью побочного канала". googleprojectzero.blogspot.com . 3 января 2018 г. . Получено 16 августа 2022 г. .
  100. ^ "BPF и Spectre: смягчение атак с использованием транзиентного выполнения". popl22.sigplan.org . Получено 16 августа 2022 г. .
  101. ^ "bpf: Запретить непривилегированный bpf по умолчанию". kernel.org . Получено 16 августа 2022 г. .

Дальнейшее чтение

Внешние ссылки