Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

EBPF

Неперевірена версія(що робити?)
Матеріал з Вікіпедії — вільної енциклопедії.

Статус версії сторінки

Сторінка не перевірена

Немаєперевірених версій цієї сторінки; ймовірно, її щене перевіряли на відповідність правилам проєкту.
eBPF
Типвіртуальна машина Редагувати інформацію у Вікіданих
АвторОлексій Старовоїтов,
Даніель Боркман[1][2]
РозробникСпільнота з відкритим вихідним кодом,Meta,Google, Isovalent,Microsoft,Netflix[1]
Стабільний випуск (2014; 12 років тому (2014))
Операційна системаLinux,Windows[3]
Мова програмуванняC
ЛіцензіяLinux:GPL
Windows:MIT License
РепозиторійLinux:git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
Windows:github.com/Microsoft/ebpf-for-windows/
Вебсайтebpf.io

eBPF є технологією, яка може виконувати програми впривілейованому контексті, такому якядро операційної системи.[4] Це наступникBerkeley Packet Filter (BPF, де "e" спочатку означало "розширений") механізму фільтрації в Linux і також використовується в не мережевих частинах ядра Linux.

Він використовується для безпечного та ефективного розширення можливостей ядра під часвиконання без необхідності вносити зміни допочаткового коду ядра або завантажуватимодулі ядра.[5] Безпека забезпечується через внутрішньоядерний верифікатор, який виконуєстатичний аналіз коду та відхиляє програми, які викликають збої, зависання або іншим чином негативно впливають на ядро.[6][7]

Ця модель валідації відрізняється від середовищ зпісочницею, де середовище виконання обмежене і не має уявлення про програму.[8] Прикладом програм, які автоматично відхиляються, є програми без надійних умов завершення (наприклад, цикли for/while без умов завершення) та програми, які здійснюють розіменування вказівників без перевірок на безпеку.[9]

Дизайн

[ред. |ред. код]

Завантажені програми, які пройшли перевірку, абоінтерпретуються, або компілюються в ядрі за допомогоюкомпіляції під час виконання (JIT) для досягнення високої продуктивності. Модель виконання єподійно-орієнтованою та, за рідкими винятками, працює за принципомвиконання до завершення,[2] що означає, що програми можуть бути прикріплені до різних точокперехоплення в ядріопераційної системи та виконуються під час спрацювання події. Випадки використання eBPF включають (але не обмежуються)мережеві підсистеми, такі якXDP,трасування та підсистемибезпеки.[4] Завдяки ефективності та гнучкості eBPF відкрилися нові можливості для вирішення виробничих проблем, іБрендан Ґреґґ знаменито назвав eBPF "суперсилою для Linux".[10]Лінус Торвальдс зазначив: "BPF насправді був дуже корисним, і його реальна сила полягає в тому, як він дозволяє створювати спеціалізований код, який активується лише тоді, коли це потрібно".[11] Завдяки успіху в Linux, середовище виконання eBPF було портовано на інші операційні системи, такі якWindows.[3]

Історія

[ред. |ред. код]

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

Найважливіші етапи еволюції eBPF
ДатаПодія
Квітень 2011Перший JIT-компілятор (Just-in-time compiler) для класичного фільтра пакетів Берклі (BPF) був інтегрований в ядро Linux.[13]
Січень 2012Перше некласичне використання класичного фільтра пакетів Берклі — seccomp-bpf.[14]
Березень 2014Девід С. Міллер, головний адміністратор мережевої підсистеми Linux, прийняв переробку старого інтерпретатора BPF в ядрі. Його замінив інтерпретатор eBPF, а ядро Linux тепер перекладає класичний BPF (cBPF) у команди eBPF.[15]
Вересень 2014Введено системний виклик bpf, який забезпечив доступ до набору інструкцій eBPF з користувацького простору.[16]
Березень 2015Можливість прикріплювати eBPF до kprobe була інтегрована як перший випадок використання для трасування.[17]
Серпень 2015Модуль компілятора eBPF був інтегрований у версію LLVM 3.7.0.[18]
Вересень 2015Брендан Грегг оголосив про новий набір інструментів для трасування на основі eBPF, відомий як проект bcc.[19]
Липень 2016eBPF отримав можливість бути прикріпленим до ядра драйвера для обробки вхідних пакетів. Цей рівень відомий як eXpress DataPathXDP.[20]
Серпень 2016Cilium був представлений як проект для швидкої мережевої комунікації IPv6 для контейнерів за допомогою eBPF і XDP.[21]
Листопад 2016Netronome додав можливість оффлоаду програм eBPF для XDP та BPF.[22]
Травень 2017Впроваджено балансувальник навантаження Katran відMeta, який використовує eBPF та XDP.[23]
Листопад 2017eBPF став окремим підсистемою ядра для спрощення управління патчами ядра.[24]
Січень 2018Випущена нова родина сокетів AF_XDP для високошвидкісної обробки пакетів.[25]
Грудень 2019Випущено першу книгу на 880 сторінок про BPF, написану Бренданом Греггом.[26]
Липень 2022Microsoft випустила eBPF для Windows.[3]

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

[ред. |ред. код]

eBPF мапи

[ред. |ред. код]

eBPF мапи — це ефективнісховища ключ/значення, які знаходяться впросторі ядра та можуть використовуватися для обміну даними між декількома програмами eBPF або для комунікації між користувацьким простором та кодом eBPF, що працює в ядрі. Програми eBPF можуть використовувати мапи eBPF для зберігання та отримання даних у широкому спектрі структур даних. Реалізації мап надаються ядром. Існують різні типи,[27] включаючи хеш-мапи, масиви та кільцеві буфери.

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

Віртуальна машина eBPF

[ред. |ред. код]

Віртуальна машина eBPF працює в межах ядра та приймає програму у вигляді байткоду eBPF, який конвертується унативні машинні інструкції, що виконуються на процесорі. Ранні реалізації eBPF виконували інтерпретацію байткоду, проте тепер цей процес замінено накомпіляцію Just-in-Time (JIT) для підвищення продуктивності та безпеки.[28]Віртуальна машина eBPF складається з одинадцяти 64-бітних регістрів з 32-бітними підрегістрами,лічильника команд та 512-байтного стека BPF. Ці регістри загального призначення зберігають стан під час виконання програм eBPF.[29]  

Tail calls (хвостові виклики)

[ред. |ред. код]

Хвостовий виклик дозволяє викликати та виконувати іншу програму eBPF, замінюючиконтекст виконання, подібно до того, як системний викликexecve() працює для звичайних процесів. Це дозволяє програмі eBPF викликати іншу програму eBPF. Хвостові виклики реалізуються як довгий стрибок, використовуючи ту самуфрейм стека. Хвостові виклики особливо корисні в eBPF, де стек обмежений 512 байтами. Під час виконання функціональність може бути додана або замінена атомарно, змінюючи поведінку виконання програми BPF.[29] Популярним випадком використання хвостових викликів є розподіл складності програм eBPF на кілька програм. Інший варіант використання — заміна або розширення логіки шляхом заміни вмісту масиву програми під час її використання. Наприклад, для оновлення версії програми безперерви в роботі або для ввімкнення/вимкнення логіки.[30]

Виклики BPF до BPF

[ред. |ред. код]

Загальноприйнятою практикою в розробці програмного забезпечення є групування загального коду вфункції, що інкапсулюють логіку для повторного використання. До версії ядра Linux 4.16 та LLVM 6.0 типова програма eBPF на мові C повинна була явно вказувати компіляторувбудовувати функцію, що призводило до створення об'єктного файлу BPF з дубльованими функціями. Це обмеження було знято, і сучасні компілятори eBPF тепер підтримують написання функцій у програмах eBPF природним чином. Це зменшує розмір згенерованого коду eBPF, роблячи його більш дружнім до кешу інструкцій процесора.[28][29]

Верифікатор eBPF

[ред. |ред. код]

Верифікатор є основним компонентом eBPF, і його головне завдання — гарантувати, що програма eBPF є безпечною для виконання. Він проводить статичний аналіз байткоду eBPF для забезпечення його безпеки. Верифікатор аналізує програму, оцінюючи всі можливі шляхи виконання. Він крокує по інструкціях у порядку їх виконання і оцінює їх. Процес верифікації починається зпошуку в глибину по всіх можливих шляхах програми, при цьому верифікатор симулює виконання кожної інструкції, відстежуючи стан регістрів і стека. Якщо якась інструкція може призвести до небезпечного стану, верифікація не проходить. Процес триває доти, поки всі шляхи не будуть проаналізовані або не буде знайдено порушення. Залежно від типу програми, верифікатор перевіряє порушення певних правил. До цих правил може входити перевірка того, що програма eBPF завжди завершується за розумний час (безнескінченних циклів або нескінченноїрекурсії), перевірка того, що програмі eBPF не дозволяється читати довільну пам'ять, оскільки це може дозволити програмі витікати конфіденційну інформацію, перевірка того, що програми, пов'язані з мережею, не мають доступу до пам'яті поза межамипакета, оскільки сусідня пам'ять може містити конфіденційну інформацію, перевірка того, що програми не можуть створювативзаємне блокування, тому всіSpinlock повинні бути звільнені, і одночасно можна утримувати лише один замок, щоб уникнути взаємного блокування між кількома програмами, перевірка того, що програми не мають доступу до неініціалізованої пам'яті. Це не є вичерпним списком перевірок верифікатора, і є винятки з цих правил. Наприклад, програми трасування мають доступ до хелперів, які дозволяють їм читати пам'ять контрольованим чином, але такі типи програм вимагаютьпривілеїв суперкористувача і тому не становлять загрози для безпеки.[30][28]

З часом верифікатор eBPF розвинувся, включивши нові функції та оптимізації, такі як підтримка обмежених циклів,Елімінація мертвого коду, верифікація по функціям ізворотні виклики.

eBPF CO-RE (Compile Once - Run Everywhere)

[ред. |ред. код]

Програми eBPF використовують пам'ять іструктури даних ядра. Деякі структури можуть змінюватися між різними версіями ядра, змінюючи розташування пам'яті. Оскільки ядро Linux постійно розвивається, немає гарантії, що внутрішні структури даних залишаться незмінними в різних версіях. CO-RE є основним поняттям у сучасній розробці eBPF, яке дозволяє програмам eBPF бути портативними між різними версіями та конфігураціями ядра. Це вирішує проблему варіацій у структурах ядра між різнимидистрибутивами Linux іверсіями. CO-RE складається з BTF (BPF Type Format) —формату метаданих, який описує типи, що використовуються в ядрі та програмах eBPF, і надає детальну інформацію про структури, зсуви полів і типи даних. Це забезпечує доступ до типів ядра під час виконання, що є ключовим для розробки та верифікації програм BPF. BTF включений в образ ядра для підтримуваних версій. Спеціальні релокації генеруютьсякомпілятором (наприклад, LLVM). Ці релокації захоплюють опис високого рівня того, до якої інформації програма eBPF має намір звертатися. Бібліотекаlibbpf адаптує програми eBPF для роботи з макетом структури даних на цільовому ядрі, де вони виконуються, навіть якщо цей макет відрізняється від того, на якому код було скомпільовано. Для цього libbpf потребує інформацію про релокації BPF CO-RE, згенеровану Clang під час процесу компіляції.[28] Скомпільована програма eBPF зберігається у форматіELF (Executable and Linkable Format). Цей файл містить інформацію про типи BTF та релокації, згенерованіClang. Формат ELF дозволяє завантажувачу eBPF (наприклад, libbpf) обробляти та налаштовувати програму BPF динамічно для цільовогоядра.[31]

Брендинг

[ред. |ред. код]

Назва eBPF часто використовується взаємозамінно з BPF,[2][32] наприклад, у спільноті ядра Linux. eBPF і BPF згадуються як технологія, подібно доLLVM.[2] eBPF розвинувся з машинної мови для фільтруючої віртуальної машини вФільтр Berkeley Packet як розширена версія, але оскільки його сфери використання вийшли за межі мереж, сьогодні "eBPF" найчастіше тлумачиться якпсевдоакронім.[2]

Бджола є офіційним логотипом eBPF. Під час першого саміту eBPF було проведено голосування, на якому маскот-бджолу назвали "eBee".[33][34] Логотип спочатку був створений Вадимом Щеколдіним.[34] Раніше існували неофіційні маскоти eBPF,[35] але вони не отримали широкого поширення.

Управління

[ред. |ред. код]

Фонд eBPF був створений у серпні 2021 року з метою розширення внесків, спрямованих на розширення потужних можливостей eBPF та виходу за межі Linux.[1] Засновниками виступилиMeta,Google, Isovalent,Microsoft таNetflix. Метою є збір, бюджетування та витрачання коштів на підтримку різних проєктів з відкритим вихідним кодом, відкритими даними та/або відкритими стандартами, пов'язаних із технологіями eBPF,[36] для подальшого розвитку та впровадження екосистеми eBPF. З моменту заснування до них приєдналисяRed Hat,Huawei,CrowdStrike, Tigera, DaoCloud, Datoms, FutureWei.[37]

Впровадження

[ред. |ред. код]

eBPF був прийнятий рядом великих користувачів на виробництві, наприклад:

  • Meta використовує eBPF через свій балансувальник навантаження 4-го рівня Katran для всього трафіку, що йде на facebook.com.[38][39][40][23]
  • Google використовує eBPF уGKE, розробив та використовує BPF LSM для заміни аудиту та використовує eBPF для роботи в мережі.[41][42][43][44]
  • Cloudflare використовує eBPF для балансування навантаження, захисту від DDoS та забезпечення безпеки.[45][46][47][48][49]
  • Netflix використовує eBPF для моніторингу мережі в масштабах усієї інфраструктури та діагностики продуктивності.[50][51]
  • Dropbox використовує eBPF через Katran для балансування навантаження на 4-му рівні.[52]
  • Android використовує eBPF для NAT46 і моніторингу трафіку.[53][54][55]
  • Samsung Galaxy використовує eBPF для мережевих рішень.[56]
  • Yahoo! Inc використовує eBPF через Cilium для балансування навантаження на 4-му рівні.[57]
  • LinkedIn використовує eBPF для спостереження за інфраструктурою.[58]
  • Alibaba використовує eBPF для балансування навантаження вKubernetes Pod.[59]
  • Datadog використовує eBPF для мережевих рішень і забезпечення безпеки в Kubernetes Pod.[60][61][62]
  • Trip.com використовує eBPF для мережевих рішень в Kubernetes Pod.[63][64]
  • Shopify використовує eBPF для виявлення вторгнень через Falco.[65]
  • DoorDash використовує eBPF через BPFAgent для моніторингу на рівні ядра.[66]
  • Microsoft переніс eBPF та XDP на Windows.[67][68][69]
  • Seznam використовує eBPF через Cilium для балансування навантаження на 4-му рівні.[70]
  • DigitalOcean використовує eBPF та XDP для обмеження доступу до внутрішніх сервісів у своїй віртуальній мережі.[71]
  • CapitalOne використовує eBPF для мережевих рішень в Kubernetes Pod.[72]
  • Bell Canada використовує eBPF для модернізації телекомунікаційних мереж за допомогою SRv6.[73]
  • Elastic_NV використовує eBPF для профілювання коду як частину своєї пропозиції по спостереженню.[74]
  • Apple використовує eBPF для забезпечення безпеки Kubernetes Pod.[75]
  • Sky використовує eBPF для мережевих рішень у Kubernetes Pod.[76]
  • Walmart використовує eBPF для балансування навантаження на 4-му рівні.[77][78]
  • Huawei використовує eBPF через свою систему захищеного завантаження DIGLIM.[79]
  • Ikea використовує eBPF для мережевих рішень у Kubernetes Pod.[80]
  • The New York Times використовує eBPF для мережевих рішень.[81]
  • Red Hat використовує eBPF в масштабах для балансування навантаження та трасування в їх приватному хмарі.
  • Palantir Technologies використовує eBPF для налагодження мережевих проблем у великих кластерах Kubernetes.[82]

Безпека

[ред. |ред. код]

Через легкість програмування, eBPF використовувався як інструмент для реалізації мікроархітектурних атак черезбічний канал, таких якSpectre, проти вразливихмікропроцесорів.[83] Хоча eBPF без привілеїв реалізовував міграційні заходи проти атак тимчасового виконання,[84] використання без привілеїв зрештою було відключене спільнотою ядра за замовчуванням для захисту від використання проти майбутніх апаратних вразливостей.[85]

Див. також

[ред. |ред. код]

Примітки

[ред. |ред. код]
  1. абвMeta, Google, Isovalent, Microsoft і Netflix заснували eBPF Foundation в рамках Linux Foundation.Linux Foundation. 12 серпня 2021. Процитовано 1 липня 2022.
  2. абвгдBPF Internals.USENIX LISA 2021 conference. 1 червня 2021. Процитовано 1 липня 2022.
  3. абвЗробити eBPF працездатним на Windows.Microsoft Open Source Blog. 10 травня 2021. Процитовано 1 липня 2022.
  4. абeBPF Документація: Що таке eBPF?.eBPF.io. Процитовано 1 липня 2022.
  5. eBPF - Переосмислення ядра Linux.QCon 2020. Процитовано 1 липня 2022.
  6. Безпечні програми — основа BPF.eBPF Summit 2021. 8 листопада 2020. Процитовано 1 липня 2022.
  7. BPF та Spectre: Пом'якшення атак тимчасового виконання.POPL 2022 conference. 22 січня 2022. Процитовано 1 липня 2022.
  8. eBPF — Тиха революція платформи від Cloud Native(PDF).SIGCOMM 2023, 1-а майстерня з eBPF та розширення ядра. 10 вересня 2023. Процитовано 5 жовтня 2023.
  9. Hedam, Niclas (26 травня 2023).eBPF - З погляду програміста(PDF)(укр.).doi:10.13140/RG.2.2.33688.11529/4.
  10. Суперсили Linux BPF.Блог Брендана Ґреґґа. 5 березня 2016. Процитовано 1 липня 2022.
  11. Лінус Торвальдс про повернення до роботи над Linux.zdnet Інтерв'ю з Лінусом Торвальдсом. 23 жовтня 2018. Процитовано 1 липня 2022.
  12. Класичний BPF проти eBPF.LWN. березень 2014. Процитовано 6 січня 2023.
  13. net: filter: Just In Time compiler.lore.kernel.org. April 2011. Процитовано 1 липня 2022.
  14. Yet another new approach to seccomp.LWN. 1 січня 2012. Процитовано 1 липня 2022.
  15. BPF updates.lore.kernel.org. March 2014. Процитовано 1 липня 2022.
  16. Happy birthday BPF!.lore.kernel.org. September 2014. Процитовано 1 липня 2022.
  17. tracing: attach eBPF programs to kprobes.lore.kernel.org. March 2015. Процитовано 1 липня 2022.
  18. LLVM 3.7 Release Notes.releases.llvm.org. August 2015. Процитовано 1 липня 2022.
  19. bcc: Taming Linux 4.3+ Tracing Superpowers.brendangregg.com. September 2015. Процитовано 1 липня 2022.
  20. Add driver bpf hook for early packet drop and forwarding.lore.kernel.org. July 2016. Процитовано 1 липня 2022.
  21. Cilium - Fast IPv6 Container Networking with BPF and XDP.slideshare.net. August 2016. Процитовано 1 липня 2022.
  22. nfp ring reconfiguration and XDP support.lore.kernel.org. November 2016. Процитовано 1 липня 2022.
  23. абXDP 1.5 Years In Production. Evolution and Lessons Learned.lpc.events. Листопад 2018. Процитовано 16 серпня 2022.
  24. pull-request: bpf 2017-11-23.lore.kernel.org. November 2017. Процитовано 1 липня 2022.
  25. Introducing AF_XDP support.lore.kernel.org. January 2018. Процитовано 1 липня 2022.
  26. BPF Performance Tools (book).brendangregg.com. December 2019. Процитовано 16 серпня 2022.
  27. bpf.h - include/uapi/linux/bpf.h - Linux source code v5.15.86 - Bootlin.elixir.bootlin.com. Процитовано 1 серпня 2024.
  28. абвгдRice, Liz (2023).Learning eBPF: programming the Linux Kernel for enhanced observability, networking, and security (вид. First). Sebastopol, CA: O'Reilly Media.ISBN 978-1-0981-3512-6.OCLC 1353981026.
  29. абвBPF Architecture — Cilium 1.16.0 documentation.docs.cilium.io. Процитовано 1 серпня 2024.
  30. абTail calls - eBPF Docs.ebpf-docs.dylanreimerink.nl. Процитовано 4 серпня 2024.
  31. BPF CO-RE - eBPF Docs.ebpf-docs.dylanreimerink.nl. Процитовано 7 серпня 2024.
  32. Брендан Грегг (Грудень 2019).BPF Performance Tools. Addison-Wesley.ISBN 978-0136554820.
  33. eBPF Summit Day Two.cilium.io. Жовтень 2020. Процитовано 1 липня 2022.
  34. абWhat is the bee named?.ebpf.io. Процитовано 1 липня 2022.
  35. eBPF: One Small Step.Блог Брендана Грегга. Травень 2015. Процитовано 1 липня 2022.
  36. Статут фонду eBPF.ebpf.foundation. Червень 2021. Процитовано 16 серпня 2022.
  37. Управління фондом eBPF.ebpf.foundation. Серпень 2022. Процитовано 16 серпня 2022.
  38. Open-sourcing Katran, a scalable network load balancer.fb.com. Травень 2018. Процитовано 16 серпня 2022.
  39. BPF at Facebook.youtube.com. Грудень 2019. Процитовано 16 серпня 2022.
  40. From XDP to socket.lpc.events. Вересень 2021. Процитовано 16 серпня 2022.
  41. New GKE Dataplane V2 increases security and visibility for containers.cloud.google.com. Травень 2021. Процитовано 16 серпня 2022.
  42. eCHO episode 29: BPF LSM with KP Singh.youtube.com. Листопад 2021. Процитовано 16 серпня 2022.
  43. BPF security auditing at Google - Brendan Jackman/KP Singh.youtube.com. Листопад 2021. Процитовано 16 серпня 2022.
  44. Replacing HTB with EDT and BPF.netdevconf.info. Липень 2020. Процитовано 16 серпня 2022.
  45. Cloudflare architecture and how BPF eats the world.blog.cloudflare.com. Травень 2019. Процитовано 16 серпня 2022.
  46. It's crowded in here!.blog.cloudflare.com. Жовтень 2019. Процитовано 16 серпня 2022.
  47. Production ready eBPF, or how we fixed the BSD socket API.blog.cloudflare.com. Лютий 2022. Процитовано 16 серпня 2022.
  48. Live-patching security vulnerabilities inside the Linux kernel with eBPF Linux Security Module.blog.cloudflare.com. Червень 2022. Процитовано 16 серпня 2022.
  49. Unimog - Cloudflare's edge load balancer.blog.cloudflare.com. Вересень 2020. Процитовано 16 серпня 2022.
  50. How Netflix uses eBPF flow logs at scale for network insight.netflixtechblog.com. Червень 2021. Процитовано 16 серпня 2022.
  51. Extending Vector with eBPF to inspect host and container performance.netflixtechblog.com. Лютий 2019. Процитовано 16 серпня 2022.
  52. Dropbox traffic infrastructure: Edge network.dropbox.tech. Жовтень 2018. Процитовано 16 серпня 2022.
  53. eBPF Traffic Monitoring.source.android.com. Серпень 2022. Процитовано 16 серпня 2022.
  54. Extending the Kernel with eBPF.source.android.com. Серпень 2022. Процитовано 16 серпня 2022.
  55. NAT46 translation with BPF.lore.kernel.org. Квітень 2022. Процитовано 16 серпня 2022.
  56. BPF for Android: How we leverage BPF for our networking solutions - Madhan Raj Kanagarathinam.www.youtube.com. Лютий 2024. Процитовано 19 лютого 2022.
  57. Software L4 Load Balancing for Kubernetes Services at Yahoo! – Karthikeyan Thangaraj, Verizon Media(англ.), 19 серпня 2021, процитовано 3 лютого 2024
  58. Skyfall: eBPF agent for infrastructure observability.www.linkedin.com(англ.). Процитовано 3 лютого 2024.
  59. How Does Alibaba Cloud Build High-Performance Cloud-Native Pod Networks in Production Environments?.alibabacloud.com. Вересень 2020. Процитовано 16 серпня 2022.
  60. Datadog on eBPF.datadogon.datadoghq.com. Лютий 2021. Процитовано 16 серпня 2022.
  61. Runtime Security Monitoring with eBPF(PDF).sstic.org. Лютий 2021. Процитовано 16 серпня 2022.
  62. Our eBPF Journey at Datadog - Laurent Bernaille & Tabitha Sable, Datadog.youtube.com. Листопад 2020. Процитовано 16 серпня 2022.
  63. User Story - How Trip.com uses Cilium.cilium.io. Лютий 2020. Процитовано 16 серпня 2022.
  64. Trip.com: Stepping into Cloud Native Networking Era with Cilium+BGP.arthurchiao.art. Листопад 2020. Процитовано 16 серпня 2022.
  65. Keynote: Open Source Intrusion Detection for Containers at Shopify - Shane Lawrence & Kris Nóva(англ.), 4 вересня 2020, процитовано 9 лютого 2024
  66. Rogers, Patrick (15 серпня 2023).BPFAgent: eBPF for Monitoring at DoorDash - DoorDash Engineering Blog.DoorDash Engineering Blog(амер.). Процитовано 9 лютого 2024.
  67. Making eBPF work on Windows.cloudblogs.microsoft.com. Травень 2021. Процитовано 16 серпня 2022.
  68. Getting Linux based eBPF programs to run with eBPF for Windows.cloudblogs.microsoft.com. Лютий 2022. Процитовано 16 серпня 2022.
  69. Progress on making eBPF work on Windows.cloudblogs.microsoft.com. Листопад 2019. Процитовано 16 серпня 2022.
  70. Cilium Standalone Layer 4 Load Balancer XDP.cilium.io. Липень 2022. Процитовано 16 серпня 2022.
  71. Rate limiting access to internal services in a virtual network – Nick Bouliane, DigitalOcean(англ.), 19 серпня 2021, процитовано 4 лютого 2024
  72. Building a Secure and Maintainable PaaS - Bradley Whitfield, Capital One.youtube.com. Листопад 2020. Процитовано 16 серпня 2022.
  73. Why eBPF is changing the telco networking space – Daniel Bernier, Bell Canada(англ.), 31 серпня 2021, процитовано 9 лютого 2024
  74. Elastic Universal Profiling(англ.), процитовано 26 лютого 2024
  75. Think eBPF for Kernel Security Monitoring - Falco at Apple - Eric Sage & Melissa Kilby, Apple.youtube.com. Жовтень 2021. Процитовано 16 серпня 2022.
  76. eBPF & Cilium at Sky – Sebastian Duff, Anthony Comtois, Jospeh [sic] Samuel, Sky.youtube.com. Серпень 2021. Процитовано 16 серпня 2022.
  77. Running and orchestrating multiple XDP and TC programs – Brian Merrell, Walmart.youtube.com. Серпень 2021. Процитовано 16 серпня 2022.
  78. High Performance Load Balancing @Walmart – Kanthi Pavuluri & Karan Dalal, Walmart.youtube.com. Серпень 2021. Процитовано 16 серпня 2022.
  79. DIGLIM eBPF: secure boot at application level with minimal changes to distros - Roberto Sassu.youtube.com. Серпень 2022. Процитовано 16 серпня 2022.
  80. IKEA Private Cloud, eBPF Based Networking, Load Balancing, and Observability with... Karsten Nielsen.youtube.com. Травень 2022. Процитовано 16 серпня 2022.
  81. Panel Discussion: Is There Actually a Byte Behind All the Buzz? eBPF in Production!(англ.), 28 жовтня 2022, процитовано 9 лютого 2024
  82. Using user-space tracing to solve DNS problems – Andrius Grabauskas, Palantir(англ.), 19 серпня 2021, процитовано 9 лютого 2024
  83. Читання привілейованої пам'яті через бічний канал.googleprojectzero.blogspot.com. 3 січня 2018. Процитовано 16 серпня 2022.
  84. BPF та Spectre: Міграція від атак тимчасового виконання.popl22.sigplan.org. Процитовано 16 серпня 2022.
  85. bpf: Вимкнути безпривілейний bpf за замовчуванням.kernel.org. Процитовано 16 серпня 2022.

Подальше читання

[ред. |ред. код]

Зовнішні посилання

[ред. |ред. код]
Отримано зhttps://uk.wikipedia.org/w/index.php?title=EBPF&oldid=44117781
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2026 Movatter.jp