O Linux usa dois anéis, anel 0 é chamado de nível de kernel, anel 3 é chamado de nível de usuário. A conexão do usuário ao kernel é feita (como já foi dito) via syscalls. Entre eles estão as bibliotecas, como podem ser vistas na terra do usuário. Portanto, o acesso de nível mais baixo ao kernel é implementado nas bibliotecas, por motivos de estabilidade, segurança, sincronização, economia de espaço, etc. O driver do kernel fornece interfaces diferentes para a terra do usuário: (ioctl, sysfs, soquetes, dispositivos de caracteres e blocos e assim por diante) Interfaces de espaço do usuário . Portanto, se desejar, você pode implementar seu acesso ao driver do kernel omitindo as bibliotecas ou compilar muito mais facilmente seu binário com bibliotecas vinculadas estáticas.
Um bom ponto de partida é ler as fontes do libusb, elas estão bem documentadas.