Escriba un sistema de archivos FUSE simple que se almacena en la memoria. El sistema de ficheros tiene que apoyar los siguientes comandos:En la memoria Sistema de archivos FUSE
ls, mkdir, cp
Esta pregunta se le preguntó recientemente en una entrevista, que no era capaz de responder él. Así que he decidido aprenderlo.
Hice algunas búsquedas y encontré algunas guías para construir mi propio sistema de archivos FUSE. No tengo ni idea de cómo implementar el sistema de archivos en la memoria.
Mis preguntas son
- Estoy yendo en la dirección correcta?
- ¿Qué más debería leer?
- ¿Cuál es la solución?
Enlaces que estoy leyendo:
- http://fuse.sourceforge.net/
- http://www.ibm.com/developerworks/linux/library/l-fuse/
- http://pramode.net/articles/lfy/fuse/pramode.html
- http://revista.python.org.ar/3/en/html/python_en_tu_fs.html
- http://pysnippet.blogspot.com/2009/11/fuse-filesystem-in-userspace-part-1.html
- creating a temporary file in python with FUSE
- http://www.willmcgugan.com/blog/tech/2011/3/20/creating-a-virtual-filesystem-with-python-and-why-you-need-one/
En el último eslabón de la hay una mención sobre el almacenamiento en caché en memoria con PyFileSystem. No estoy seguro de cómo eso podría ayudar.
PD: Esta fue una pregunta de la entrevista escrita, por lo que la respuesta tiene que ser lo suficientemente simple como para escribir en papel dentro de 10-15 minutos.
Entiendo que esto podría eludir la pregunta, pero ¿por qué no usar [tmpfs] (http://en.wikipedia.org/wiki/Tmpfs) en lugar de pasar su propio sistema de archivos a través de FUSE? –
@ FrédéricHamidi: tmpfs es una buena alternativa gracias. Pero lamentablemente eso no responde la pregunta como mencionaste. – Gautam
Supongo que "almacenado en la memoria" significa que debe asignar algún tipo de búfer y usar ese búfer como un back-end de fs. –