본문 바로가기

[2022년 파트 - 정준영 개발자] redBPF

rhdxmr 게시글 작성 시각 2022-03-25 17:19:44 게시글 조회수 771
파트 프런티어
redBPF
정준영
BPF를 활용할 수 있게 해주는 rust 라이브러리
2022 년
기타

- 개발자 주요 경력 

2012.08~2017.04 네이버 검색
2017.04~2020.08 11번가 검색
2020.08~ 카카오엔터프라이즈 AI

 

- 개발자 전문 분야

리눅스 시스템프로그래밍, 분산처리, 대용량 데이터 처리, 시스템 처리량/지연시간 개선

 

- 활동 커뮤니티

github

 

- 활동 프로젝트 분야

BPF, Rust

 

- 프로젝트 목표

A. BPF 최신 기술 팔로우업 (BTF, CO-RE, BPF iterator, ...)
B. BPF 사용자가 BPF를 쉽게 활용할 수 있도록 지원

C. RedBPF가 지원하는 BPF 기능 커버리지 확대

 

- 프로젝트 특징

커널공간에서 동작하는 BPF 프로그램을 rust로 작성할 수 있게 해줍니다. rust
코드를 BPF 바이트코드로 직접 컴파일할 수 없기 때문에, 일단 rust 코드를 LLVM
bitcode로 만들고, bitcode를 LLVM 최적화 로직을 이용하여 loop unroll, function
inline, panic을 exit 명령으로 치환하는 등의 후처리를 해줍니다. 그러고 나서 BPF
바이트코드를 컴파일하여 ELF relocatable file 포맷으로 만듭니다. 참고로 한달
전에 BPF 타겟이 rust 컴파일러에 머지되었고(아직 stable rust에 포함 전), 이것은
bpf linker에게 비트코드를 전달함으로써 BPF 프로그램을 만드는 일을 합니다. 이
bpf linker는 redBPF에서 직접적으로 비롯된 프로그램입니다.

 

러스트다운 코드를 작성할 수 있게 해주는 것이 목표이기 때문에, C로 된 libbpf
라이브러리가 제공하는 인터페이스를 따르지 않으며, 독자적인 API를 제공합니다.
redBPF가 libbpf를 의존하긴 하지만, bpf 시스템콜을 래핑한 기본적인 기능 정도만
활용합니다.

 

BPF는 활발하게 개발되고 있는 커널 서브시스템이라서, 유저스페이스 단의
라이브러리도 계속 최신 기술을 팔로우업 해주어야 합니다. redBPF도 꾸준히
새 기능이 업데이트되고 있습니다.

 

맨 위로
맨 위로