libbpf와 CO-RE를 중심으로 C, Go, Rust의 짧고 실행 가능한 예제를 제공하는 단계별 eBPF 튜토리얼입니다.
aliyun/coolbpf
libbpf를 감싸 eBPF 프로그램을 컴파일하고 로드하는 C 라이브러리 및 플랫폼으로, 원격 컴파일과 커널 버전별 백포트를 지원합니다.
- 스타
- 292
- 포크
- 44
- 열린 이슈
- 5
- 마지막 커밋
- 7시간 전
어떤 프로젝트인가요?
coolbpf는 libbpf의 주요 기능을 래핑해 개발자가 적은 설정만으로 커널 추적 및 조작 프로그램을 만들 수 있도록 합니다. BPF 함수 호출을 위한 래퍼가 포함된 로컬 컴파일 서비스와, bpf.c 소스 파일을 받아 로컬 애플리케이션에서 로드할 수 있는 bpf.so 객체를 반환하는 원격 컴파일 서비스를 제공합니다. 따라서 사용자가 컴파일 환경을 직접 관리할 필요가 없습니다.
또한 커널 모듈을 사용해 최신 커널의 BPF 기능을 구형 커널로 백포트합니다. 예를 들어 3.10 커널에서 BPF를 지원하고 perf buffer를 ring buffer로 대체할 수 있습니다. BTF를 자동 생성하며 Python, Go, C, Rust 바인딩을 제공합니다. libcoolbpf를 빌드하려면 elfutils-devel과 gcc가 필요하고, eBPF 도구를 사용하려면 clang과 llvm도 필요합니다.
저장소에는 코드 변경 없이 SSL/TLS 트래픽과 프로세스 활동을 캡처하는 eBPF 기반 LLM 에이전트 관측 도구인 AgentSight와, XDP 프로그램에 추가 kfunc를 제공하는 eNetSTL 등의 커널 모듈도 포함되어 있습니다.
핵심 기능
- 01BPF 함수 호출 래퍼를 제공하는 로컬 컴파일 서비스.
- 02로컬에서 로드할 수 있는 bpf.so를 반환하는 원격 컴파일 서비스.
- 033.10 커널에서의 BPF 지원, perf buffer 대신 ring buffer 사용 등을 제공하는 커널 모듈 백포트.
- 04BTF 자동 생성.
- 05Python, Go, C, Rust용 언어 바인딩.
- 06AgentSight는 코드 변경 없이 eBPF로 LLM 에이전트의 트래픽과 프로세스를 관측합니다.
활용 사례
- 로컬 컴파일 도구 체인을 관리하지 않고 eBPF 추적 도구를 빌드할 수 있습니다.
- 커널 모듈 백포트를 통해 구형 커널에서 BPF 프로그램을 실행할 수 있습니다.
- Linux에서 AI 에이전트의 네트워크 트래픽과 하위 프로세스 활동을 관측할 수 있습니다.
빠른 시작
- 1
빌드 종속성(elfutils-devel, gcc)을 설치합니다
- 2
프로젝트 루트에서 libcoolbpf를 설치합니다
./install.sh - 3
프로젝트 루트에서 syscall 예제를 빌드합니다
mkdir -p build && cd build && cmake -DBUILD_EXAMPLE=on .. && make
사용 전 알아둘 점
- eBPF 도구를 빌드하려면 gcc와 elfutils 외에도 clang과 llvm이 필요합니다.
- 커널 버전 백포트와 같은 일부 기능은 커널 모듈을 로드해야 하므로 root 권한이 필요합니다.
- README에는 나열된 종속성 외에 라이선스나 안정성에 관한 명시적인 주의사항이 없습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- coolbpf은(는) 무엇인가요?
- libbpf를 감싸 eBPF 프로그램을 컴파일하고 로드하는 C 라이브러리 및 플랫폼으로, 원격 컴파일과 커널 버전별 백포트를 지원합니다. coolbpf는 libbpf의 주요 기능을 래핑해 개발자가 적은 설정만으로 커널 추적 및 조작 프로그램을 만들 수 있도록 합니다. BPF 함수 호출을 위한 래퍼가 포함된 로컬 컴파일 서비스와, bpf.c 소스 파일을 받아 로컬 애플리케이션에서 로드할 수 있는 bpf.so 객체를 반환하는 원격 컴파일 서비스를 제공합니다. 따라서 사용자가 컴파일 환경을 직접 관리할 필요가 없습니다.
- coolbpf은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- coolbpf은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- coolbpf은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. coolbpf의 마지막 커밋은 2026년 11월 7일입니다.
- coolbpf은(는) 어디에 사용할 수 있나요?
- 로컬 컴파일 도구 체인을 관리하지 않고 eBPF 추적 도구를 빌드할 수 있습니다. 커널 모듈 백포트를 통해 구형 커널에서 BPF 프로그램을 실행할 수 있습니다. Linux에서 AI 에이전트의 네트워크 트래픽과 하위 프로세스 활동을 관측할 수 있습니다.
- coolbpf는 어떻게 설치하나요?
- 빌드 종속성(elfutils-devel, gcc)을 설치합니다 프로젝트 루트에서 libcoolbpf를 설치합니다: ./install.sh 프로젝트 루트에서 syscall 예제를 빌드합니다: mkdir -p build && cd build && cmake -DBUILD_EXAMPLE=on .. && make
- coolbpf은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/aliyun/coolbpf
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
기존 Linux eBPF 툴체인, API, 프로그램을 Windows 커널에서 실행할 수 있게 해 주는 Windows용 eBPF 런타임입니다.
eBPF 기반 Linux 네트워크 트래픽 캡처 및 검사용 터미널 UI
eBPF로 커널 및 사용자 공간 이벤트를 최소한의 오버헤드로 추적하는 Linux용 고수준 추적 언어 및 도구입니다.
Kubernetes 클러스터와 Linux 호스트의 시스템 데이터를 수집하고 살펴보는 eBPF 도구 키트
Kubernetes 클러스터를 위한 eBPF 기반 CNI이자 네트워킹·보안·관측성 계층으로, ID 기반 L3~L7 정책과 kube-proxy 대체 기능을 제공합니다.