Em sistemas do tipo UNIX, um arquivo é considerado "sem estrutura" no sentido de que o próprio sistema operacional não impõe nenhuma estrutura ou formato inerente aos dados dentro do arquivo. O sistema operacional simplesmente trata o arquivo como uma sequência de bytes.
Contraste isso com, digamos, um arquivo de banco de dados. Um arquivo de banco de dados possui uma estrutura definida - tabelas, linhas, colunas, tipos de dados - que é compreendida e aplicada pelo Sistema de Gerenciamento de Database (DBMS). O DBMS sabe como interpretar os bytes no arquivo de acordo com este esquema.
Um arquivo sem estrutura no UNIX não tem * essa interpretação predefinida imposta pelo sistema operacional. Cabe ao aplicativo que cria e lê o arquivo para determinar como interpretar a sequência de bytes. É por isso que diferentes programas podem usar o mesmo arquivo de maneiras totalmente diferentes.
Por exemplo:
*
um arquivo de texto: O aplicativo (como um editor de texto) interpreta os bytes como caracteres de acordo com um caractere codificando (como UTF-8 ou ASCII). No entanto, o sistema operacional não sabe que é texto; Ele vê apenas uma sequência de bytes.
*
um arquivo binário (por exemplo, uma imagem ou executável): Os bytes representam dados de pixel, instruções da máquina ou outras informações não textuais. Novamente, o sistema operacional não entende a estrutura interna; O aplicativo apropriado (visualizador de imagem, carregador de programas) faz.
A flexibilidade dos arquivos sem estrutura é um aspecto essencial da filosofia da Unix. Ele permite diversas aplicações e evita vincular formatos de arquivo ao próprio sistema operacional. A interpretação é inteiramente deixada para os aplicativos.