Estou procurando uma definição formal de arquivo que não inclua apenas armazenamento, mas também abstrações como procfs ou / dev / null (ou qualquer arquivo baseado em fusível) que não estejam relacionadas ao armazenamento.
Até agora eu sei que todos os arquivos são abstrações que
- pode ser identificado
- pode ter nomes (geralmente organizados em estruturas hierárquicas)
- pode ser acessado como um fluxo de bytes
- geralmente fornecem permissões e outros metadados (específicos do sistema)
no entanto, não consegui encontrar nenhuma definição formal útil em nenhum livro do SO que li até agora.
operating-systems
os-kernel
filesystems
Giacomo Tesio
fonte
fonte
Respostas:
Segundo a Wikipedia, um arquivo de computador é simplesmente um recurso para armazenar informações. O termo parece ter se originado na era do cartão perfurado, onde um programa de computador estava literalmente armazenado em um arquivo (como em uma caixa usada para armazenar páginas soltas, veja a imagem abaixo). À medida que outras formas de mídia foram introduzidas, como discos, a nomenclatura se seguiu.
Do ponto de vista do * nix, tudo é um arquivo: soquetes, dispositivos, terminais, telas / monitores, arquivos de dados, tubos e assim por diante. O Microsoft Windows, por outro lado, tende a chamar "arquivos" de dados de armazenamento permanente e recursos voláteis, sejam eles quais forem, como pipes nomeados, soquetes, dispositivos raster, etc. Outros sistemas podem ter definições semelhantes em algum lugar entre esses dois extremos.
Infelizmente, como acabei de afirmar, não há uma definição única do que é um arquivo, porque é diferente para pessoas diferentes, exceto que todos tendem a concordar com a definição de linha de base de que um arquivo é um recurso nomeado que armazena dados em mídia permanente (permanente não implica que nunca possa ser modificado, simplesmente que persiste nos ciclos de energia).
( Wikipedia )
fonte
Penso em um arquivo como uma sequência de bytes. Mesmo depois de perder o nome (geralmente causado por uma chamada à rm, que o desassocia), ele ainda existe no disco até que seus pedaços sejam substituídos por outras coisas. Formatos de arquivo são contextos para a leitura de arquivos. Tudo volta ao princípio de que informações são bytes mais contexto.
O pôster anterior está certo de que os dispositivos, embora sejam tratados como arquivos, não são realmente arquivos. Este é um hack muito útil.
Então, minha definição de arquivo: uma sequência de bytes armazenados na memória.
fonte