제
1
장
소개
24
을 줄인다. 이러한 구조의 한 가지 흥미로운 측면은 시스템을 재시작하지 않고도
BPF
프로그
램을 커널에 올릴 수 있다는 것이다. 필요할 때 언제라도 적재할 수 있으며, 또한 적절한 초기
화 스크립트를 이용해서 시스템 시작 시
BPF
프로그램들을 자동으로 적재하는 것도 가능하다.
주어진
BPF
프로그램을 실행하려면 커널은 먼저 그 프로그램을 붙일 실행 지점 (
execution
point
)을 알아야 한다. 커널에
BPF
프로그램을 붙일 수 있는 지점은 여러 개이며 커널이 갱신
되면서 계속 늘어나고 있다. 부착 가능한 실행 지점은
BPF
프로그램의 유형 (종류 )에 따라 결
정된다.
BPF
프로그램의 여러 유형은 다음 장에서 논의한다. 실행 지점이 결정되면 커널은 그
프로그램이 커널로부터 자료를 받는 데 사용할 특별한 보조 함수들을 활성화한다. 이에 의해
실행 지점과
BPF
프로그램이 더욱 단단히 묶이게 된다.
BPF
구조의 마지막 구성요소는 커널과 사용자 공간이 자료를 공유하는 데 사용하는
BPF
맵
map
이다. 맵은 제
3
장에서 논의한다.
BPF
맵은 자료 공유를 위한 양방향 자료 구조이다. 즉,
커널과 사용자 공간 모두 이 맵을 읽고 쓸 수 있다.
BPF
에는 여러 자료 구조가 쓰이는데, 단순
한 배열에서부터 해시 맵, 그리고
BPF
프로그램 전체를 저장할 수 있는 특화된 맵 등 다양하다.
이 책 전반에서
BPF
구조의 모든 구성요소를 좀 더 자세히 살펴볼 것이다. 또한
BPF
의 확
장성과 자료 공유 능력의 장점을 ...