Перевод книги: Liz Rice "Learning eBPF"

Проекты открытые участниками форума

Модераторы: Olej, vikos

Интересует кого eBPF как инструмент профилирования и оптимизации кода ядра Linux?

Да
1
100%
Нет
0
Голосов нет
 
Всего голосов: 1

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 04 июл 2023, 18:01

Делаю перевод книги: Liz Rice, Learning eBPF
Olej писал(а):
04 июл 2023, 14:26
April 11, 2023
Paperback $40.26
238 страниц
Снимок экрана от 2023-07-04 17-56-05.png
Снимок экрана от 2023-07-04 17-56-05.png (303.3 КБ) 572 просмотра
Если кого-то интересуют главы книги по мере продвижения перевода - я буду их промежуточные варианты (по мере их готовности) выкладывать сюда.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 04 июл 2023, 18:05

Olej писал(а):
04 июл 2023, 18:01
Делаю перевод книги
Про сам eBPF ... ну и ещё про профилировщик Linux Prof - понемножку здесь: Berkeley Packet Filter (BPF) ... накапливается.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 04 июл 2023, 22:27

Olej писал(а):
04 июл 2023, 18:01
Если кого-то интересуют главы книги по мере продвижения перевода - я буду их провежуточные варианты (по мере готовности) выкладывать сюда.
В принципе, всё что касается eBPF (и отчасти профилировщика Perf) - это принципиальные технологии для всего, что оносится к системе Linux и системному программированию под Linux.
Гораздо больше чем десятки и сотни появляющихся новых технологий, по которым издают тысячи книг.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 04 июл 2023, 22:41

Olej писал(а):
04 июл 2023, 18:01
буду их промежуточные варианты (по мере готовности) выкладывать сюда.
Предисловие

В облачном сообществе и за его пределами eBPF стал одной из самых горячих технических тем за последние годы. Новое поколение мощных инструментов и проектов в области сетевой работы, безопасности, наблюдения и многого другого было создано (и продолжает создаваться) с использованием eBPF в качестве платформы, предлагая более высокую производительность и точность по сравнению с их предшественниками. Конференции, связанные с eBPF, такие как eBPF Summit и Cloud Native eBPF Day, привлекли тысячи участников и зрителей, и на момент написания этой статьи сообщество eBPF Slack насчитывает более 14 000 участников.
...
Вложения
eBPF.Preface.5.pdf
(60.4 КБ) 16 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 06 июл 2023, 18:34

Olej писал(а):
04 июл 2023, 22:41
промежуточные варианты
Часть 1 : Что такое eBPF и почему это важно?

eBPF — это революционная технология ядра, которая позволяет разработчикам писать собственный код, который можно динамически загружать в ядро, изменяя поведение ядра.
Это обеспечивает новое поколение высокопроизводительных сетевых инструментов, средств наблюдения и безопасности. И, как вы увидите, если вы хотите оснастить своё приложение этими инструментами на основе eBPF, вам не нужно каким-либо образом модифицировать или перенастраивать код самого приложения, благодаря удобному расположению самого eBPF внутри ядра Linux.
Вложения
eBPF.CHAPTER.01.9.pdf
(554.2 КБ) 16 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 13 июл 2023, 13:38

Часть 2 : «Hello World» от eBPF
Ниже приведен полный исходный код hello.py, приложения eBPF «Hello World», написанного с использованием библиотеки BCC Python:

Код: Выделить всё

#!/usr/bin/python
from bcc import BPF

program = r"""
   int hello(void *ctx) {
   bpf_trace_printk("Hello World!");
   return 0;
}
"""
b = BPF(text=program)
syscall = b.get_syscall_fnname("execve")
b.attach_kprobe(event=syscall, fn_name="hello")
b.trace_print()
Вложения
eBPF.CHAPTER.02.8.pdf
(378.14 КБ) 16 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 22 июл 2023, 18:26

Часть 3 : Анатомия eBPF программы
В предыдущей главе вы видели простую программу eBPF «Hello World», написанную с использованием инфраструктуры BCC. В этой главе приведен пример версии программы «Hello World», полностью написанной на C, чтобы вы могли увидеть некоторые детали, о которых BCC позаботилась за кулисами.
Вложения
eBPF.CHAPTER.03.4.pdf
(175.18 КБ) 15 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 28 июл 2023, 15:07

По поводу русскоязычной терминологии ... относительно eBPF, Perf, kprobes и др. подобных новых вещей в Linux, которых в русскоязычной практике пока нет.

По ходу перевода её (терминологию) приходится "придумывать" ... и менять на более удачную, по ходу переводов следующих частей. Поэтому предыдущие части приходится пересматривать и корректировать под новые изменения терминологии.

В связи с этим, я буду менять редакции всех уже ранее выложенных PDF частей. Менять буду без специального предупреждения. Но номер последней (текущей) редакции - это последняя цифра в имени прикреплённого файла.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 28 июл 2023, 15:15

Часть 4 : Системный вызов bpf()
... имеет смысл предположить что если приложение пользовательского пространства хочет загрузить программу eBPF в ядро, то должны быть задействованы некоторые системные вызовы. На самом деле существует системный вызов bpf(), и в этой главе я покажу вам, как он используется для загрузки и взаимодействия с eBPF, программами и картами.
Вложения
eBPF.CHAPTER.04.4.pdf
(227.46 КБ) 16 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Перевод книги: Liz Rice "Learning eBPF"

Непрочитанное сообщение Olej » 28 июл 2023, 15:18

Часть 5 : CO-RE, BTF, и libbpf
Если бы вы взяли объектный файл eBPF, скомпилированный на одном компьютере1, и загрузили его на компьютер с другой версией ядра, не было бы никакой гарантии, что структуры данных будут одинаковыми. Подход CO-RE — это огромный шаг вперед в эффективном решении проблемы переносимости. Это позволяет программам eBPF включать информацию о макетах структур данных, с которыми они были скомпилированы, и предоставляет механизм для настройки доступа к полям, если макет структуры данных отличается на целевой машине, на которой они выполняются.
Вложения
eBPF.CHAPTER.05.5.pdf
(9.54 КБ) 15 скачиваний

Ответить

Вернуться в «Проекты участников»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя