Device Filesystem

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

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 están 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. Ha dejado de usarse en favor de udev, que hace la misma función, pero soluciona varios problemas que devfs no trata.

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. También, se pueden 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.

Véase también[editar]