Olej писал(а): ↑24 июл 2023, 01:23
Вот где собака порылась
Авторы кодов примеров к книге
не сильно заморачиваются версиями ядра на которых они отрабатывают код
...
Note on Kernel version: make sure to have a recent kernel to run the examples, a version >=5.0.0 will do the job.
Копирую 2 недостающих файла bpf_load.c и bpf_load.h (это исходники, это не страшно) в свой /kernel-src/samples/bpf ...
Код
https://github.com/bpftools/linux-obser ... ello_world - глава 2 ...
Код: Выделить всё
olej@R420:~/2023/own.BOOKs/eBPF$ mv linux-observability-with-bpf ~
Код: Выделить всё
olej@R420:~/2023/own.BOOKs/eBPF$ cd ~/linux-observability-with-bpf/code/chapter-2/hello_world
Код: Выделить всё
olej@R420:~/linux-observability-with-bpf/code/chapter-2/hello_world$ make bpfload
clang -O2 -target bpf -c bpf_program.c -I/kernel-src/tools/testing/selftests/bpf -o bpf_program.o
clang -o monitor-exec -lelf -I/kernel-src/samples/bpf -I/kernel-src/tools/lib -I/kernel-src/tools/perf -I/kernel-src/tools/include -L/usr/local/lib64 -lbpf \
/kernel-src/samples/bpf/bpf_load.c loader.c
Вот теперь всё собралось:
Код: Выделить всё
olej@R420:~/linux-observability-with-bpf/code/chapter-2/hello_world$ ls -l
итого 52
-rw-rw-r-- 1 olej olej 410 июл 23 15:09 bpf_program.c
-rw-rw-r-- 1 olej olej 936 июл 23 20:46 bpf_program.o
-rw-rw-r-- 1 olej olej 233 июл 23 15:09 loader.c
-rw-rw-r-- 1 olej olej 1706 июл 23 15:09 Makefile
-rwxrwxr-x 1 olej olej 31480 июл 23 20:46 monitor-exec
-rw-rw-r-- 1 olej olej 1834 июл 23 15:09 README.md
Код виртуальной машины BPF:
Код: Выделить всё
olej@R420:~/linux-observability-with-bpf/code/chapter-2/hello_world$ file bpf_program.o
bpf_program.o: ELF 64-bit LSB relocatable, eBPF, version 1 (SYSV), not stripped
Код позьзовательского пространства, загружающий код виртуальной машины BPF в ядро:
Код: Выделить всё
olej@R420:~/linux-observability-with-bpf/code/chapter-2/hello_world$ file monitor-exec
monitor-exec: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=8c6a9bb6ee56939171512d0e09573630e195db1a, for GNU/Linux 3.2.0, not stripped