Para realizar sus funciones, el Berkeley Packet Filter se integró como un intérprete de código máquina dentro de una máquina virtual. Como resultado, el BPF ejecuta unas instrucciones en formato predefinido. Como intérprete, Berkeley Filter lee los archivos de origen, los analiza y ejecuta sus instrucciones sucesivamente. Traduce las instrucciones en código máquina para permitir la ejecución directa.
Berkeley Filter utiliza las llamadas al sistema (SysCalls), que son llamadas a funciones específicas del sistema, listas para ser utilizadas, para hacer peticiones al núcleo del sistema operativo, también llamado núcleo. Este se encarga de comprobar los derechos de acceso antes de confirmar o rechazar la solicitud. Entre las aproximadamente 330 SysCalls de Linux están las siguientes:
- read - Permiso de lectura, con el que se puede leer un archivo
- write - Permiso de escritura, para escribir en un archivo
- open - Permiso para abrir los archivos o dispositivos
- close - Permiso para los archivos o dispositivos
- stat - Se recupera el estado de un archivo
Como el BPF está en constante desarrollo, hoy en día funciona como una máquina universal y virtual directamente en el núcleo del sistema operativo, donde tiene lugar todo el procesamiento y la organización de los datos. Con muchas nuevas características, el filtro se conoce como Extended BPF o por su abreviatura eBPF. Con esto, puede ejecutar cualquier código intermedio (código de bytes) de forma segura y durante el tiempo de ejecución (compilación just in time) directamente en el núcleo operativo. Extended BPF funciona en el núcleo operativo dentro de un entorno de pruebas y por lo tanto está protegido. Este entorno de pruebas, conocido también como sandbox o caja de arena, ayuda a minimizar el riesgo de que el sistema afecte negativamente a la lógica del núcleo operativo.