Instituto de Computação - UNICAMP

MC504/MC514 - Sistemas Operacionais

Virtual File System

Como implementar um novo sistema de arquivos no Linux

Islene Calciolari Garcia

Slides auxiliares

Sistemas de arquivos de brinquedo

LWNFS

Texto didático, primeira versã escrita em 2002. 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 3.17.x:

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
  $ ls
  $ cat counter0
  $ echo 200 > counter1

Yet another hello file system

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

Como utilizar o gdb

Infelizmente, esta receita não está funcionando com as versões utilizadas no laboratório. :-(

Tarefa

Tendo como exemplo o código do lwnfs, faça as seguintes alterações no hellofs.

Entrega

Esta tarefa não é um dos projetos principais da disciplina. Os grupos que entregarem o código do hellofs alterado via Moodle ganhar até um ponto na média das notas de projeto.

Data final: 3 de dezembro