dispositivo de bloco virtual

6

Não tenho certeza do que devo pesquisar no Google ou se o FUSE fizer isso (suspeito que não). Gostaria de criar um dispositivo de bloco virtual para o qual todas as formas de acesso, por exemplo, leituras e gravações, vão diretamente para o meu aplicativo

Sei que posso usar um arquivo como um dispositivo de bloco fazendo dd if=/dev/zero of=~/test count=100k e, em seguida, criar um loopback usando losetup /dev/loop0 ~/test . Mas gostaria que os acessos fossem direcionados diretamente para meu aplicativo em vez de para um arquivo. Espero que esta pergunta seja bastante clara.

    
por kyrias 23.10.2014 / 10:25

2 respostas

1

Como mencionado nos comentários, uma das maneiras possíveis é o NBD. BUSE pode ajudá-lo a começar isso. Na verdade, ele usa um soquete Unix, por isso deve ter um desempenho razoável.

    
por 25.04.2015 / 02:15
0

Você não está procurando mmap() ?

Não sei como você poderia mmap sem ter um arquivo real para isso, mas você pode ter um arquivo arbitrariamente grande e zerado (veja falocate , truncate ) e mmap() com o sinalizador MAP_PRIVATE , para que as gravações sejam visíveis apenas para seu aplicativo e não sejam levadas ao disco.

    
por 24.04.2015 / 19:15