KKloud TarusKKloud Tarus
  • Blog
  • Series
  • Đội ngũ
  • Giới thiệu

Blog

Thoughts on engineering, design, and building great products.

SeriesAll postsCO-REAPFAPIARPAWSAdmissionAffinityAggregationAnsibleAppArmorArchitectureAuthenticationAuthorizationAutomationAutoscaling
libbpf và CO-RE: Tự Viết Một Công Cụ eBP...
LinuxeBPF

libbpf và CO-RE: Tự Viết Một Công Cụ eBPF

bpftrace hợp cho câu hỏi nhanh. Khi cần một công cụ thật — đóng gói, phân phối, chạy lâu dài — ta viết chương trình eBPF bằng C với libbpf và CO-RE. Bài này dựng execsnoop từ đầu: chương trình nhân đẩy sự kiện exec qua ring buffer, bpftool sinh skeleton, một loader C dùng libbpf nạp và đọc sự kiện. Build đủ chuỗi clang → skeleton → link libbpf, rồi chạy thấy từng lần exec trên cụm hiện ra với pid, ppid, tên file — kèm một cái bẫy buffer thật.

K
KaiMay 24, 2026
BTF và CO-RE: Một Lần Biên Dịch, Chạy Mọ...
LinuxeBPF

BTF và CO-RE: Một Lần Biên Dịch, Chạy Mọi Kernel

Cấu trúc dữ liệu bên trong nhân như task_struct có layout khác nhau giữa các phiên bản kernel — field nằm ở offset nào tùy bản. Vậy làm sao một chương trình eBPF biên dịch sẵn đọc đúng field trên mọi kernel? Câu trả lời là BTF và CO-RE. Bài cuối Part I sinh vmlinux.h từ BTF của nhân, viết một chương trình đọc ppid bằng cách lần qua task->real_parent->tgid, biên dịch một lần và chạy — libbpf tự tìm offset đúng theo BTF của kernel đang chạy. Đây cũng là nền cho Part III tự viết công cụ thật.

K
KaiMay 24, 2026
KKloud TarusKKloud Tarus

Khám phá. Xây dựng. Chia sẻ.

  • Blog
  • Đội ngũ
  • Giới thiệu
© 2026 KKloud Tarus. Bảo lưu mọi quyền.