A razão é que o sistema operacional precisa de memória para gerenciar cada arquivo aberto, e a memória é um recurso limitado - especialmente em sistemas embarcados.
Como usuário root, você pode alterar o número máximo de arquivos abertos por processo (via ulimit -n
) e por sistema (por exemplo, echo 800000 > /proc/sys/fs/file-max
).