No Linux, "Tudo é um arquivo", mas isso não significa que ele seja um "arquivo" real no seu disco rígido, que requer que os IOPs sejam lidos na unidade.
Existem várias maneiras de obter a entrada do mouse no Linux, as mais comuns são envdev e mousedev. Você também pode usar o sistema de engajamento da janela X para ler a entrada do mouse. Para outros dispositivos como teclados você tem keydev para usbcore usb usbcore etc.
Rawinput significa que o jogo / aplicativo lê os dados brutos de entrada do dispositivo, em vez de obter os dados depois que eles são processados pelo sistema operacional. Ao usar configurações de mouse específicas do OS de "entrada processada", como aceleração, velocidade do cursor e outras que podem afetar o comportamento percebido do dispositivo, isso afetará o comportamento do ponteiro dentro do jogo.
Você pode notar isso em jogos / aplicativos do Windows também, alguns jogos podem usar a interface de entrada padrão do sistema operacional, alguns podem usar o DirectX (que era (e é) destinado a unificar som, gráficos e entrada em uma única API) alguns podem acessar o mouse diretamente e lidar com todos os cálculos.
Em geral, tudo depende de quanto trabalho você quer fazer e quanto controle deseja ou precisa da entrada. Ao lidar com entrada bruta, todos os cálculos em relação à posição, aceleração e outros fatores precisam ser feitos dentro do seu aplicativo, se você não quiser lidar com isso, você pode deixar o OS / API que você usa fazer isso e apenas dizer a mudança relativa na posição.