Os arquivos em /dev
são arquivos de dispositivos, não são arquivos reais. Eles normalmente não têm conteúdo no disco (alguns deles representam discos brutos). Não há nada no arquivo. Se você fizer ls -l /dev
, verá tudo o que existe nesses "arquivos": Um nome, alguns bits especiais, veja o primeiro caractere do modo (não é d
= diretório, -
= arquivo regular, l
= symlink, é c
= character device ou b
= block device), então existem 2 números onde o tamanho dos arquivos deve ser. Estes mapeiam para tabelas no kernel, são números maiores e menores do dispositivo.
Quando um processo lê um dispositivo serial, os dados são transmitidos para o processo, o mesmo que um arquivo é transmitido quando você o lê sequencialmente ou o fluxo de um canal. O sistema operacional não vai lembrar o que chega na porta quando nenhum processo está interessado, isso exigiria uma quantidade enorme (infinita) de armazenamento. Se você quiser, precisa de um processo para registrá-lo.
Quando os dados são enviados, pode ser enviado um byte por vez ou um bloco de vários bytes depende do hardware, e não é uma coisa específica do UNIX.