Device Filesystem
Keywords: Device Filesystem, Linux, Sistema de archivos, Unix
Device Filesystem (devfs) es un sistema de archivos virtual, utilizado por el sistema operativo Unix y los sistemas operativos derivados de este, cuyo propósito es controlar los archivos de dispositivos, que se hayan almacenados en el directorio /dev de la estructura de archivos convencional.
Se introdujo como solución a los problemas de límite de números de dispositivos en los kernel de versiones anteriores y en la nomenclatura.
Devfs permite crear los archivos de dispositivos cuando se carga el módulo correspondiente. Además, el autor de módulo puede controlar el nombre del archivo y los derechos de acceso a éste. Además, se puede crear los enlaces simbólicos y directorios para organizar los archivos, aunque es la tarea del Devfsd.
Devfs está en los núcleos 2.4, aunque existe el backport para los 2.2.
Para habilitar de devfs, hay que añadir lo siguiente a la línea de argumentos del núcleo:
devfs=mount
Para deshabilitar:
devfs=nomount
Los autores del código, pueden crear los archivos de la siguiente manera:
# include <linux/fs.h> # include <linux/devfs_fs_kernel.h> devfs_handle_t nada_devfs_dir; /* nuestro directorio */ devfs_handle_t nada_devfs_entry; /* nuestro archivo */ int nada_major; nada_devfs_dir = devfs_mk_dir(NULL, "nada", NULL); if (!nada_devfs_dir) return -EBUSY; /* Houston, tenemos un problema */ nada_devfs_entry = devfs_register(nada_devfs_dir, "nada", DEVFS_FL_AUTO_DEVNUM, nada_major, 0, S_IFCHR | S_IRUGO | S_IWUGO, &nada_fops, "nada"); /* Ok! */
Lo podemos quitar así:
devfs_unregister(nada_devfs_entry); devfs_unregister(nada_devfs_dir);
Todo está descrito aquí: /usr/src/linux/Documentation/filesystems/devfs.
