Hasta ahora nunca me había detenido en la palabra fuse
pero luego vi que la hay nofuse
.
Según las búsquedas que he realizado en Internet, no explican claramente la diferencia. ¿Cuál es la diferencia entre fuse
y nofuse
?
Por ejemplo, ¿qué supone fuse
esto nofuse
en términos de rendimiento y beneficios? nofuse
¿Le permite iniciar una unidad flash en el momento del arranque y fuse
no? Esto es lo que me interesa.
Respuesta1
Son dos conductores diferentes. Uno de ellos se crea usando FUSE, el otro es un módulo del kernel.
FUSE es un marco que permite que los controladores del sistema de archivos se escriban en el "espacio de usuario", es decir, como servicios independientes en lugar de módulos del núcleo. Esto hace que el desarrollomuchomás fácil, a costa de un menor rendimiento.
Los sistemas de archivos basados en FUSE pueden ser algo más lentos que los del kernel, ya que cada operación pasa por varios cambios de contexto: desde su programa al kernel y al servicio FUSE correspondiente (que tiene que leer datos de un dispositivo, por lo que regresa al kernel y sale de nuevo), luego la respuesta es nuevamente manejada por el kernel y entregada a su proceso. No es nada especial comparado, por ejemplo, con bases de datos que también se ejecutan como servicios, pero hace que las cosas sean más lentas en comparación con los sistemas de archivos que se ejecutan directamente como parte del kernel.
Sin embargo, los controladores basados en FUSE como exfat-fuse se pueden instalar independientemente del kernel que se esté ejecutando actualmente (la interfaz está diseñada específicamente para ser estable), en comparación con los basados en kernel como ZFS, que deben adaptarse a cada nueva versión principal del kernel.yel módulo debe recompilarse por separado para cada versión menor (a menudo en la máquina del usuario).
Entonces, para los sistemas de archivos que (todavía) no son parte del kernel de Linux (independientemente del motivo), usar FUSE es una opción común porque hace que el controlador sea más fácil de escribir.ymás fácil de implementar, razón por la cual exfat-fuse se volvió de uso común. (Debido a que los controladores son programas comunes, FUSE también facilita la creación de sistemas de archivos personalizados como sshfs, ftpfs o wikipediafs).
En este momento, sin embargo, el paquete 'exfat-nofuse' ya está obsoleto (bueno,ambosde ellos están obsoletos), ya que las versiones actuales del kernel tienen unincorporadocontrolador exFAT, por lo que ya no se necesita ninguno de los controladores externos.
De manera similar, el controlador NTFS "ntfs-3g" también está basado en FUSE, aunque es probable que en algún momento sea reemplazado por el nuevo controlador "ntfs3" integrado en el kernel.
Respuesta2
Defuse(8)
:
FUSE (sistema de archivos en el espacio de usuario) es una interfaz simple para que los programas del espacio de usuario exporten un sistema de archivos virtual al kernel de Linux. FUSE también tiene como objetivo proporcionar un método seguro para que usuarios sin privilegios creen y monten sus propias implementaciones de sistemas de archivos.
El nofuse
significa que es manejado exclusivamente por un módulo del kernel.
Respuesta3
Su Kernel tiene un método para comunicarse con el hardware. Este método (y el propio kernel) se ejecuta en el Anillo 0, lo que significa que tiene privilegios. El código del sistema de archivos puede contener un rootkit. Además, debe ser root para instalar un módulo del kernel que implemente un controlador de sistema de archivos. También debes ser root para configurar el punto de montaje.
FUSE significa que el controlador del sistema de archivos se ejecuta en el espacio del usuario. Un módulo en el kernel conecta con el código que se ejecuta como un usuario normal. Esto significa que la huella de la vulnerabilidad es menor y más universal. Una implementación principiante de un controlador FUSE dependerá del mismo puente del núcleo que cualquier otro controlador FUSE.
Aquí su distribución proporciona dos métodos para exfat, uno está basado en el kernel y el otro en FUSE.