Capitolo 22. Informazioni aggiuntive per gli utenti di IBM System z

22.1. File system sysfs

Il kernel 2.6 di Linux ha introdotto il file system sysfs. Il file system sysfs viene descritto come l'unione tra proc, devfs, e devpty. sysfs è in grado di enumerare i dispositivi ed i bus collegati al sistema, in una gerarchia di file system accessibile da uno spazio utente. È stato creato per gestire le opzioni specifiche del dispositivo e del driver, precedentemente contenute in /proc/, e comprende un'aggiunta dinamica del dispositivo precedentemente offerta da devfs.
Il file system sysfs viene montato su /sys/, e contiene le directory in grado di organizzare i dispositivi collegati in modo diverso al sistema. Le sottodirectory del file system /sysfs/ includono:
  1. La directory /devices/
    Questa directory contiene la directory /css0/. Le proprie subdirectory rappresentano tutti i sottocanali rilevati dal kernel di Linux. Le directory del sottocanale hanno il seguente formato 0.0.nnnn, dove nnnn è il numero del sottocanale espresso in esadecimali ed è compreso tra 0000 e ffff. Le directory del sottocanale contengono, a turno, il file relativi allo stato ed un'altra sottodirectory che rappresenta il dispositivo vero e proprio. La directory del dispositivo presenta il seguente formato 0.0.xxxx, dove xxxx rappresenta l'indirizzo dell'unità per il dispositivo. La directory /devices/ contiene anche le informazioni relative allo stato, insieme alle opzioni di configurazione per il dispositivo.
  2. La directory /bus/
    Questa directory contiene le sottodirectory /ccw/ e /ccwgroup/. I dispositivi CCW sono accessibili utilizzando le parole del canale di comando. I dispositivi presenti nella directory /ccw/, utilizzano solo un sottocanale per dispositivo. Per esempio, un dispositivo DASD 3390-3, utilizza un sottocanale, mentre un collegamento di rete QDIO per un adattatore OSA, utilizza tre sottocanali. Le directory /ccw/ e /ccwgroup/ contengono delle directory chiamate driver e dispositivi:
    La directory /devices/ contiene un link simbolico per le directory del dispositivo all'interno della directory /sys/devices/css0/.
    La directory /drivers/ contiene le directory per ogni driver del dispositivo caricato sul sistema. I driver associati con i dispositivi, come ad esempio dasd, console, qeth, e zfcp, hanno qui le proprie entry della directory. La directory /driver/ contiene le impostazioni per il driver del dispositivo, insieme ad un link simbolico per i dispositivi utilizzati (nella directory /sys/devices/css0/).
  3. La directory /class/
    Questa directory contiene le directory che raggruppano dispositivi simili come ad esempio ttys, unità nastro SCSI, dispositivi di rete, e altri dispositivi generali.
  4. La directory /block/
    Questa directory contiene delle directory per ogni dispositivo a blocchi presente sul sistema. Essi sono simili a dei dispositivi a disco come ad esempio il real DASD, i dispositivi loopback, ed i dispositivi software raid block. La differenza più sostanziale tra i sistemi Linux più vecchi e quelli che usano sysfs, è la necessità di fare riferimento ai dispositivi tramite il loro nome sysfs. Su di una immagine del kernel 2.4, il driver zFCP viene passato come gli indirizzi del dispositivo. Sulla versione 2.6 del Kernel invece, il driver viene passato come 0.0.1600.