O termo sistema de arquivos (abreviado como " FS " para Sistema de arquivos , às vezes sistema de arquivos em inglês) designa de forma ambígua:
De um modo geral, um sistema de arquivos ou sistema de gerenciamento de arquivos (FMS) é uma forma de armazenar informações e organizá-las em arquivos no que é chamado, na engenharia de software , de memórias secundárias (para hardware de computador , é memória de massa , como um disco rígido , um disco SSD , um CD-ROM , uma chave USB , um disquete , etc.). Esse gerenciamento de arquivos permite processar e armazenar grandes quantidades de dados, bem como compartilhá-los entre vários programas de computador . Oferece ao usuário uma visão abstrata de seus dados e permite localizá-los a partir de um caminho.
Existem outras maneiras de organizar dados , por exemplo, bancos de dados (especialmente banco de dados relacional ) e arquivos indexados .
O cartão perfurado desapareceu gradativamente a partir de 1970 quando surgiram unidades de entrada-saída com fita magnética e disquetes flexíveis de formato "8 polegadas" e memórias de massa mais eficientes.
Em 1964, o sistema DECtape da empresa DEC tornou possível o registro de dados em fitas magnéticas ao invés de cartões perfurados .
Em 1968, GEORGE 3 foi equipado com um armazenamento de arquivos ( armazenamento de arquivos ) gravando os arquivos em uma estrutura de árvore na ideia de Multics . Cada usuário do sistema tinha uma pasta de usuário ( home ) com tantas subpastas quantas fossem necessárias. As pastas do usuário podem ser acessadas diretamente ou por meio de um caminho, como :: MASTER.USERS.COMPSCI, JOHN . Um sistema de listas de controle de acesso foi utilizado para segurança permitindo configurar o acesso por usuário e por grupo. O sistema de arquivos foi organizado em dois níveis: um em disco e outro em fita magnética.
Em 1972, o ODS-1 era um sistema de arquivos simples (usado pelo RSX-11 OS). Em seguida, ele será substituído pelo ODS-2 e pelo ODS-5.
Em 1974, surgiu o sistema de arquivos CP / M. Este sistema operacional salva arquivos em disquetes em uma organização lógica específica (que não foi assumida pelo MS-DOS) e pode encher os disquetes até que estejam completamente cheios.
O CP / M também pode gerenciar discos rígidos (na realidade, uma vez que o BIOS é "aberto" e claramente descrito na documentação que a Digital Research forneceu com alguns de seus softwares, é portanto possível adaptar qualquer sistema CP / M particular a qualquer disponível memória de massa - e periféricos disponíveis).
Cada arquivo possui um nome e uma extensão (mais precisamente, a sintaxe é: <nome do arquivo (máximo de 8 bytes)>. <Extensão (máximo de 3 bytes)>).
Em 1978, apareceu o primeiro sistema de arquivos da Apple.
Em 1980, o sistema FAT12 apareceu. O sistema FAT16 em 1984.
O bloco de parâmetros BIOS (BPB) é introduzido com PC DOS 2.0. Esta versão também apresenta bits somente leitura, arquivo , rótulo de volume e atributos de pasta para priorização de pastas.
Em 1988, a ISO 9660 (um padrão ISO) definiu o sistema de arquivos usado em CD-ROMs.
Em 1993, surgiu o sistema NTFS Versão 1.0, usado pelo Windows.
Em 1994 e 1995, os sistemas de arquivos para CD-ROMs foram concluídos: Rock Ridge e Joliet .
Sistema de arquivo | Inventor | Ano de introdução |
Sistema operacional inicial | Licença |
---|---|---|---|---|
DECtape | DEZ | 1964 | Monitor PDP-6 | |
Nível D | DEZ | 1968 | TOPS-10 | |
George3 | ICT (mais tarde ICL) | 1968 | George 3 | |
ODS-1 | DEZ | 1972 | RSX-11 | |
Sistema de arquivos RT-11 | DEZ | 1973 | RT-11 | |
DOS ( GEC ) | GEC | 1973 | Sistema operacional central | |
Sistema de arquivos CP / M | Gary Kildall | 1974 | CP / M | |
V6FS | Bell Labs | 1975 | Unix versão 6 | |
OS4000 | GEC | 1977 | OS4000 | |
FAT (8 bits) | Marc McDonald , Microsoft | 1977 | Disco autônomo Microsoft BASIC-80 | |
DOS 3.x | computador Apple | 1978 | Apple DOS | |
Pascal | computador Apple | 1978 | Maçã pascal | |
CBM DOS | Comodoro | 1978 | BASIC Microsoft (para CBM PET) | |
V7FS | Bell Labs | 1979 | Versão 7 Unix | |
ODS-2 | DEZ | 1979 | OpenVMS | |
FAT12 | Tim Paterson , Seattle Computer Products | 1980 | QDOS , 86-DOS | |
AFS | Universidade Carnegie Mellon | 1982 | Multiplataforma MultoOS | |
DFS | Acorn Computers Ltd | 1982 | Bolota BBC Micro MOS | |
ADFS | Acorn Computers Ltd | 1983 | Acorn Electron (mais tarde Arthur RISC OS ) | |
FFS | Kirk mckusick | 1983 | 4.2BSD | |
ProDOS | computador Apple | 1983 | ProDOS 8 | |
MFS | computador Apple | 1984 | Mac OS | |
FAT16 | Microsoft , IBM | 1984 | PC DOS 3.0 / MS-DOS 3.0 | |
Formato de fita Elektronika BK | NPO "Centro científico" (agora Sitronics ) | 1985 | Vilnius Basic , programa monitor BK | |
HFS | computador Apple | 1985 | Mac OS | |
Amiga OFS | Metacomco para Commodore | 1985 | AmigaOS | |
High Sierra | Ecma International | 1985 | MS-DOS , Mac OS | |
NWFS | Novell | 1985 | NetWare 286 | |
FAT16B | Compaq | 1987 | Compaq MS-DOS 3.31, DR DOS 3.31 | |
MINIX V1 FS | Andrew S. Tanenbaum | 1987 | MINIX 1.0 | |
Amiga FFS | Comodoro | 1988 | AmigaOS 1.3 | |
HPFS | IBM e Microsoft | 1988 | OS / 2 | |
ISO 9660: 1988 | Ecma International , Microsoft | 1988 | MS-DOS , Mac OS e AmigaOS | |
JFS1 | IBM | 1990 | AIX | |
VxFS | VERITAS (agora Symantec ) | 1991 | desenvolvido para Unix System Laboratories , HP-UX | |
ext | Cartão Remy | 1992 | Linux | |
WAFL | NetApp | 1992 | Dados ONTAP | |
MINIX V2 FS | Andrew S. Tanenbaum | 1992 | MINIX 1.6 e 2.0 | |
AdvFS | DEZ | 1993 | Unix Digital | |
NTFS Versão 1.0 | Microsoft , Tom Miller , Gary Kimura | 1993 | Windows NT 3.1 | Proprietário |
LFS | Margo Seltzer | 1993 | Sprite de Berkeley | |
ext2 | Cartão Remy | 1993 | Linux , Hurd | |
UFS1 | Kirk mckusick | 1994 | 4.4BSD | |
XFS | SGI | 1994 | IRIX | |
HFS (sistema de arquivos hierárquico) | IBM | 1994 | MVS / ESA (agora z / OS ) | |
Rock Ridge | Young Minds Inc. | 1994 | Linux , Mac OS , AmigaOS e FreeBSD | |
Joliet ("CDFS") | Microsoft | 1995 | Microsoft Windows , Linux , Mac OS e FreeBSD | |
PFS | Michiel Pelt | 1996 | AmigaOS | |
Romeo | Adaptec | 1996 | Microsoft Windows | |
UDF | ISO / ECMA / OSTA | 1995 | - | |
FAT32 | Microsoft | 1996 | Windows 95b | |
QFS | LSC Inc, Sun Microsystems | 1996 | Solaris | |
GPFS | IBM | 1996 | AIX , Linux , Windows | |
Be File System | Be Inc. , D. Giampaolo , C. Meurillon | 1996 | BeOS , HaikuOS | |
HFS Plus | computador Apple | 1998 | Mac OS 8.1 | |
NSS | Novell | 1998 | NetWare 5 | |
PolyServe File System (PSFS) | PolyServe | 1998 | Windows , Linux | |
ODS-5 | DEZ | 1998 | OpenVMS 7.2 | |
SFS | John Hendrikx | 1998 | AmigaOS , AROS , MorphOS | |
ext3 | Stephen tweedie | 1999 | Linux | |
ISO 9660: 1999 | Ecma International , Microsoft | 1999 | Microsoft Windows , Linux , Mac OS X , FreeBSD e AmigaOS | |
JFS | IBM | 1999 | Servidor OS / 2 Warp para e-business | |
GFS | Sistina ( Red Hat ) | 2000 | Linux | |
Melio FS | Sanbolic | 2001 | janelas | |
NTFS Versão 3.1 | Microsoft | 2001 | Windows XP | Proprietário |
ReiserFS | Namesys | 2001 | Linux | |
zFS | IBM | 2001 | z / OS (backport para OS / 390 ) | |
FATX | Microsoft | 2002 | Xbox | |
UFS2 | Kirk mckusick | 2002 | FreeBSD 5.0 | |
Lustre | Cluster File Systems (mais tarde Oracle Corporation ) | 2002 | Linux | |
OCFS | Oracle Corporation | 2002 | Linux | |
VMFS2 | VMware | 2002 | VMware ESX Server 2.0 | |
ext3cow | Zachary Peterson | 2003 | Linux | |
Fóssil | Bell Labs | 2003 | Plano 9 do Bell Labs 4 | |
Sistema de arquivos do Google | 2003 | Linux | ||
PramFS | MontaVista | 2003 | Linux | |
Reliance | Datalight | 2003 | Windows CE , VxWorks , portas personalizadas | |
VxCFS | VERITAS (agora Symantec ) | 2004 | AIX , HP-UX , Solaris , Linux | |
ZFS | Sun Microsystems | 2004 | Solaris | CDDL |
Reiser4 | Namesys | 2004 | Linux | |
Sistema de arquivos não volátil | Palm, Inc. | 2004 | Palm OS Garnet | |
MINIX V3 FS | Andrew S. Tanenbaum | 2005 | MINIX 3 | |
OCFS2 | Oracle Corporation | 2005 | Linux | |
NILFS | NTT | 2005 | Linux | |
VMFS3 | VMware | 2005 | VMware ESX Server 3.0 | |
GFS2 | chapéu vermelho | 2006 | Linux | |
ext4 | Vários | 2006 | Linux | |
exFAT | Microsoft | 2006, 2009 | Windows CE 6.0 , Windows XP SP3 , Windows Vista SP1 | Proprietário |
TexFAT / TFAT | Microsoft | 2006 | Windows CE 6.0 | |
Btrfs | Oracle Corporation | 2007 | Linux | GLP |
Ceph | Sage Weil , Inktank Storage , Red Hat | 2007, 2012 | Linux | |
WBFS | kwiirk e Waninkoko (homebrew Wii) | 2008 | Wii | |
MARTELO | Matthew dillon | 2008 | DragonFly BSD | |
Tux3 | Vários | 2008 | Linux | |
UBIFS | Nokia com a ajuda da Universidade de Szeged | 2008 | Linux | |
Oracle ACFS | Oracle Corporation | 2009 | Apenas Linux - Red Hat Enterprise Linux 5 e Oracle Enterprise Linux 5 | |
Reliance Nitro | Datalight | 2009 | Windows CE , Windows Mobile , VxWorks , Linux , portas personalizadas | |
LTFS | IBM | 2010 | Linux , Mac OS X , Microsoft Windows planejado , | LGPL |
IlesfayFS | Grupo de Tecnologia Ilesfay | 2011 | Microsoft Windows , Red Hat Enterprise Linux planejado | |
VMFS5 | VMware | 2011 | VMware ESXi 5.0tux 3 stats | |
ReFS | Microsoft | 2012, 2013 | Windows Server 2012 | |
Lanyard Filesystem | Dan Luedtke | 2012 | Linux | |
F2FS | Samsung | 2012 | Linux | GPLv2 |
APFS | maçã | 2016 | Mac OS | |
Sistema de arquivo | O Criador | Ano de introdução | Sistema operacional inicial | Licença |
O volume de dados processados por aplicativos de computador geralmente atinge várias centenas de gigabytes e chega a vários terabytes para certas aplicações industriais. Esses volumes de dados não podem ser armazenados na memória principal . Além disso, o armazenamento persistente de longo prazo, permitindo que os dados processados ou processados sejam salvos para uso futuro, também é necessário. O princípio utilizado para responder a este problema consiste em armazenar esses dados em memórias secundárias na forma de arquivos, ou seja, sequências de blocos (a menor unidade que o dispositivo de armazenamento é capaz de gerenciar). O conteúdo desses blocos, uma sequência simples de dados binários , pode ser interpretado de acordo com o formato do arquivo como caracteres, números inteiros ou de ponto flutuante, códigos de operação de máquina, endereços de memória, etc. A troca entre os dois tipos de memória é então feita por transferência em bloco.
O objetivo do sistema de arquivos é permitir o acesso ao conteúdo dos arquivos armazenados (abrir o arquivo, salvá-lo, copiá-lo ou movê-lo para um segundo local ou excluí-lo) de seu caminho, formado por um nome precedido por uma lista de diretórios aninhados.
Para o usuário, um sistema de arquivos é visto como uma estrutura de árvore: os arquivos são agrupados em diretórios (um conceito usado pela maioria dos sistemas operacionais). Esses diretórios contêm arquivos ou outros diretórios recursivamente. Portanto, há um diretório raiz e subdiretórios. Essa organização gera uma hierarquia de diretórios e arquivos organizados em uma árvore.
Existem diferentes métodos para associar um nome de arquivo a seu conteúdo. No caso do sistema de arquivos FAT , um antigo sistema de arquivos MS-DOS e Windows ainda amplamente utilizado em mídias removíveis, como drives USB, cada diretório contém uma tabela que associa os nomes dos arquivos a seus tamanhos e um índice apontando para a tabela de alocação de arquivos, uma área reservada do disco indicando para cada bloco de dados o índice do próximo bloco do mesmo arquivo.
No caso de sistemas de arquivos Unix (ou Linux / Minix ), os arquivos e diretórios são identificados por um número exclusivo, o número do inode . Este número permite o acesso a uma estrutura de dados ( inode ) agrupando todas as informações sobre um arquivo exceto o nome, em particular a proteção de acesso para leitura, escrita ou listas de datas, bem como os meios de 'encontrar o conteúdo. O nome é armazenado no diretório associado a um número de inode. Essa organização tem a vantagem de que um único arquivo no disco pode ser conhecido pelo sistema por vários nomes.
A organização do sistema de arquivos NTFS é ainda mais complexa, funcionando como um banco de dados.
O nome de um arquivo é uma sequência de caracteres, geralmente de tamanho limitado. Hoje, quase todos os caracteres no diretório Unicode são geralmente utilizáveis, mas alguns caracteres específicos que têm significado para o sistema operacional podem ser proibidos ou obsoletos. É o caso, por exemplo, dos caracteres ":", "/" ou "\" no Windows.
Os sistemas de arquivos Unix usam nomes de arquivos com base em uma sequência de bytes. As camadas inferiores de software (kernel, sistemas de arquivos) manipulam nomes de arquivos sem conhecer o conjunto de caracteres usado. No nível do usuário, o conjunto de caracteres usado geralmente não é fornecido pelo sistema de arquivos, mas depende da localidade do usuário. Em um contexto onde a interoperabilidade em um nível global é desejada, a compatibilidade Unicode é desejada e, portanto, o UTF-8 é cada vez mais usado, em particular em distribuições Linux. Os sistemas mais antigos usavam sistemas de codificação regional que podem corromper nomes de arquivos quando os usuários têm configurações de localidade diferentes. Em sistemas modernos, o uso de nomes de arquivos com nomes diferentes de Unicode é evitado para reduzir os problemas de interoperabilidade com sistemas Unicode.
NTFS , Virtual FAT e Joliet , ReFS usam o conjunto de caracteres UTF-16 para nomes de arquivo.
No Windows e em ambientes gráficos, o nome de um arquivo geralmente possui um sufixo (extensão) separado por um ponto que depende do conteúdo do arquivo: .txt para texto, por exemplo. Esta extensão dependerá da escolha dos aplicativos que suportam este arquivo. Porém, em Linux / Unix, em sistemas de linha de comando e em linguagens de programação, a extensão é apenas parte do nome do arquivo, seu formato é detectado pelo tipo MIME escrito de forma transparente no cabeçalho dos arquivos.
Cada arquivo é descrito por metadados (mantidos em inode no Unix), enquanto o conteúdo do arquivo é gravado em um ou mais blocos da mídia de armazenamento, dependendo do tamanho do arquivo.
Os metadados mais comuns no UNIX são:
Na maioria dos sistemas Unix, o comando stat exibe todo o conteúdo do inode .
O sistema de gerenciamento de arquivos executa várias funções:
A organização física subjacente do meio usado (blocos, linear) e os mecanismos de entrada / saída de baixo nível são mascarados. O usuário pode, portanto, organizar seus dados permanentes, distribuindo-os em diferentes arquivos. O conteúdo dos arquivos é determinado pelo formato , que depende do aplicativo utilizado.
Além dessa organização abstrata, os sistemas de arquivos podem incluir compactação ou criptografia automática de dados, gerenciamento mais ou menos refinado de direitos de acesso a arquivos e registro de gravação (para maior robustez, no caso de uma falha). Do sistema). Além disso, alguns sistemas de arquivos podem abranger uma rede inteira, como NFS. Alguns desses sistemas de arquivos de rede podem ser distribuídos ou distribuídos, como PVFS2.
A escolha do sistema de gerenciamento de arquivos é baseada principalmente no sistema operacional. Normalmente, os sistemas operacionais mais novos suportam um grande número de sistemas de arquivos.
O MS-DOS (e compatível) e as versões anteriores do Windows 95 usavam os sistemas de arquivos FAT16 e FAT12 (para mídia com menos de 16 MB ). A partir do Windows 95 OSR2, a escolha entre os sistemas de arquivos começou a aumentar. Tanto o FAT16 quanto o FAT32 podiam ser usados e, a partir de um determinado tamanho de partição, a escolha do sistema FAT32 era então mais criteriosa.
Nas primeiras versões do Windows NT (NT3.x e NT4), existe a opção entre o sistema FAT16 e NTFS . Este sistema operacional não oferece suporte a FAT32 . Geralmente, o NTFS é recomendado porque fornece maior segurança e melhor desempenho em comparação com o FAT . Ao contrário das versões anteriores do Windows NT, o Windows NT5 ( Windows 2000 ) aceita partições do tipo FAT16 , FAT32 e NTFS . Portanto, o sistema de arquivos mais recente (NTFS 5) é recomendado, pois oferece mais funcionalidades do que os sistemas FAT .
O Vista SP1 oferece a formatação em exFAT que é uma grande evolução do FAT, propondo uma melhor confiabilidade, um gerenciamento "real" de nomes longos, e do ACL . O Windows CE 6 (o futuro Windows Mobile 7) também gerencia esse novo FS. O objetivo da Microsoft é substituir o FAT, que é usado principalmente em mídias removíveis, como cartões de memória.
O mundo Unix (Unix, Linux, BSD, Mac OS X) suporta um grande número de sistemas de arquivos. Isto se deve ao fato de que apesar do número, os sistemas suportados geralmente seguem padrões e em particular POSIX .
Os sistemas de arquivos registrados gravam as alterações em um diário antes de fazê-las nos próprios arquivos. Este mecanismo proporciona maior confiabilidade, ao permitir que modificações "em andamento" sejam recuperadas em caso de desligamento prematuro (corte de energia, pane no sistema, desconexão de um disco externo, etc.).
Os sistemas de arquivos de instantâneo ou, em francês, instantâneos , fornecem a capacidade de registrar o estado do sistema de arquivos em um determinado momento.
Esses sistemas de arquivos não se destinam a fornecer acesso aos arquivos reais. Apresentam, de facto, sob a aparência de uma hierarquia clássica de ficheiros e diretórios, informações de natureza diversa (sobre o estado do computador, periféricos, ou permissão de acesso a bases de dados). Essas são, portanto, interfaces específicas para determinados softwares, geralmente o sistema operacional.