Instituto de Computação - UNICAMP

MC504/MC514 - Sistemas Operacionais

Virtual File System

Como implementar um novo sistema de arquivos no Linux

Islene Calciolari Garcia

Sistemas de arquivos de brinquedo

LWNFS

Texto didático, primeira versão escrita em 2002. O sistema de arquivos proposto é bastante simples e contém apenas 4 arquivos que funcionam como contadores do número de acessos.

Leia o seguinte trecho retirado deste site:

Linus and numerous other kernel developers dislike the ioctl() system call, seeing it as an uncontrolled way of adding new system calls to the kernel. Putting new files into /proc is also discouraged, since that area is seen as being a bit of a mess. Developers who populate their code with ioctl() implementations or /proc files are often encouraged to create a standalone virtual filesystem instead. Filesystems make the interface explicit and visible in user space; they also make it easier to write scripts which perform administrative functions.

Você concorda com Linus e os outros desenvolvedores do kernel?

Código alterado para rodar com kernel 4.6.1:

Como incluir o lwnfs

Como testar:

  $ dd if=/dev/zero of=rep bs=1k count=4
  $ mkdir -p mnt
  $ mount -t lwnfs -o loop rep mnt
  $ cd mnt
  $ ls
  $ cat counter0
  0
  $ cat counter0
  1
  $ echo 200 > counter1
  $ cat counter1
  200
Faça um teste semelhante para a versão com parte do código para diretórios lwndirfs.c.

Yet another hello file system

Este é bem simples e foi baseado no lwnfs citado acima. Veja o código atualizado para a versão 4.6.1.

islenefs

Código desenvolvido por Glauber de Oliveira Costa em 1s2008 para um projeto da disciplina MC514. É um sistema de arquivos simples que armazena os arquivos em memória. Versão atualizada para a versão 4.6.1: