Sistema de Arquivos ISO 9660
Autor: Hermano | Publicado: 2013-11-21T08:25:00-08:00


O padrão mais comum entre os sistemas de arquivos para CD-ROMs
foi adotado como um Padrão Internacional em 1988 sob o nome ISO 9660
[1]. Por este motivo, junto ao sistema FESO, foi
desenvolvido um programa servidor capaz de suportar este sistema de arquivos.



Os CD-ROMs possuem blocos
lógicos de 2048 bytes cada. Esses
blocos são indexados, sendo acessados através de um número. Os primeiros blocos
de um CD são reservados para algumas estruturas utilizadas pelo sistema de
arquivos, para que seja possível identificar a posição na qual cada arquivo
está.



Ao ser iniciado, o servidor lê o bloco 16 do disco, onde está
localizado o descritor de volume primário. Este descritor de volume primário é
uma estrutura que armazena algumas informações sobre o volume. O registro do
diretório raiz, que é a estrutura que armazena as informações necessárias para
se encontrar o diretório raiz do volume, se encontra também dentro do descritor
de volume primário.



Existe ainda, uma outra estrutura que é referenciada pelo
descritor de volume primário, chamada de path
table. A path table é uma
estrutura que fornece uma maneira alternativa de realizar a leitura dos dados
em CDROMs com sistemas de arquivos ISO 9660. Ela contém uma lista com todos os
diretórios existentes no volume, como é possível ver na figura. Entretanto,
está estrutura não é utilizada pelo servidor, que utiliza apenas os registros
de diretório.







&nbsp; &nbsp; &nbsp;&nbsp;



Os diretórios no sistema de arquivos ISO 9660 devem ser
armazenados como um arquivo contendo um conjunto de registros que servem para
identificar um arquivo ou outro diretório (ECMA, 1987). Isto é, cada diretório
é tratado como um arquivo cujo conteúdo é uma lista de registros que
identificam outros arquivos e diretórios dentro do volume. 



Os arquivos no sistema ISO 9660 (e isto inclui os diretórios)
ficam armazenados em blocos lógicos contínuos. Por este motivo, para ler um
arquivo por completo, é necessário apenas conhecer seu bloco inicial e seu
tamanho. Com estas duas informações, basta ler um conjunto de blocos lógicos a
partir daquele que foi identificado como o inicial que seja grande o suficiente
para armazenar todo o arquivo. É desta forma que, não só os dados dos arquivos
convencionais são lidos, como também os dados de arquivos que representam
diretórios. 



O servidor realiza uma varredura por todo o sistema de arquivos,
começando pelo diretório raiz. O registro do diretório raiz é lido, sua posição
no disco é encontrada e seus dados carregados. Esses dados contém uma lista de
registros de diretório, que representam todos os arquivos ou diretórios
contidos dentro do diretório raiz. Todos os registros que representam
diretórios são adicionados a uma fila, que é utilizada em uma busca em largura.
Enquanto essa fila não estiver vazia, o primeiro registro dela é carregado e
analisado.&nbsp;



Caso outros registros que representem diretórios sejam encontrados,
estes são também adicionados na lista.&nbsp;&nbsp; 


O servidor se encarrega
de criar um nó no VFS do sistema FESO para cada arquivo e diretório encontrado
no CD-ROM. Desta forma, qualquer processo pode verificar, utilizando as
chamadas do próprio VFS, quais arquivos estão contidos dentro do CD-ROM. Além
disso, o servidor armazena uma tabela com o identificador de cada arquivo no
VFS e sua posição e tamanho dentro do CD-ROM, para que seja possível carregá-lo
na memória quando solicitado por outros processos.&nbsp;



[1]&nbsp;TANEBAUM, Andrew S. Sistemas Operacionais Modernos. 3. ed. São Paulo: Pearson Education, 2010