Download Amministrare GNU/Linux
Transcript
1.2. L’ARCHITETTURA DEI FILE 7 Tipo di file regular file file regolare - directory d symbolic link char device block device fifo o pipe socket cartella o direttorio collegamento simbolico dispositivo a caratteri dispositivo a blocchi “coda” o “tubo” “presa” l c b p s Descrizione un file che contiene dei dati (ciò che si intende normalmente per file). un file che contiene una lista di nomi associati a degli inode. un file che contiene un riferimento ad un altro file o directory. un file che identifica una periferica ad accesso a caratteri. un file che identifica una periferica ad accesso a blocchi. un file speciale che identifica una linea di comunicazione unidirezionale. un file speciale che identifica una linea di comunicazione bidirezionale. Tabella 1.1: I vari tipi di file riconosciuti da Linux parlarsi fra di loro. Dato che, come accennato in sez 1.1, i processi sono completamente separati, può essere soltanto il kernel a fornire le funzionalità che permettano la comunicazione. Questi file speciali sono due modalità diverse per realizzare una comunicazione fra processi diversi; aprendo una fifo un processo può scrivervi sopra ed un altro processo che ha aperto la fifo leggerà dall’altro capo quanto il primo ha scritto,16 niente verrà salvato su disco, ma passerà tutto attraverso il kernel che consente questa comunicazione come attraverso un tubo (da questo deriva il nome pipe). I socket fanno la stessa cosa ma consentono una comunicazione bidirezionale, in cui il secondo processo può scrivere indietro, ed il primo leggere, quando invece per le fifo il flusso dei dati è unidirezionale. La possibilità di avere tutti questi tipi di file speciali è dovuta al fatto che, come accennavamo in sez. 1.1.3, in Linux l’accesso ai file viene eseguito attraverso una interfaccia unificata, il Virtual File System, che definisce una serie di operazioni generiche che sono le stesse per tutti gli oggetti che essa gestisce; è questo che implementa la filosofia progettuale del tutto è un file. Le principali operazioni sono riportate in tab. 1.2; ogni oggetto del sistema visto attraverso il Virtual File System definisce la sua versione di queste operazioni. Come si può notare sono definite sia operazioni generiche come la lettura e la scrittura, che più specialistiche, come lo spostamento all’interno di un file.17 Quando si utilizzano le system call per accedere ad un file sarà compito del kernel chiamare l’operazione relativa ad esso associata (che sarà ovviamente diversa a seconda del tipo di file), o riportare un errore quando quest’ultima non sia definita (ad esempio sul file di dispositivo associato alla seriale non si potrà mai utilizzare l’operazione di spostamento llseek ). Funzione open read write llseek ioctl readdir Operazione apre il file. legge dal file. scrive sul file. si sposta all’interno del file. accede alle operazioni di controllo. legge il contenuto di una directory. Tabella 1.2: Principali operazioni sui file definite nel VFS. 16 l’uso delle fifo su disco è in realtà abbastanza complesso e benché quasi sempre coinvolga due soli processi (uno che scrive e uno che legge) si possono avere situazioni più complicate; la trattazione dell’argomento va oltre gli scopi di queste dispense, chi fosse interessato può trovare delle spiegazioni dettagliate sull’argomento nella sezione 12.1 di [GaPiL]. 17 ce ne sono altre ancora più complesse, che non sono state riportate in tab. 1.2.
Related documents
001 Ubuntu - Laureateci.it
PDF - Da windows a linux
final user manual - CERIAS
hacktivism: la liberta` nelle maglie della rete
Elaborato E Disciplinare tecnico
galahad and the holy grail - Museum of Computer Adventure Game
Italiano COSTATAZIONE FCC
Manuale d`uso ATP-XM - Misuratori di pressione professionali per
Service & Support
IBM Partner Pavilion LearningSpace 2.5 User's Manual