GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa sono i file speciali di caratteri e blocchi speciali in un sistema Unix??

Questa domanda ha già risposte qui :Come funzionano il dispositivo dei caratteri oi file speciali dei caratteri?

(5 risposte)
Chiuso 2 anni fa.

In che modo i file speciali di caratteri e i file speciali di blocco sono diversi dai file normali in un sistema simile a Unix? Perché sono chiamati rispettivamente "personaggio speciale" e "blocco speciale"?

Risposta accettata:

Quando un programma legge o scrive dati da un file, le richieste vanno a un driver del kernel. Se il file è un file normale, i dati vengono gestiti da un driver del filesystem e vengono generalmente archiviati in zone su un disco o su un altro supporto di archiviazione e i dati letti da un file sono quelli precedentemente scritti in quella posizione. Esistono altri tipi di file per i quali accadono cose diverse.

Quando i dati vengono letti o scritti in un file del dispositivo, la richiesta viene gestita dal driver per quel dispositivo. Ogni file di dispositivo ha un numero associato che identifica il driver da utilizzare. Quello che il dispositivo fa con i dati è affar suo.

I dispositivi a blocchi (chiamati anche file speciali a blocchi) di solito si comportano in modo molto simile ai file ordinari:sono una matrice di byte e il valore letto in una determinata posizione è l'ultimo valore scritto lì. I dati dal dispositivo a blocchi possono essere memorizzati nella cache e riletti dalla cache; le scritture possono essere memorizzate nel buffer. I dispositivi a blocchi sono normalmente ricercabili (ovvero esiste una nozione di posizione all'interno del file che l'applicazione può modificare). Il nome "dispositivo a blocchi" deriva dal fatto che l'hardware corrispondente in genere legge e scrive un intero blocco alla volta (ad esempio un settore su un disco rigido).

I dispositivi di caratteri (chiamati anche file speciali di caratteri) si comportano come pipe, porte seriali, ecc. Scrivere o leggere su di essi è un'azione immediata. Quello che il conducente fa con i dati è affar suo. La scrittura di un byte su un dispositivo di caratteri potrebbe far sì che venga visualizzato sullo schermo, emesso su una porta seriale, convertito in un suono, ... La lettura di un byte da un dispositivo potrebbe causare l'attesa della porta seriale per l'input, potrebbe restituire un byte casuale ( /dev/urandom ), ... Il nome "dispositivo caratteri" deriva dal fatto che ogni carattere viene gestito individualmente.

Vedi Wikipedia e Capire /dev e le sue sottodirectory e file per maggiori informazioni.

Correlati:Linux – Unisci per data più file di registro che includono anche righe non datate (ad es. Tracce dello stack)?
Linux
  1. Come scoprire chi è connesso al tuo sistema e cosa stanno facendo

  2. Cosa sono vdso e vsyscall?

  3. differenza tra file di dispositivo e driver di dispositivo

  4. Qual è lo scopo dei file /etc/shadow e shadow cache nel sistema operativo Linux?

  5. Quali sono le differenze tra i file .txt Linux e Windows (codifica Unicode)

Qual è la differenza tra Linux e Unix?

Come installare Rclone in Linux e Unix

Storia di Unix e Linux

Cos'è l'hypervisor e quali sono i suoi tipi

Che cosa sono le chiamate di sistema Linux e le funzioni di libreria?

Quali sono le convenzioni di chiamata per le chiamate di sistema UNIX e Linux (e le funzioni dello spazio utente) su i386 e x86-64