# data[].attributes.headline
Software de E/S independiente del dispositivo

# data[].attributes.subject
Software de E/S independiente del dispositivo

# data[].attributes.body
Parte del software de E/S es independiente del dispositivo. La frontera exacta entre los drivers y el software de E/S independiente del dispositivo depende del sistema.

Este nivel incluye el sistema de archivos y el de gestión de red, el gestor de bloques, la cache de bloques y una parte de los manejadores de dispositivo. La principal función de esta capa de software es ejecutar las funciones de E/S que son comunes a todos los dispositivos a través de una interfaz uniforme.

Internamente, en este nivel se proporciona acceso a nivel de bloques o caracteres, almacenamiento intermedio, gestión de los dispositivos, planificación de la E/S y control de errores.

El tamaño de acceso a nivel de bloques se hace usando tamaños de bloque de acceso comunes para todo un sistema de archivos, lo que permite ocultar que cada dispositivo puede tener distinto tamaño de sector y distinta geometría.

Realizar funciones de E/S comunes a todos los dispositivos y proporcionar una interfaz uniforme al software de usuario. Estas funciones son:

Asignar nombres a los dispositivos y asociarlos con el driver adecuado.

Establecer mecanismos de protección en el acceso a los dispositivos (permiso de acceso apropiado para cada dispositivo). Esto evita que los usuarios no autorizados tengan acceso a ciertos dispositivos.

Suministrar un tamaño de bloque independiente del dispositivo. Es decir, ocultar la posibilidad de que diferentes discos tengan distintos tamaños de sector o las diferencias entre las unidades de transferencia.

“Buffering” (almacenamiento intermedio) para dispositivos de bloques y de caracteres.

# data[].attributes.body
El «espacio de usuario» se refiere al entorno de ejecución de procesos normales (en contraste con el núcleo). Esto no significa necesariamente que usuarios iniciaron realmente estos procesos debido a que un sistema estándar frecuentemente posee procesos «demonio» (o en segundo plano), procesos que se ejecutan antes que el usuario inicie una sesión. Los procesos demonio son procesos considerados en espacio de usuario.

La forma de designación más extendida es la integración del espacio de nombres de dispositivos en el de archivos.

El concepto central es el archivo de dispositivo: permite manejar de la misma forma archivos y dispositivos (mismas llamadas al sistemas), y aplicarles los mismos mecanismo de protección.

En UNIX un archivo dispositivo es un archivo especial que no contiene datos, si no el número principal y secundario.

Bibliotecas estándar de e/s permiten realizar las llamadas al sistema de e/s para:

Gestión el formatos (ej. printf)

Control de los dispositivos (p. ej. iocntl)

Cuando un programa en C contiene la llamada:

count = write(fd, buffer, nbytes);

el procedimiento de biblioteca write se enlazará al programa y estará contenido en el programa binario presente en la memoria en el momento de la ejecución. La colección de todos estos procedimientos de biblioteca evidentemente forma parte del sistema de E/S. Si bien estos procedimientos no hacen mucho más que colocar sus parámetros en el lugar apropiado para la llamada al sistema, hay otros procedimientos de E/S que sí realizan trabajo de verdad.

En particular, el formateo de entradas y salidas se realiza mediante procedimientos de biblioteca. Un ejemplo de C es printf, que toma una cadena de formato y posiblemente algunas variables como entrada, construye una cadena ASCII y luego invoca WRITE para enviar la cadena a la salida. Un ejemplo de un procedimiento similar para la entrada lo constituye scanf, que lee entradas y las almacena en variables descritas en una cadena de formato que tiene la misma sintaxis que prinlf. La biblioteca de E/S estándar contiene varios procedimientos que implican E/S, y todos se ejecutan como parte de programas de usuario.

# data[].attributes.body
Se refiere a programas o controladores que gestionan el acceso y la manipulación de dispositivos de almacenamiento, como discos duros, unidades de estado sólido (SSD) y unidades de disco óptico. Este tipo de software permite la lectura, escritura y organización de datos en el disco, así como la gestión de sistemas de archivos.

Algunos aspectos importantes del software de discos  son:

1. Controladores de dispositivo: son componentes del software de discos que permiten que el sistema operativo se comunique con los dispositivos de almacenamiento.

2. Sistemas de archivos: Define cómo se organizan y almacenan los archivos y directorios en el disco. Determina cómo se accede a los datos, cómo se nombran los archivos, cómo se gestionan los permisos y cómo se realiza la indexación para una búsqueda rápida.

3. Utilidades de disco: Son programas que ofrecen diversas funciones para administrar y mantener los discos.

4. Caché y control de errores: Utiliza técnicas de caché para mejorar el rendimiento de acceso a los datos. La caché almacena temporalmente datos frecuentemente accedidos en una ubicación más rápida, como la memoria RAM, lo que reduce el tiempo de acceso al disco.

5. Seguridad y encriptación: Algunos software de discos incluyen características de seguridad, como la encriptación de datos almacenados en el disco. Estas características permiten proteger la información sensible mediante el uso de algoritmos de encriptación, lo que garantiza que los datos no sean accesibles sin la clave de desencriptación adecuada.

Un ejemplo común de software de discos es un sistema de archivos, como NTFS en Windows o ext4 en Linux. Estos sistemas de archivos definen cómo se organizan y almacenan los datos en el disco, así como las operaciones permitidas, como la creación, lectura y eliminación de archivos. También existen programas de recuperación de datos que ayudan a restaurar información de discos dañados o formateados accidentalmente.