linux user group brescia

immagine del castello

Archivio della mailing list

copia di file speciali

Luca Giuzzi l.giuzzi a dmf.bs.unicatt.it
Sab 17 Apr 1999 22:57:02 UTC
La filosofia di unix (e di linux per conseguenza) desidera che tutte le
 periferiche siano visibili in modo uniforme come files e possano venire
 riconfigurate con delle opportune chiamate di sistema. Questo non \`e sempre
 agevole (ad esempio l'implementazione di un framebuffer a per le SVGA su PC
 \`e una cosa relativamente nuova sotto linux), ma \`e la soluzione pi\`u
 desiderabile.
 La mia introduzione \`e solo per chiarire che i files speciali in realt\`a
 sono delle interfaccie verso dei device drivers. Il comportamento del
 comando copy su di essi non \`e ben definito, ma, nel caso migliore, ha
 come esito la copia di qualsiasi tipo di dato il driver vuole presentare e
 non del file stesso. (ad esempio se fai un 
 cp /dev/hda1 pippo 
 puoi ottenere una copia dei contenuti della prima partizione del disco IDE
 che si trova in posizione Master sul controller primario del tuo computer
 nel file pippo, ma il file speciale non viene duplicato!)
 Come spiegato da Maurizio Paolini, il modo migliore per trasferire dei
 file speciali \`e rigenerarli col comando mknod... in particolare bisogna 
 notare che fra versioni differenti del kernel (1.0/1.2/2.0/2.2) alcuni
 devices hanno cambiato significato, sono stati marcati come obsoleti e/o
 sono stati introdotti con nuove funzionalit\`a (questo \`e stato uno
 dei problemi che si sono presentati quando la gente ha fatto una upgrade
 `veloce' da una vecchia distribuzione con una vecchia versione del kernel,
 diciamo 2.0.0 Slackware, al nuovo 2.2); il modo migliore \`e guardare che
 devices realmente ti servono e crarli... la lista dei file speciali
 disponibili per linux si trova in /usr/src/linux/Documentation/devices.txt .

 ...riguardo la tua domanda sulla copia infine... s\`i, i files speciali
 si possono copiare... solamente devi usare il comando tar... questo \`e un
 esempio
 
 ( cd /dev ; tar cvpO * | tar xvpf - -C/mnt/floppy/dev )

 copia tutti i files speciali in /dev nella directory /mnt/floppy/dev
 (le opzioni di tar sono:
 c= create
 v= verbose
 p= preserve permissions
 O= to standard output
 
 x= extract
 f= file (ma il - che segue sigifica che in realt\`a \`e standar input)
 -C nome = directory dove estrarre.

Il punto \`e che tar (a differenza di cp) riconosce i files speciali come 
 tali e li trasferisce di conseguenza. (un altro programma usabile per
 fare ci\`o \`e cpio)

Ciao,
 lg



Maggiori informazioni sulla lista Lug