SISTEMAS OPERACIONAIS Aula 3 – Sistema de Arquivos O que é ? Sistema de arquivos é a forma de organização de dados em algum meio de armazenamento de dados em massa frequentemente feito em discos . Sabendo interpretar o sistema de arquivos de um determinado disco, o sistema operacional pode decodificar os dados armazenados e lê-los ou gravá-los. O que é ? Um sistema de arquivos é um conjunto de estrturas lógicas que permite o sistema operacional controlar o acesso a um dispositivo de armazenamento como disco rígido, pen drive, cd-room, etc. Diferentes sistemas operacionais podem usar diferentes sistemas de arquivos. O que é ? Podemos dividir um disco rígido em várias partes ou partições, onde cada partição é independente das outras, ou seja, cada partição pode ter o seu próprio sistema de arquivo. Isto significa que uma partição do disco não interfere nas outras partições. Podemos, por exemplo, instalar o Linux em uma partição e o Windows em outra partição. O SO gerencia à organização dos arquivos como em uma biblioteca Salva os dados nos espaços vazios do disco, rotulandoos com um FCB (File Control Block, Bloco de Controle de Arquivo) criando uma lista com a posição deste dado, chamada de MFT (Master File Table, Tabela de Arquivos Mestre). Sabendo a posição do arquivo a ser aberto/gravado, O SO solicita a leitura desta, decodifica/codifica e realiza a abertura/gravação do dado. A tabela onde são armazenadas as informações sobre as partições fica no primeiro setor do disco e chama-se MBR (Master Boot Record). O MBR (Master Boot Record) é um arquivo de dados interligado com a BIOS cuja importância é o reconhecimento do sistema de arquivos, como também na inicialização do sistema operacional. MFT Um arquivo possui certos atributos que variam de um sistema operacional para o outro, mas que normalmente são os seguintes: Nome: o nome simbólico do arquivo é a única informação conservada em forma legível pelas pessoas. Identificador: este rótulo único, usualmente um numero, identifica o arquivo dentro do sistema de arquivo; é o nome não legível pelas pessoas. Tipos : esta informação é necessária para aqueles sistemas que suportam diferentes tipos. MFT Proteção: a informação de controlo de acesso determina quem pode ler o arquivo, gravá-lo, executálo e assim por diante. Hora, data e identificação do usuário: estas informações podem ser conservadas em relação a data da criação, ultima modificação e ultima utilização do arquivo. Estes dados podem ser úteis para proteção, segurança e monitoramento de uso do arquivo. MFT Posição: esta informação é um ponteiro para um dispositivo e para a posição do arquivo naquele dispositivo. Tamanho: o tamanho corrente do arquivo e possivelmente o tamanho máximo permitido estão incluídos neste atributo. Tipos de Sistemas de Arquivos Apple Macintosh HFS HFS+ IBM (AIX, OS/2) JFS (AIX Version 3.1 ou superior, OS/2 Warp) HPFS - High Performance File System MS-DOS/Microsoft Windows FAT 16 ou FAT FAT 32 ExFAT NTFS Tipos de Sistemas de Arquivos UNIX (FreeBSD, OpenBSD, Linux, Solaris, Red Hat, Android, etc.) UFS Ext Ext2 Ext3 Ext4 SWAP Reiser HPFS JFS XFS ZFS Tipos de Sistemas de Arquivos FAT Neste sistema existe uma tabela de alocação de arquivos (File Allocation Table) que na verdade e um mapa de utilização do disco. Por sua limitação de espaço, o FAT mapeia os Clusters e não setores, o tamanho do Cluster e definido pelo SO. Partições FAT são limitadas em tamanho para um máximo de 4 Gigabytes (GB) no Windows NT e 2 GB no MS-DOS. De preferência, ao usar unidades ou partições de mais de 200 MB, o sistema de arquivos FAT não deve ser usado. Como o tamanho do volume aumenta, o desempenho do FAT diminui rapidamente. Não é possível definir permissões em arquivos que são partições FAT. HFS - Hierarchical File System é o sistema de arquivos desenvolvido pela Apple. Permiti um maior acesso a unidades de disco rígido foi necessário para um novo sistema de arquivos aumentar o sistema de nomeação, organização e segurança para demandas crescentes do mercado do servidor de rede. O HPFS mantém a organização de diretório do FAT, mas adiciona classificação automática do diretório baseado em nomes de arquivo. NTFS - New Technology File System possui uma estrutura que armazena as localizações de todos os arquivos e diretórios, incluindo os arquivos referentes ao próprio sistema de arquivos denominado MFT. Aceita volumes de até 2 TB; O tamanho do arquivo é limitado apenas pelo tamanho do volume; Aceita nomes de volumes de até 32 caracteres; Oferece suporte a compactação, criptografia e indexação; Permite políticas de segurança e gerenciamento; Se usado em uma mídia removível, ela pode se corromper mais facilmente; Pode ser necessário drivers extra para acesso a plataformas não-Windows; É mais lento que o FAT32, pois pelas diversas diretivas de segurança tanto de acesso quanto de leitura e gravação tornam a partição mais lenta que FAT32 que não possui nenhuma diretiva de segurança ou confiabilidade adequado. EXT2 O sistema de arquivos ext2 é conhecido como "Second Extended FileSystem". Foi desenvolvido para ser mais "eficiente" que o sistema de arquivos "Minix", seu antecessor. O Minix era muito utilizado nas primeiras versões do Linux, e foi utilizado por muitos anos. O sistema de arquivos ext2 não possui journaling e foi substituído pelo ext3. EXT3 O sistema de arquivos ext3 é uma versão do ext2 com suporte a journaling. Portanto, o ext3 tem as mesmas características do ext2, mas com suporte journaling. Essa característica foi uma evolução e tornou o ext3 um sistema de arquivos muito estável e robusto. Como no ext3 só foi adicionado o suporte a journaling, podemos converter um sistema de arquivos ext2 para ext3, adicionado suporte a journaling, e também podemos converter um sistema de arquivos ext3 para ext2, removendo o suporte a journaling. EXT4 Alocação tardia melhora o desempenho e reduz a fragmentação, melhorando a alocação de blocos decisões com base no tamanho do arquivo. Jornal checksumming usa checksums nos logs para melhorar a confiabilidade, já que os logs é um dos arquivos mais utilizados do disco. Suporte para tamanhos maiores de volumes e arquivos Compatibilidade com versões anteriores XFS O sistema de arquivos XFS também possui suporte a journaling. Foi desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte. O XFS é considerado um dos melhores sistemas de arquivos para banco de dados, pois é muito rápido na gravação. XFS utiliza muitos recursos de cache com memória RAM, e para utilizar XFS é recomendado utilizar sistemas que possuem redundância de energia. SWAP SWAP é um espaço reservado para troca de dados com a memória RAM. JFS - (Journaling FileSystem) é um sistema de arquivos desenvolvido pela IBM, disponível em licença open source. Além de possuir journaling, ele permite que as partições do sistema sejam redimensionadas sem que seja necessário desligar o computador. VFAT O sistema de arquivos VFAT é também conhecido como FAT32. O sistema de arquivos VFAT não possui suporte a journaling. É utilizado normalmente para transferir dados entre sistemas Windows e o Linux instalados no mesmo disco, pois pode ser lido e escrito por ambos os sistemas operacionais.