Esta é uma escolha do tipo de API.
Em sistemas antigos, era comum usar dispositivos e IOCTL nesses dispositivos (por exemplo, para criar terminais virtuais). O problema era que ele dependia do uso do número para ter acesso a um serviço específico, portanto não era fácil melhorar / atualizar. Além disso, o mesmo número de solicitação pode ter um significado completamente diferente em outro dispositivo; portanto, ao renomear dispositivos (mais descritivos, sistemas virtuais, etc.), é possível fornecer o comando incorreto (por exemplo, confundir o tipo de dispositivo a ser fornecido). um programa).
Então havia outras alternativas. Algum tempo, novos syscall foram criados, mas isso principalmente para casos genéricos, e também não é ideal para criar muitos novos syscalls. /proc
também se tornou uma interface comum, mas com algum problema porque a interface desse sistema de arquivos (lado do kernel) é a mesma para todos os serviços. A APCI e a rede usaram extensivamente essa interface. Houve algum problema sobre a remoção de módulos enquanto outro programa tinha acesso ao seu arquivo no proc. Agora os módulos (e, portanto, removê-los para liberar memória) não são tanto um problema
Poucas tentativas de usar o soquete de rede foram usadas, mas não tão convenientes para usos únicos.
Portanto, agora é mais fácil criar novos sistemas de arquivos e dar mais liberdade aos drivers / serviços sobre como implementá-los. Há também uma vantagem, apenas cat
e echo
podem ser usados para obter e extrair dados. mais fácil de testar e usar novos recursos.