GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué son los archivos especiales de caracteres y bloques especiales en un sistema Unix?

Esta pregunta ya tiene respuestas aquí :¿Cómo funcionan los dispositivos de caracteres o los archivos especiales de caracteres?

(5 respuestas)
Cerrado hace 2 años.

¿En qué se diferencian los archivos especiales de caracteres y los archivos especiales de bloques de los archivos normales en un sistema similar a Unix? ¿Por qué se llaman "especial de carácter" y "especial de bloque" respectivamente?

Respuesta aceptada:

Cuando un programa lee o escribe datos de un archivo, las solicitudes van a un controlador de kernel. Si el archivo es un archivo normal, los datos son manejados por un controlador de sistema de archivos y generalmente se almacenan en zonas en un disco u otro medio de almacenamiento, y los datos que se leen de un archivo son los que se escribieron previamente en ese lugar. Hay otros tipos de archivos para los que suceden cosas diferentes.

Cuando se leen o escriben datos en un archivo de dispositivo, el controlador de ese dispositivo maneja la solicitud. Cada archivo de dispositivo tiene un número asociado que identifica el controlador a utilizar. Lo que el dispositivo haga con los datos es asunto suyo.

Los dispositivos de bloque (también llamados archivos especiales de bloque) normalmente se comportan de forma muy parecida a los archivos ordinarios:son una matriz de bytes, y el valor que se lee en una ubicación determinada es el valor que se escribió allí por última vez. Los datos del dispositivo de bloque se pueden almacenar en caché en la memoria y volver a leer desde el caché; las escrituras se pueden almacenar en búfer. Los dispositivos de bloque normalmente se pueden buscar (es decir, hay una noción de posición dentro del archivo que la aplicación puede cambiar). El nombre "dispositivo de bloque" proviene del hecho de que el hardware correspondiente normalmente lee y escribe un bloque completo a la vez (por ejemplo, un sector en un disco duro).

Los dispositivos de caracteres (también llamados archivos especiales de caracteres) se comportan como conductos, puertos serie, etc. Escribir o leer en ellos es una acción inmediata. Lo que hace el conductor con los datos es asunto suyo. Escribir un byte en un dispositivo de caracteres puede hacer que se muestre en la pantalla, se emita en un puerto serie, se convierta en un sonido, … Leer un byte de un dispositivo puede hacer que el puerto serie espere la entrada, puede devolver un byte aleatorio ( /dev/urandom ), ... El nombre "dispositivo de caracteres" proviene del hecho de que cada carácter se maneja individualmente.

Consulte Wikipedia y Comprensión de /dev y sus subdirectorios y archivos para obtener más información.

Relacionado:Linux:¿combinar por fecha varios archivos de registro que también incluyen líneas sin fecha (por ejemplo, seguimientos de pila)?
Linux
  1. ¿Qué son vdso y vsyscall?

  2. diferencia entre archivo de dispositivo y controlador de dispositivo

  3. ¿Cuál es el propósito de los archivos de caché /etc/shadow y shadow en el sistema operativo Linux?

  4. ¿Cuáles son las diferencias entre los archivos .txt de Linux y Windows (codificación Unicode)?

  5. ¿Qué es un contenedor de Linux y un hipervisor de Linux?

¿Cuál es la diferencia entre Linux y Unix?

Cómo instalar Rclone en Linux y Unix

Historia de Unix y Linux

¿Qué es el hipervisor y cuáles son sus tipos?

¿Qué son las llamadas al sistema Linux y las funciones de biblioteca?

¿Cuáles son las convenciones de llamada para las llamadas del sistema UNIX y Linux (y funciones de espacio de usuario) en i386 y x86-64?