
43
제
3
장
BPF
맵
어떤 프로그램에 특정한 메시지
message
를 전달함으로써 그 프로그램이 특정한 방식으로 행동하
게 만드는 것은 소프트웨어 공학에서 널리 쓰이는 기법이다. 한 프로그램은 다른 프로그램에
메시지를 보냄으로써 그 프로그램의 행동 방식을 수정할 수 있다. 메시지는 또한 다수의 프로
그램이 서로 정보를 교환하는 수단으로도 쓰인다.
BPF
의 대단히 매력적인 측면 중 하나는 커
널 안에서 실행되는 코드와 그 코드를 커널에 적재한 프로그램이 실행 시점에서 메시지 전달을
통해서 서로 소통할 수 있다는 점이다.
이번 장은
BPF
프로그램과 사용자 공간 프로그램이 대화를 나누는 방법을 다룬다. 커널과
사용자 공간 사이의 의사소통 통로가 되는 다양한 통신 채널들을 살펴보고, 각 채널이 정보를
저장하는 방식도 설명한다. 또한 그런 채널들의 여러 용법과 프로그램이 초기화되어도 채널 안
의 자료가 유지되게 하는 방법도 제시한다.
BPF
맵은 커널 안에 존재하는 키-값 저장소이다.
BPF
맵은 그 위치를 아는 모든
BPF
프
로그램이 접근할 수 있다. 사용자 공간에서 실행되는 프로그램도 특정 파일 서술자를 이용해서
BPF
맵에 접근할 수 있다.
BPF
맵에는 그 어떤 형식의 자료도 저장할 수 있다. 단, 저장 전에
자료의 크기를 명시할 수 있어야 한다. 커널은 ...