O nucleo do sistema possui um suporte basico a sistemas de arquivos externos ao kernel, atraves de uma abstracao chamada de sistema de arquivos virtual ou VFS (virtual file system). A ideia principal do VFS e abstrair a parte comum aos diferentes sistemas de arquivo e colocar o codigo em uma camada separada que chama o sistema de arquivos subjacente para fazer o gerenciamento dos dados [1].O sistema de arquivos virtual permite que arquivos sejamcarregados na memoria e acessados de forma uniforme, independente de como osdados estao estruturados nos sistemas de arquivos externos. Diferentes drivers para sistemas de arquivos podemcriar pontos de montagem em uma hierarquia de diretorios que e comum a todos.Do ponto de vista do usuario, existe apenas uma hierarquia de diretorios emborana pratica diferentes componentes de softwaretenham que trabalhar em conjunto para possibilitar o acesso aos dados.Estrutura e representacao dos ArquivosO sistema FESO trata os arquivos como apenas um conjunto de bytes, nao atribuindo nenhum significadoem especial a eles. Cabe ao criador do arquivo designar o significado de cada byte, em cada posicao do mesmo. Istopermite uma grande flexibilidade por parte dos programas, que podem fazer usodesta abstracao da maneira que for mais conveniente.Cada arquivo do sistema esta em uma mesma estrutura hierarquica,formada por arquivos e diretorios, como e possivel ver na figura abaixo. Osdiretorios sao arquivos especiais, que agrupam um conjunto de arquivos e outrosdiretorios, e formam a estrutura do sistema de arquivos.A estrutura comeca a partir do diretorio raiz (representado pelocaractere '/'), que possui varios outros diretorios. Alguns deles saodiretorios locais, e estao armazenados apenas na memoria. Outros sao arquivosexternos, que ficam em dispositivos de armazenamentos, e sao carregados para amemoria apenas quando preciso. Cada arquivo ou diretorio e tratado como um no no sistema dearquivos. Para cada no existe um conjunto de informacoes que e mantida pelo SO,tais como: o tipo do no (arquivo comum, diretorio), o nome, o tamanho, seulocal (memoria ou dispositivo de armazenamento), e uma lista clusters com os dados armazenados. Essas estruturas ficam na memoria, em uma arvore balanceada. Elassao ordenadas pelo descritor do no ao qual representam. O descritor e um numero sequencial utilizadona identificacao de cada um dos nos. Tanto nos de arquivos como de diretoriospossuem um descritor, e ele e utilizado tambem pelos programas para realizaroperacoes sobre esses nos.A figura abaixo mostra como os arquivos ficam estruturados namemoria quando carregados. Os diretorios do sistema de arquivo virtual do FESOpossuem apenas uma unidade de armazenamento (cluster) de 512 bytes.Este cluster contem um vetor denumeros inteiros de 4 bytes. Aprimeira posicao desse vetor contem um inteiro N, que armazena o numero deoutros nos contidos naquele diretorio. As N posicoes seguintes armazenam oidentificador de outros nos dentro do diretorio. Como cabem apenas 128 valoresinteiros em um cluster de 512 bytes, e como o primeiro e utilizadopara indicar a quantidade de nos, os diretorios estao limitados a umaquantidade maxima de 127 nos filhos. Apartir da leitura do cluster unicocontido nos nos que representam diretorios, e possivel identificar quais outrosnos o diretorio contem. Os arquivos comuns, por sua vez, possuem uma quantidadearbitraria de clusters