파트 프런티어
redBPF
정준영
BPF를 활용할 수 있게 해주는 rust 라이브러리
2021 년
기타

- 개발자 주요경력
2012.08~2017.04 네이버 검색
2017.04~2020.08 11번가 검색
2020.08~ 카카오엔터프라이즈 AI

 

- 개발자 전문분야

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

 

- 활동 커뮤니티

github

 

- 활동 프로젝트 분야

BPF

 

- 프로젝트 개요

redBPF는 리눅스의 BPF 기술을 rust 언어로 활용할 수 있게 해주는
라이브러리입니다. BPF는 네트워킹, 트레이싱, 보안 등 분야에서 활용 가치가
있습니다. 그런데 비커널 개발자들이 이 기술을 제대로 활용하기 위해서는
유저스페이스의 라이브러리가 필수입니다. redBPF는 단순히 C로 제공되는 BPF
인터페이스를 래핑한 것을 넘어서, 러스트스러운 코드로 BPF 프로그램 및 이와
상호작용하는 사용자프로그램을 작성할 수 있게 해줍니다.

 

- 프로젝트 목표

BPF 최신 기술 팔로우업 (BTF, CO-RE, BPF iterator, ...)
BPF 사용자가 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도 꾸준히
새 기능이 업데이트되고 있습니다.
 

전문개발자 프로젝트 게시물 리스트 표
번호 제목 분야 조회수 작성
공지 오픈프론티어 개발 프로젝트 연재 601 2016-08-06
228 [2021년 파트 - 변정훈 개발자] mocha 기타 115 2021-07-22
227 [2021년 파트 - 이은선 개발자] uftrace 기타 129 2021-07-20
226 [2021년 파트 - 박병철 개발자] Linux kernel 기타 136 2021-07-20
225 [2021년 파트 - 김진현 개발자] PyTorch 및 관련 저장소 인공지능(AI) 130 2021-07-20
224 [2021년 파트 - 신준수 개발자] KOMORANPy 인공지능(AI) 113 2021-07-19
223 [2021년 파트 - 강주희 개발자] Kubernetes/website 클라우드 132 2021-07-19
222 [2021년 파트 - 송욱 개발자] NNStreamer 인공지능(AI) 128 2021-07-19
221 [2021년 파트 - 이경일개발자] Project illuminati 기타 121 2021-07-18
220 [2021년 파트 - 정준영 개발자] redBPF 기타 127 2021-07-18
219 [2021년 파트 - 김홍규 개발자] uftrace 기타 124 2021-07-17
맨 위로
맨 위로