Berkeley Packet Filter (BPF)

Вопросы программного кода и архитектуры Linux

Модератор: Olej

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

Berkeley Packet Filter (BPF)

Непрочитанное сообщение Olej » 12 сен 2022, 16:11

Почему сообщество разработчиков ядра заменяет iptables на BPF?
18 января в 17:57
Примечание автора: это пост многолетнего разработчика сетевых технологий ядра Linux и создателя проекта Cilium Томаса Графа.
Сообщество разработчиков ядра Linux недавно анонсировало bpfilter, который заменит давно существующую внутриядерную имплементацию iptables на высокопроизводительную сетевую фильтрацию на базе Linux BPF, гарантируя при этом переход без сбоев для пользователей Linux.

Из скромной системы фильтрации пакетов, лежащей в основе таких популярных инструментов, как tcpdump и Wireshark, BPF превратился в насыщенную основу для расширения возможностей Linux чрезвычайно гибким образом, без ущерба таким ключевым свойствам, как производительность и безопасность. Это мощное сочетание привело к тому, что такие перспективные пользователи технологии ядра Linux, как Google, Facebook и Netflix, выбрали BPF для использования в самых разных случаях — от сетевой безопасности и балансировки нагрузки до мониторинга производительности и устранения неполадок. Брендан Грегг из Netflix изначально назвал BPF Superpowers (суперсилой) для Linux. В этой заметке мы расскажем о том, как эти «суперспособности» делают ненужными давно существующие подсистемы ядра, такие как iptables, и одновременно позволяют создавать новые внутриядерные сценарии использования, которые мало кто мог себе представить раньше.
Я считаю BPF самой захватывающей разработкой Linux за последние годы. Мы лишь слегка прикоснулись к его потенциалу, а он еще продолжает развиваться. Замена части ядра iptables на BPF — это логичный первый шаг. Фактический переход будет заключаться в создании собственных инструментов BPF, а также в отходе от традиционных конструкций, ориентированных на IP-адреса/порты.

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

Berkeley Packet Filter (BPF)

Непрочитанное сообщение Olej » 12 сен 2022, 16:17

Насколько я помню (застал :lol: ) это уже ... 4-я реинкарнация функциональности:
1). ipfwadm.
2). ipchains
3). iptables
И вот теперь BPF ... хотя с BPF я сталкивался ещё во времена плотной работы с tcpdump.

P.S. А нет... ещё был IPFilter (ipf) из FreeBSD/NetBSD в ядре Linux 2.4-2.6. Т.е. уже 5!

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

Berkeley Packet Filter (BPF)

Непрочитанное сообщение Olej » 12 сен 2022, 20:39

Документация из исходников ядра Linux;
Linux Socket Filtering aka Berkeley Packet Filter (BPF)
BPF Documentation

Один из ранних обзоров:
Для ядра Linux предложен новый пакетный фильтр bpfilter
21.02.2018 20:55
В nftables логика фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). При этом последние годы в ядре Linux поставляется универсальная встроенная виртуальная машина BPF с JIT, для которой активно ведётся работа по улучшению производительности, функциональности и безопасности. Чтобы не поддерживать две разные виртуальные машины, выполняющие сходные задачи, и для достижения более высокой производительности у разработчиков возникла идея построения пакетного фильтра на основе штатного BPF-движка ядра Linux.

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

Berkeley Packet Filter (BPF)

Непрочитанное сообщение Olej » 12 сен 2022, 20:47

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

olej@R420:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 20.3
Release:	20.3
Codename:	una

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

olej@R420:~$ aptitude search bpf | grep BPF
p  bpfcc-tools - tools for BPF Compiler Collection (BCC)
p  bpftrace - high-level tracing language for Linux eBPF
p  libbpf-dev - eBPF helper library (development files)
p  libbpf0 - eBPF helper library (shared library)
p  libbpfcc - shared library for BPF Compiler Collection (BCC)
p  libbpfcc-dev - shared library for BPF Compiler Collection (BCC)
p  python3-bpfcc - Python 3 wrappers for BPF Compiler Collection (BCC)

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

olej@R420:~$ aptitude search netfilter
p   libnetfilter-acct-dev                                                        - Development files for libnetfilter-acct1                                              
p   libnetfilter-acct1                                                           - Netfilter acct library                                                                
p   libnetfilter-conntrack-dev                                                   - Development files for libnetfilter-conntrack3                                         
p   libnetfilter-conntrack-dev:i386                                              - Development files for libnetfilter-conntrack3                                         
i   libnetfilter-conntrack3                                                      - библиотека netfilter netlink-conntrack                                                
p   libnetfilter-conntrack3:i386                                                 - библиотека netfilter netlink-conntrack                                                
p   libnetfilter-cthelper0                                                       - userspace-helper for netfilter library                                                
p   libnetfilter-cthelper0-dbg                                                   - Debugging symbols for libnetfilter-cthelper0                                          
p   libnetfilter-cthelper0-dev                                                   - Development files for libnetfilter-cthelper0                                          
p   libnetfilter-cttimeout-dev                                                   - fine-grain connection tracking timeout infrastructure for netfilter                   
p   libnetfilter-cttimeout1                                                      - fine-grain connection tracking timeout infrastructure for netfilter                   
p   libnetfilter-cttimeout1-dbg                                                  - fine-grain connection tracking timeout infrastructure for netfilter                   
p   libnetfilter-log-dev                                                         - Development files for libnetfilter-log1                                               
p   libnetfilter-log1                                                            - Netfilter netlink-log library                                                         
p   libnetfilter-log1-dbg                                                        - Debugging symbols for libnetfilter-log1                                               
p   libnetfilter-queue-dev                                                       - Development files for libnetfilter-queue1                                             
p   libnetfilter-queue1                                                          - Netfilter netlink-queue library                                                       
p   libnetfilter-queue1-dbg                                                      - Debugging symbols for libnetfilter-queue1                                             
p   netfilter-persistent                                                         - boot-time loader for netfilter configuration                                          
p   planetfilter                                                                 - filter for blog aggregators                                                           
p   python3-netfilter                                                            - Python module for manipulating netfilter rules (Python 3)                             
Т.е. на сегодня уже в дистрибутивах огромное множество пакетов, готовых к использованию.

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

Berkeley Packet Filter (BPF)

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

Снова про eBPF :lol:
Книга:
O'REILLY
Liz Rice
"Learning eBPF
Programming the Linux Kernel for Enhanced
Observability, Networking, and Security"
2023 г.
238 стр.
Свободно скачать можно (пока :?: ) здесь: https://cilium.isovalent.com/hubfs/Lear ... 20book.pdf
Learning eBPF
Твиттер: @oreillymedia
linkedin.com/company/oreilly-media
youtube.com/oreillymedia

Что такое eBPF? Благодаря этой революционной технологии вы сможете написать свой собственный код, который динамически меняет способ поведения ядра. Это необычная платформа для создание совершенно нового поколения безопасности, наблюдаемости, и сетевых инструментов. Эта практическая книга идеально подходит для разработчиков, системных администраторов, операторов и студентов, тех кто хочет узнать, как это работает.
Автор Лиз Райс обеспечивает введение в предмет для тех, кто хочет понять eBPF. Примеры кода и командной строки служат в качестве стартовой площадки для тех, кто хочет изучить технологию и научиться самим писать программы eBPF.
С этой книгой вы:
• Узнаете, почему eBPF стал так важен в последние годы, и как это позволяет создавать мощные инструменты инфраструктуры;
• Изучите код eBPF от «Hello World» до примеров которые обнаруживают важные для безопасности события и манипулируют сетевыми пакетами;
• Узнаете, как управлять программами eBPF и прикреплять их к событиям;
• Поймёте как верификатор eBPF гарантирует, что эти программы безопасно запускать, и как можно сделать программы eBPF переносимыми на разные версии ядра;
• Узнаете, как компоненты eBPF взаимодействуют с Linux, чтобы динамически изменять поведение вашей операционной системы;
P.S. Есть предварительное обсуждение (переговоры :lol: ) чтобы я эту книгу перевёл для издательства BHV, для издания книги ... одновременно с переводчиком чтобы был и научным редактором текста. (Хотят сэкономить на одной специальности :lol: , "два в одном".)

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

Berkeley Packet Filter (BPF)

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

Изучаем трассировку с помощью eBPF: Руководство и примеры
4 янв 2019
Привет, Хабр! Предлагаю вашему вниманию перевод статьи Брендана Грегга, посвящённой изучению eBPF
На конференции Linux Plumbers было как минимум 24 выступления по eBPF. Он быстро стал не просто бесценной технологией, но и востребованным навыком. Возможно, вам хотелось бы поставить какую-то цель на новый год — изучите eBPF!
...

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

olej@R420:~$ sudo apt install bpfcc-tools python3-bpfcc
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Будут установлены следующие дополнительные пакеты:
  libbpfcc libclang-cpp11 libllvm11
Следующие НОВЫЕ пакеты будут установлены:
  bpfcc-tools libbpfcc libclang-cpp11 libllvm11 python3-bpfcc
Обновлено 0 пакетов, установлено 5 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено.
Необходимо скачать 31,4 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 136 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 libllvm11 amd64 1:11.1.0-6 [19,6 MB]
Пол:2 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 libclang-cpp11 amd64 1:11.1.0-6 [10,5 MB]
Пол:3 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 libbpfcc amd64 0.18.0+ds-2 [661 kB]                                                      
Пол:4 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 python3-bpfcc all 0.18.0+ds-2 [34,6 kB]                                                  
Пол:5 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 bpfcc-tools all 0.18.0+ds-2 [627 kB]                                                     
Получено 31,4 MB за 8с (3.728 kB/s)                                                                                                                        
Выбор ранее не выбранного пакета libllvm11:amd64.
(Чтение базы данных … на данный момент установлено 553186 файлов и каталогов.)
Подготовка к распаковке …/libllvm11_1%3a11.1.0-6_amd64.deb …
Распаковывается libllvm11:amd64 (1:11.1.0-6) …
Выбор ранее не выбранного пакета libclang-cpp11.
Подготовка к распаковке …/libclang-cpp11_1%3a11.1.0-6_amd64.deb …
Распаковывается libclang-cpp11 (1:11.1.0-6) …
Выбор ранее не выбранного пакета libbpfcc.
Подготовка к распаковке …/libbpfcc_0.18.0+ds-2_amd64.deb …
Распаковывается libbpfcc (0.18.0+ds-2) …
Выбор ранее не выбранного пакета python3-bpfcc.
Подготовка к распаковке …/python3-bpfcc_0.18.0+ds-2_all.deb …
Распаковывается python3-bpfcc (0.18.0+ds-2) …
Выбор ранее не выбранного пакета bpfcc-tools.
Подготовка к распаковке …/bpfcc-tools_0.18.0+ds-2_all.deb …
Распаковывается bpfcc-tools (0.18.0+ds-2) …
Настраивается пакет libllvm11:amd64 (1:11.1.0-6) …
Настраивается пакет libclang-cpp11 (1:11.1.0-6) …
Настраивается пакет libbpfcc (0.18.0+ds-2) …
Настраивается пакет python3-bpfcc (0.18.0+ds-2) …
Настраивается пакет bpfcc-tools (0.18.0+ds-2) …
Обрабатываются триггеры для man-db (2.10.2-1) …
Обрабатываются триггеры для libc-bin (2.35-0ubuntu3.1) …

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

olej@R420:~$ which clang
/usr/bin/clang

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

olej@R420:~$ clang --version
Ubuntu clang version 14.0.0-1ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

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

olej@R420:/usr$ apt content bpfcc-tools | grep /usr/sbin/
/usr/sbin/argdist-bpfcc
/usr/sbin/bashreadline-bpfcc
/usr/sbin/bindsnoop-bpfcc
/usr/sbin/biolatency-bpfcc
/usr/sbin/biolatpcts-bpfcc
/usr/sbin/biosnoop-bpfcc
/usr/sbin/biotop-bpfcc
/usr/sbin/bitesize-bpfcc
/usr/sbin/bpflist-bpfcc
/usr/sbin/btrfsdist-bpfcc
/usr/sbin/btrfsslower-bpfcc
/usr/sbin/cachestat-bpfcc
/usr/sbin/cachetop-bpfcc
/usr/sbin/capable-bpfcc
/usr/sbin/cobjnew-bpfcc
/usr/sbin/compactsnoop-bpfcc
/usr/sbin/cpudist-bpfcc
/usr/sbin/cpuunclaimed-bpfcc
/usr/sbin/criticalstat-bpfcc
/usr/sbin/dbslower-bpfcc
/usr/sbin/dbstat-bpfcc
/usr/sbin/dcsnoop-bpfcc
/usr/sbin/dcstat-bpfcc
/usr/sbin/deadlock-bpfcc
/usr/sbin/dirtop-bpfcc
/usr/sbin/drsnoop-bpfcc
/usr/sbin/execsnoop-bpfcc
/usr/sbin/exitsnoop-bpfcc
/usr/sbin/ext4dist-bpfcc
/usr/sbin/ext4slower-bpfcc
/usr/sbin/filelife-bpfcc
/usr/sbin/fileslower-bpfcc
/usr/sbin/filetop-bpfcc
/usr/sbin/funccount-bpfcc
/usr/sbin/funcinterval-bpfcc
/usr/sbin/funclatency-bpfcc
/usr/sbin/funcslower-bpfcc
/usr/sbin/gethostlatency-bpfcc
/usr/sbin/hardirqs-bpfcc
/usr/sbin/inject-bpfcc
/usr/sbin/javacalls-bpfcc
/usr/sbin/javaflow-bpfcc
/usr/sbin/javagc-bpfcc
/usr/sbin/javaobjnew-bpfcc
/usr/sbin/javastat-bpfcc
/usr/sbin/javathreads-bpfcc
/usr/sbin/killsnoop-bpfcc
/usr/sbin/klockstat-bpfcc
/usr/sbin/llcstat-bpfcc
/usr/sbin/mdflush-bpfcc
/usr/sbin/memleak-bpfcc
/usr/sbin/mountsnoop-bpfcc
/usr/sbin/mysqld_qslower-bpfcc
/usr/sbin/netqtop-bpfcc
/usr/sbin/nfsdist-bpfcc
/usr/sbin/nfsslower-bpfcc
/usr/sbin/nodegc-bpfcc
/usr/sbin/nodestat-bpfcc
/usr/sbin/offcputime-bpfcc
/usr/sbin/offwaketime-bpfcc
/usr/sbin/oomkill-bpfcc
/usr/sbin/opensnoop-bpfcc
/usr/sbin/perlcalls-bpfcc
/usr/sbin/perlflow-bpfcc
/usr/sbin/perlstat-bpfcc
/usr/sbin/phpcalls-bpfcc
/usr/sbin/phpflow-bpfcc
/usr/sbin/phpstat-bpfcc
/usr/sbin/pidpersec-bpfcc
/usr/sbin/profile-bpfcc
/usr/sbin/pythoncalls-bpfcc
/usr/sbin/pythonflow-bpfcc
/usr/sbin/pythongc-bpfcc
/usr/sbin/pythonstat-bpfcc
/usr/sbin/readahead-bpfcc
/usr/sbin/reset-trace-bpfcc
/usr/sbin/rubycalls-bpfcc
/usr/sbin/rubyflow-bpfcc
/usr/sbin/rubygc-bpfcc
/usr/sbin/rubyobjnew-bpfcc
/usr/sbin/rubystat-bpfcc
/usr/sbin/runqlat-bpfcc
/usr/sbin/runqlen-bpfcc
/usr/sbin/runqslower-bpfcc
/usr/sbin/shmsnoop-bpfcc
/usr/sbin/slabratetop-bpfcc
/usr/sbin/sofdsnoop-bpfcc
/usr/sbin/softirqs-bpfcc
/usr/sbin/solisten-bpfcc
/usr/sbin/sslsniff-bpfcc
/usr/sbin/stackcount-bpfcc
/usr/sbin/statsnoop-bpfcc
/usr/sbin/swapin-bpfcc
/usr/sbin/syncsnoop-bpfcc
/usr/sbin/syscount-bpfcc
/usr/sbin/tclcalls-bpfcc
/usr/sbin/tclflow-bpfcc
/usr/sbin/tclobjnew-bpfcc
/usr/sbin/tclstat-bpfcc
/usr/sbin/tcpaccept-bpfcc
/usr/sbin/tcpconnect-bpfcc
/usr/sbin/tcpconnlat-bpfcc
/usr/sbin/tcpdrop-bpfcc
/usr/sbin/tcplife-bpfcc
/usr/sbin/tcpretrans-bpfcc
/usr/sbin/tcprtt-bpfcc
/usr/sbin/tcpstates-bpfcc
/usr/sbin/tcpsubnet-bpfcc
/usr/sbin/tcpsynbl-bpfcc
/usr/sbin/tcptop-bpfcc
/usr/sbin/tcptracer-bpfcc
/usr/sbin/threadsnoop-bpfcc
/usr/sbin/tplist-bpfcc
/usr/sbin/trace-bpfcc
/usr/sbin/ttysnoop-bpfcc
/usr/sbin/ucalls
/usr/sbin/uflow
/usr/sbin/ugc
/usr/sbin/uobjnew
/usr/sbin/ustat
/usr/sbin/uthreads
/usr/sbin/vfscount-bpfcc
/usr/sbin/vfsstat-bpfcc
/usr/sbin/wakeuptime-bpfcc
/usr/sbin/xfsdist-bpfcc
/usr/sbin/xfsslower-bpfcc
/usr/sbin/zfsdist-bpfcc
/usr/sbin/zfsslower-bpfcc

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

olej@R420:/usr$ apt content bpfcc-tools | grep /usr/sbin/ | wc -l
128

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

Berkeley Packet Filter (BPF)

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

iovisor / bpftrace

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

olej@R420:~$ aptitude search bpftrace
p   bpftrace                                                              - high-level tracing language for Linux eBPF                                      

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

olej@R420:~$ sudo apt install bpftrace
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово         
Будут установлены следующие дополнительные пакеты:
  libclang1-11
Следующие НОВЫЕ пакеты будут установлены:
  bpftrace libclang1-11
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено.
Необходимо скачать 6.682 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 27,6 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 libclang1-11 amd64 1:11.1.0-6 [6.053 kB]
Пол:2 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 bpftrace amd64 0.14.0-1 [628 kB]
Получено 6.682 kB за 2с (3.528 kB/s)
Выбор ранее не выбранного пакета libclang1-11.
(Чтение базы данных … на данный момент установлено 553759 файлов и каталогов.)
Подготовка к распаковке …/libclang1-11_1%3a11.1.0-6_amd64.deb …
Распаковывается libclang1-11 (1:11.1.0-6) …
Выбор ранее не выбранного пакета bpftrace.
Подготовка к распаковке …/bpftrace_0.14.0-1_amd64.deb …
Распаковывается bpftrace (0.14.0-1) …
Настраивается пакет libclang1-11 (1:11.1.0-6) …
Настраивается пакет bpftrace (0.14.0-1) …
Обрабатываются триггеры для man-db (2.10.2-1) …
Обрабатываются триггеры для libc-bin (2.35-0ubuntu3.1) …
The bpftrace One-Liner Tutorial

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

olej@R420:/usr$ sudo bpftrace -l 'tracepoint:syscalls:sys_enter_*'
tracepoint:syscalls:sys_enter_accept
tracepoint:syscalls:sys_enter_accept4
tracepoint:syscalls:sys_enter_access
tracepoint:syscalls:sys_enter_acct
tracepoint:syscalls:sys_enter_add_key
tracepoint:syscalls:sys_enter_adjtimex
tracepoint:syscalls:sys_enter_alarm
tracepoint:syscalls:sys_enter_arch_prctl
tracepoint:syscalls:sys_enter_bind
tracepoint:syscalls:sys_enter_bpf
tracepoint:syscalls:sys_enter_brk
tracepoint:syscalls:sys_enter_capget
tracepoint:syscalls:sys_enter_capset
tracepoint:syscalls:sys_enter_chdir
tracepoint:syscalls:sys_enter_chmod
tracepoint:syscalls:sys_enter_chown
tracepoint:syscalls:sys_enter_chroot
tracepoint:syscalls:sys_enter_clock_adjtime
tracepoint:syscalls:sys_enter_clock_getres
tracepoint:syscalls:sys_enter_clock_gettime
tracepoint:syscalls:sys_enter_clock_nanosleep
tracepoint:syscalls:sys_enter_clock_settime
tracepoint:syscalls:sys_enter_clone
tracepoint:syscalls:sys_enter_clone3
tracepoint:syscalls:sys_enter_close
tracepoint:syscalls:sys_enter_close_range
tracepoint:syscalls:sys_enter_connect
tracepoint:syscalls:sys_enter_copy_file_range
tracepoint:syscalls:sys_enter_creat
tracepoint:syscalls:sys_enter_delete_module
tracepoint:syscalls:sys_enter_dup
tracepoint:syscalls:sys_enter_dup2
tracepoint:syscalls:sys_enter_dup3
tracepoint:syscalls:sys_enter_epoll_create
tracepoint:syscalls:sys_enter_epoll_create1
tracepoint:syscalls:sys_enter_epoll_ctl
tracepoint:syscalls:sys_enter_epoll_pwait
tracepoint:syscalls:sys_enter_epoll_pwait2
tracepoint:syscalls:sys_enter_epoll_wait
tracepoint:syscalls:sys_enter_eventfd
tracepoint:syscalls:sys_enter_eventfd2
tracepoint:syscalls:sys_enter_execve
tracepoint:syscalls:sys_enter_execveat
tracepoint:syscalls:sys_enter_exit
tracepoint:syscalls:sys_enter_exit_group
tracepoint:syscalls:sys_enter_faccessat
tracepoint:syscalls:sys_enter_faccessat2
tracepoint:syscalls:sys_enter_fadvise64
tracepoint:syscalls:sys_enter_fallocate
tracepoint:syscalls:sys_enter_fanotify_init
tracepoint:syscalls:sys_enter_fanotify_mark
tracepoint:syscalls:sys_enter_fchdir
tracepoint:syscalls:sys_enter_fchmod
tracepoint:syscalls:sys_enter_fchmodat
tracepoint:syscalls:sys_enter_fchown
tracepoint:syscalls:sys_enter_fchownat
tracepoint:syscalls:sys_enter_fcntl
tracepoint:syscalls:sys_enter_fdatasync
tracepoint:syscalls:sys_enter_fgetxattr
tracepoint:syscalls:sys_enter_finit_module
tracepoint:syscalls:sys_enter_flistxattr
tracepoint:syscalls:sys_enter_flock
tracepoint:syscalls:sys_enter_fork
tracepoint:syscalls:sys_enter_fremovexattr
tracepoint:syscalls:sys_enter_fsconfig
tracepoint:syscalls:sys_enter_fsetxattr
tracepoint:syscalls:sys_enter_fsmount
tracepoint:syscalls:sys_enter_fsopen
tracepoint:syscalls:sys_enter_fspick
tracepoint:syscalls:sys_enter_fstatfs
tracepoint:syscalls:sys_enter_fsync
tracepoint:syscalls:sys_enter_ftruncate
tracepoint:syscalls:sys_enter_futex
tracepoint:syscalls:sys_enter_futimesat
tracepoint:syscalls:sys_enter_get_mempolicy
tracepoint:syscalls:sys_enter_get_robust_list
tracepoint:syscalls:sys_enter_getcpu
tracepoint:syscalls:sys_enter_getcwd
tracepoint:syscalls:sys_enter_getdents
tracepoint:syscalls:sys_enter_getdents64
tracepoint:syscalls:sys_enter_getegid
tracepoint:syscalls:sys_enter_geteuid
tracepoint:syscalls:sys_enter_getgid
tracepoint:syscalls:sys_enter_getgroups
tracepoint:syscalls:sys_enter_getitimer
tracepoint:syscalls:sys_enter_getpeername
tracepoint:syscalls:sys_enter_getpgid
tracepoint:syscalls:sys_enter_getpgrp
tracepoint:syscalls:sys_enter_getpid
tracepoint:syscalls:sys_enter_getppid
tracepoint:syscalls:sys_enter_getpriority
tracepoint:syscalls:sys_enter_getrandom
tracepoint:syscalls:sys_enter_getresgid
tracepoint:syscalls:sys_enter_getresuid
tracepoint:syscalls:sys_enter_getrlimit
tracepoint:syscalls:sys_enter_getrusage
tracepoint:syscalls:sys_enter_getsid
tracepoint:syscalls:sys_enter_getsockname
tracepoint:syscalls:sys_enter_getsockopt
tracepoint:syscalls:sys_enter_gettid
tracepoint:syscalls:sys_enter_gettimeofday
tracepoint:syscalls:sys_enter_getuid
tracepoint:syscalls:sys_enter_getxattr
tracepoint:syscalls:sys_enter_init_module
tracepoint:syscalls:sys_enter_inotify_add_watch
tracepoint:syscalls:sys_enter_inotify_init
tracepoint:syscalls:sys_enter_inotify_init1
tracepoint:syscalls:sys_enter_inotify_rm_watch
tracepoint:syscalls:sys_enter_io_cancel
tracepoint:syscalls:sys_enter_io_destroy
tracepoint:syscalls:sys_enter_io_getevents
tracepoint:syscalls:sys_enter_io_pgetevents
tracepoint:syscalls:sys_enter_io_setup
tracepoint:syscalls:sys_enter_io_submit
tracepoint:syscalls:sys_enter_io_uring_enter
tracepoint:syscalls:sys_enter_io_uring_register
tracepoint:syscalls:sys_enter_io_uring_setup
tracepoint:syscalls:sys_enter_ioctl
tracepoint:syscalls:sys_enter_ioperm
tracepoint:syscalls:sys_enter_iopl
tracepoint:syscalls:sys_enter_ioprio_get
tracepoint:syscalls:sys_enter_ioprio_set
tracepoint:syscalls:sys_enter_kcmp
tracepoint:syscalls:sys_enter_kexec_file_load
tracepoint:syscalls:sys_enter_kexec_load
tracepoint:syscalls:sys_enter_keyctl
tracepoint:syscalls:sys_enter_kill
tracepoint:syscalls:sys_enter_landlock_add_rule
tracepoint:syscalls:sys_enter_landlock_create_ruleset
tracepoint:syscalls:sys_enter_landlock_restrict_self
tracepoint:syscalls:sys_enter_lchown
tracepoint:syscalls:sys_enter_lgetxattr
tracepoint:syscalls:sys_enter_link
tracepoint:syscalls:sys_enter_linkat
tracepoint:syscalls:sys_enter_listen
tracepoint:syscalls:sys_enter_listxattr
tracepoint:syscalls:sys_enter_llistxattr
tracepoint:syscalls:sys_enter_lremovexattr
tracepoint:syscalls:sys_enter_lseek
tracepoint:syscalls:sys_enter_lsetxattr
tracepoint:syscalls:sys_enter_madvise
tracepoint:syscalls:sys_enter_mbind
tracepoint:syscalls:sys_enter_membarrier
tracepoint:syscalls:sys_enter_memfd_create
tracepoint:syscalls:sys_enter_memfd_secret
tracepoint:syscalls:sys_enter_migrate_pages
tracepoint:syscalls:sys_enter_mincore
tracepoint:syscalls:sys_enter_mkdir
tracepoint:syscalls:sys_enter_mkdirat
tracepoint:syscalls:sys_enter_mknod
tracepoint:syscalls:sys_enter_mknodat
tracepoint:syscalls:sys_enter_mlock
tracepoint:syscalls:sys_enter_mlock2
tracepoint:syscalls:sys_enter_mlockall
tracepoint:syscalls:sys_enter_mmap
tracepoint:syscalls:sys_enter_modify_ldt
tracepoint:syscalls:sys_enter_mount
tracepoint:syscalls:sys_enter_mount_setattr
tracepoint:syscalls:sys_enter_move_mount
tracepoint:syscalls:sys_enter_move_pages
tracepoint:syscalls:sys_enter_mprotect
tracepoint:syscalls:sys_enter_mq_getsetattr
tracepoint:syscalls:sys_enter_mq_notify
tracepoint:syscalls:sys_enter_mq_open
tracepoint:syscalls:sys_enter_mq_timedreceive
tracepoint:syscalls:sys_enter_mq_timedsend
tracepoint:syscalls:sys_enter_mq_unlink
tracepoint:syscalls:sys_enter_mremap
tracepoint:syscalls:sys_enter_msgctl
tracepoint:syscalls:sys_enter_msgget
tracepoint:syscalls:sys_enter_msgrcv
tracepoint:syscalls:sys_enter_msgsnd
tracepoint:syscalls:sys_enter_msync
tracepoint:syscalls:sys_enter_munlock
tracepoint:syscalls:sys_enter_munlockall
tracepoint:syscalls:sys_enter_munmap
tracepoint:syscalls:sys_enter_name_to_handle_at
tracepoint:syscalls:sys_enter_nanosleep
tracepoint:syscalls:sys_enter_newfstat
tracepoint:syscalls:sys_enter_newfstatat
tracepoint:syscalls:sys_enter_newlstat
tracepoint:syscalls:sys_enter_newstat
tracepoint:syscalls:sys_enter_newuname
tracepoint:syscalls:sys_enter_open
tracepoint:syscalls:sys_enter_open_by_handle_at
tracepoint:syscalls:sys_enter_open_tree
tracepoint:syscalls:sys_enter_openat
tracepoint:syscalls:sys_enter_openat2
tracepoint:syscalls:sys_enter_pause
tracepoint:syscalls:sys_enter_perf_event_open
tracepoint:syscalls:sys_enter_personality
tracepoint:syscalls:sys_enter_pidfd_getfd
tracepoint:syscalls:sys_enter_pidfd_open
tracepoint:syscalls:sys_enter_pidfd_send_signal
tracepoint:syscalls:sys_enter_pipe
tracepoint:syscalls:sys_enter_pipe2
tracepoint:syscalls:sys_enter_pivot_root
tracepoint:syscalls:sys_enter_pkey_alloc
tracepoint:syscalls:sys_enter_pkey_free
tracepoint:syscalls:sys_enter_pkey_mprotect
tracepoint:syscalls:sys_enter_poll
tracepoint:syscalls:sys_enter_ppoll
tracepoint:syscalls:sys_enter_prctl
tracepoint:syscalls:sys_enter_pread64
tracepoint:syscalls:sys_enter_preadv
tracepoint:syscalls:sys_enter_preadv2
tracepoint:syscalls:sys_enter_prlimit64
tracepoint:syscalls:sys_enter_process_madvise
tracepoint:syscalls:sys_enter_process_mrelease
tracepoint:syscalls:sys_enter_process_vm_readv
tracepoint:syscalls:sys_enter_process_vm_writev
tracepoint:syscalls:sys_enter_pselect6
tracepoint:syscalls:sys_enter_ptrace
tracepoint:syscalls:sys_enter_pwrite64
tracepoint:syscalls:sys_enter_pwritev
tracepoint:syscalls:sys_enter_pwritev2
tracepoint:syscalls:sys_enter_quotactl
tracepoint:syscalls:sys_enter_quotactl_fd
tracepoint:syscalls:sys_enter_read
tracepoint:syscalls:sys_enter_readahead
tracepoint:syscalls:sys_enter_readlink
tracepoint:syscalls:sys_enter_readlinkat
tracepoint:syscalls:sys_enter_readv
tracepoint:syscalls:sys_enter_reboot
tracepoint:syscalls:sys_enter_recvfrom
tracepoint:syscalls:sys_enter_recvmmsg
tracepoint:syscalls:sys_enter_recvmsg
tracepoint:syscalls:sys_enter_remap_file_pages
tracepoint:syscalls:sys_enter_removexattr
tracepoint:syscalls:sys_enter_rename
tracepoint:syscalls:sys_enter_renameat
tracepoint:syscalls:sys_enter_renameat2
tracepoint:syscalls:sys_enter_request_key
tracepoint:syscalls:sys_enter_restart_syscall
tracepoint:syscalls:sys_enter_rmdir
tracepoint:syscalls:sys_enter_rseq
tracepoint:syscalls:sys_enter_rt_sigaction
tracepoint:syscalls:sys_enter_rt_sigpending
tracepoint:syscalls:sys_enter_rt_sigprocmask
tracepoint:syscalls:sys_enter_rt_sigqueueinfo
tracepoint:syscalls:sys_enter_rt_sigreturn
tracepoint:syscalls:sys_enter_rt_sigsuspend
tracepoint:syscalls:sys_enter_rt_sigtimedwait
tracepoint:syscalls:sys_enter_rt_tgsigqueueinfo
tracepoint:syscalls:sys_enter_sched_get_priority_max
tracepoint:syscalls:sys_enter_sched_get_priority_min
tracepoint:syscalls:sys_enter_sched_getaffinity
tracepoint:syscalls:sys_enter_sched_getattr
tracepoint:syscalls:sys_enter_sched_getparam
tracepoint:syscalls:sys_enter_sched_getscheduler
tracepoint:syscalls:sys_enter_sched_rr_get_interval
tracepoint:syscalls:sys_enter_sched_setaffinity
tracepoint:syscalls:sys_enter_sched_setattr
tracepoint:syscalls:sys_enter_sched_setparam
tracepoint:syscalls:sys_enter_sched_setscheduler
tracepoint:syscalls:sys_enter_sched_yield
tracepoint:syscalls:sys_enter_seccomp
tracepoint:syscalls:sys_enter_select
tracepoint:syscalls:sys_enter_semctl
tracepoint:syscalls:sys_enter_semget
tracepoint:syscalls:sys_enter_semop
tracepoint:syscalls:sys_enter_semtimedop
tracepoint:syscalls:sys_enter_sendfile64
tracepoint:syscalls:sys_enter_sendmmsg
tracepoint:syscalls:sys_enter_sendmsg
tracepoint:syscalls:sys_enter_sendto
tracepoint:syscalls:sys_enter_set_mempolicy
tracepoint:syscalls:sys_enter_set_robust_list
tracepoint:syscalls:sys_enter_set_tid_address
tracepoint:syscalls:sys_enter_setdomainname
tracepoint:syscalls:sys_enter_setfsgid
tracepoint:syscalls:sys_enter_setfsuid
tracepoint:syscalls:sys_enter_setgid
tracepoint:syscalls:sys_enter_setgroups
tracepoint:syscalls:sys_enter_sethostname
tracepoint:syscalls:sys_enter_setitimer
tracepoint:syscalls:sys_enter_setns
tracepoint:syscalls:sys_enter_setpgid
tracepoint:syscalls:sys_enter_setpriority
tracepoint:syscalls:sys_enter_setregid
tracepoint:syscalls:sys_enter_setresgid
tracepoint:syscalls:sys_enter_setresuid
tracepoint:syscalls:sys_enter_setreuid
tracepoint:syscalls:sys_enter_setrlimit
tracepoint:syscalls:sys_enter_setsid
tracepoint:syscalls:sys_enter_setsockopt
tracepoint:syscalls:sys_enter_settimeofday
tracepoint:syscalls:sys_enter_setuid
tracepoint:syscalls:sys_enter_setxattr
tracepoint:syscalls:sys_enter_shmat
tracepoint:syscalls:sys_enter_shmctl
tracepoint:syscalls:sys_enter_shmdt
tracepoint:syscalls:sys_enter_shmget
tracepoint:syscalls:sys_enter_shutdown
tracepoint:syscalls:sys_enter_sigaltstack
tracepoint:syscalls:sys_enter_signalfd
tracepoint:syscalls:sys_enter_signalfd4
tracepoint:syscalls:sys_enter_socket
tracepoint:syscalls:sys_enter_socketpair
tracepoint:syscalls:sys_enter_splice
tracepoint:syscalls:sys_enter_statfs
tracepoint:syscalls:sys_enter_statx
tracepoint:syscalls:sys_enter_swapoff
tracepoint:syscalls:sys_enter_swapon
tracepoint:syscalls:sys_enter_symlink
tracepoint:syscalls:sys_enter_symlinkat
tracepoint:syscalls:sys_enter_sync
tracepoint:syscalls:sys_enter_sync_file_range
tracepoint:syscalls:sys_enter_syncfs
tracepoint:syscalls:sys_enter_sysfs
tracepoint:syscalls:sys_enter_sysinfo
tracepoint:syscalls:sys_enter_syslog
tracepoint:syscalls:sys_enter_tee
tracepoint:syscalls:sys_enter_tgkill
tracepoint:syscalls:sys_enter_time
tracepoint:syscalls:sys_enter_timer_create
tracepoint:syscalls:sys_enter_timer_delete
tracepoint:syscalls:sys_enter_timer_getoverrun
tracepoint:syscalls:sys_enter_timer_gettime
tracepoint:syscalls:sys_enter_timer_settime
tracepoint:syscalls:sys_enter_timerfd_create
tracepoint:syscalls:sys_enter_timerfd_gettime
tracepoint:syscalls:sys_enter_timerfd_settime
tracepoint:syscalls:sys_enter_times
tracepoint:syscalls:sys_enter_tkill
tracepoint:syscalls:sys_enter_truncate
tracepoint:syscalls:sys_enter_umask
tracepoint:syscalls:sys_enter_umount
tracepoint:syscalls:sys_enter_unlink
tracepoint:syscalls:sys_enter_unlinkat
tracepoint:syscalls:sys_enter_unshare
tracepoint:syscalls:sys_enter_userfaultfd
tracepoint:syscalls:sys_enter_ustat
tracepoint:syscalls:sys_enter_utime
tracepoint:syscalls:sys_enter_utimensat
tracepoint:syscalls:sys_enter_utimes
tracepoint:syscalls:sys_enter_vfork
tracepoint:syscalls:sys_enter_vhangup
tracepoint:syscalls:sys_enter_vmsplice
tracepoint:syscalls:sys_enter_wait4
tracepoint:syscalls:sys_enter_waitid
tracepoint:syscalls:sys_enter_write
tracepoint:syscalls:sys_enter_writev
Вот они все, системные вызовы:

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

olej@R420:/usr$ sudo bpftrace -l 'tracepoint:syscalls:sys_enter_*' | wc -l
343

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

Berkeley Packet Filter (BPF)

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

Olej писал(а):
02 июл 2023, 12:28
The bpftrace One-Liner Tutorial
Но:
Lesson 2. Hello World

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

olej@R420:/usr$ sudo bpftrace -e 'BEGIN { printf("hello world\n"); }'
Attaching 1 probe...
ERROR: Could not resolve symbol: /proc/self/exe:BEGIN_trigger
Вот так! - хер вам! :cry:
Lesson 3. File Opens

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

root@R420:~# bpftrace -e 'tracepoint:syscalls:sys_enter_openat { printf("%s %s\n", comm, str(args.filename)); }'
stdin:1:64-73: ERROR: Can not access field 'filename' on type '(ctx) struct _tracepoint_syscalls_sys_enter_openat *'. Try dereferencing it first, or using '->'
tracepoint:syscalls:sys_enter_openat { printf("%s %s\n", comm, str(args.filename)); }
                                                               ~~~~~~~~~
stdin:1:64-82: ERROR: str() expects an integer or a pointer type as first argument (none provided)
tracepoint:syscalls:sys_enter_openat { printf("%s %s\n", comm, str(args.filename)); }
                                                               ~~~~~~~~~~~~~~~~~~

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

Berkeley Packet Filter (BPF)

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

GIT репозиторий проекта Installing BCC
Примечание: пакеты Ubuntu имеют разные имена, но содержимое пакетов в большинстве случаев конфликтует и поэтому не может быть установлено вместе с исходными пакетами. Если кто-то решит использовать пакеты Ubuntu вместо вышестоящих пакетов iovisor (или наоборот), конфликтующие пакеты необходимо будет удалить.

Пакеты iovisor заявляют, что они предоставляют пакеты Ubuntu и поэтому могут использоваться для удовлетворения зависимостей. Например, если кто-то попытается установить пакет foo, который объявляет зависимость от libbpfcc, когда установлен пакет libbcc основной ветки разработки, foo должен установиться без проблем, так как libbcc заявляет, что предоставляет libbpfcc. Тем не менее, всегда следует тестировать такую конфигурацию в случае несовместимости версий.
Проверка:

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

olej@R420:~$ sudo apt-get install bpfcc-tools linux-headers-$(uname -r)
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Уже установлен пакет bpfcc-tools самой новой версии (0.18.0+ds-2).
Уже установлен пакет linux-headers-5.15.0-76-generic самой новой версии (5.15.0-76.83).
linux-headers-5.15.0-76-generic помечен как установленный вручную.
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено.

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

olej@R420:~$ sudo /sbin/opensnoop-bpfcc
[sudo] пароль для olej:       
In file included from <built-in>:2:
In file included from /virtual/include/bcc/bpf.h:12:
In file included from include/linux/types.h:6:
In file included from include/uapi/linux/types.h:14:
In file included from include/uapi/linux/posix_types.h:5:
In file included from include/linux/stddef.h:5:
In file included from include/uapi/linux/stddef.h:5:
In file included from include/linux/compiler_types.h:80:
include/linux/compiler-clang.h:41:9: warning: '__HAVE_BUILTIN_BSWAP32__' macro redefined [-Wmacro-redefined]
#define __HAVE_BUILTIN_BSWAP32__
        ^
<command line>:4:9: note: previous definition is here
#define __HAVE_BUILTIN_BSWAP32__ 1
        ^
In file included from <built-in>:2:
In file included from /virtual/include/bcc/bpf.h:12:
In file included from include/linux/types.h:6:
In file included from include/uapi/linux/types.h:14:
In file included from include/uapi/linux/posix_types.h:5:
In file included from include/linux/stddef.h:5:
In file included from include/uapi/linux/stddef.h:5:
In file included from include/linux/compiler_types.h:80:
include/linux/compiler-clang.h:42:9: warning: '__HAVE_BUILTIN_BSWAP64__' macro redefined [-Wmacro-redefined]
#define __HAVE_BUILTIN_BSWAP64__
        ^
<command line>:5:9: note: previous definition is here
#define __HAVE_BUILTIN_BSWAP64__ 1
        ^
In file included from <built-in>:2:
In file included from /virtual/include/bcc/bpf.h:12:
In file included from include/linux/types.h:6:
In file included from include/uapi/linux/types.h:14:
In file included from include/uapi/linux/posix_types.h:5:
In file included from include/linux/stddef.h:5:
In file included from include/uapi/linux/stddef.h:5:
In file included from include/linux/compiler_types.h:80:
include/linux/compiler-clang.h:43:9: warning: '__HAVE_BUILTIN_BSWAP16__' macro redefined [-Wmacro-redefined]
#define __HAVE_BUILTIN_BSWAP16__
        ^
<command line>:3:9: note: previous definition is here
#define __HAVE_BUILTIN_BSWAP16__ 1
        ^
3 warnings generated.
In file included from <built-in>:2:
In file included from /virtual/include/bcc/bpf.h:12:
In file included from include/linux/types.h:6:
In file included from include/uapi/linux/types.h:14:
In file included from include/uapi/linux/posix_types.h:5:
In file included from include/linux/stddef.h:5:
In file included from include/uapi/linux/stddef.h:5:
In file included from include/linux/compiler_types.h:80:
include/linux/compiler-clang.h:41:9: warning: '__HAVE_BUILTIN_BSWAP32__' macro redefined [-Wmacro-redefined]
#define __HAVE_BUILTIN_BSWAP32__
        ^
<command line>:4:9: note: previous definition is here
#define __HAVE_BUILTIN_BSWAP32__ 1
        ^
In file included from <built-in>:2:
In file included from /virtual/include/bcc/bpf.h:12:
In file included from include/linux/types.h:6:
In file included from include/uapi/linux/types.h:14:
In file included from include/uapi/linux/posix_types.h:5:
In file included from include/linux/stddef.h:5:
In file included from include/uapi/linux/stddef.h:5:
In file included from include/linux/compiler_types.h:80:
include/linux/compiler-clang.h:42:9: warning: '__HAVE_BUILTIN_BSWAP64__' macro redefined [-Wmacro-redefined]
#define __HAVE_BUILTIN_BSWAP64__
        ^
<command line>:5:9: note: previous definition is here
#define __HAVE_BUILTIN_BSWAP64__ 1
        ^
In file included from <built-in>:2:
In file included from /virtual/include/bcc/bpf.h:12:
In file included from include/linux/types.h:6:
In file included from include/uapi/linux/types.h:14:
In file included from include/uapi/linux/posix_types.h:5:
In file included from include/linux/stddef.h:5:
In file included from include/uapi/linux/stddef.h:5:
In file included from include/linux/compiler_types.h:80:
include/linux/compiler-clang.h:43:9: warning: '__HAVE_BUILTIN_BSWAP16__' macro redefined [-Wmacro-redefined]
#define __HAVE_BUILTIN_BSWAP16__
        ^
<command line>:3:9: note: previous definition is here
#define __HAVE_BUILTIN_BSWAP16__ 1
        ^
3 warnings generated.
PID    COMM               FD ERR PATH
1      systemd           102   0 /proc/1651/cgroup
4988   Cache2 I/O        172   0 /home/olej/.cache/mozilla/firefox/z3bcerog.default-release/cache2/entries/52A5B2B440173F9724ACE2EB46CDEF1889A052F4
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   LS Thread         172   0 /home/olej/.mozilla/firefox/z3bcerog.default-release/storage/default/https+++ott.teletarget.ru^partitionKey=%28https%2C1tv.ru%29/ls/data.sqlite-journal
4988   LS Thread         188   0 /home/olej/.mozilla/firefox/z3bcerog.default-release/storage/default/https+++ott.teletarget.ru^partitionKey=%28https%2C1tv.ru%29/ls/usage-journal
4988   LS Thread         188   0 /home/olej/.mozilla/firefox/z3bcerog.default-release/storage/default/https+++ott.teletarget.ru^partitionKey=%28https%2C1tv.ru%29/ls/usage
4988   LS Thread         188   0 /home/olej/.mozilla/firefox/z3bcerog.default-release/storage/default/https+++ott.teletarget.ru^partitionKey=%28https%2C1tv.ru%29/ls
4988   Cache2 I/O        172   0 /home/olej/.cache/mozilla/firefox/z3bcerog.default-release/cache2/entries/3D2F793EDE22797992631525C4A2FCA0816C3607
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        188   0 /proc/self/mountinfo
4988   Cache2 I/O        172   0 /proc/self/mountinfo
4988   Cache2 I/O        172   0 /proc/self/mountinfo
4988   Cache2 I/O        172   0 /proc/self/mountinfo
...

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

Berkeley Packet Filter (BPF)

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

Olej писал(а):
01 июл 2023, 15:59
Книга:
O'REILLY
Liz Rice
"Learning eBPF
Programming the Linux Kernel for Enhanced
Observability, Networking, and Security"
2023 г.
238 стр.
стр.15 :
Если вы хотите попробовать этот код самостоятельно, он доступен по адресу https://github.com/lizrice/learning-ebpf в каталоге Chapter2. Вы найдете проект BCC по адресу https://github.com/iovisor/bcc и инструкции по установке BCC находятся на https://github.com/iovisor/bcc/blob/master/INSTALL.md .
Вложения
learning-ebpf.tgz
(3.65 МБ) 17 скачиваний

Ответить

Вернуться в «Linux изнутри»

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

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