Voci in sysfs può essere ordinato in base al tipo di bus, al tipo di oggetto, al tipo di dispositivo, alle relazioni genitore/figlio, ecc. Aiutano Symlinks nel ridurre i licenziamenti.
Cosa copriremo?
In questo articolo, esploreremo il sysfs filesystem in Linux. Cominciamo con una panoramica del sysfs.
Panoramica del sysfs File system
SYSFS è stato introdotto in Linux per la prima volta nella versione 2 del kernel.6.0.
IL sysfs è un file system virtuale in Linux. Significa che i file accese sysfs Non risiedere su un disco o su qualsiasi media fisico. Tuttavia, i contenuti dei file system sono archiviati in memoria. Originariamente, sysfs era basato su RAMFS e si chiamava DDFS (Driver Filesystem).
SYSFS invia dati allo spazio utente utilizzando i file virtuali. Questi dati comprendono dati su vari sottosistemi di kernel, dispositivi hardware e driver di dispositivi associati.
Generalmente, sysfs è montato su /sys partizione e viene automaticamente montato dal sistema. Inoltre, può essere montato manualmente su avvio usando il fstab file:
$ mount -t sysfs sysfs /sys
Dal comando precedente, notiamo che il sysfs è montato su /sys. Questa è la posizione standard in cui il sysfs è montato.
La gerarchia SYSFS
SYSFS è un cluster di file, cartelle e collegamenti simbolici. La maggior parte dei file all'interno /sys sono di sola lettura. Alcuni file sono anche scrivibili, il che aiuta a modificare le variabili del kernel. I collegamenti simbolici sono ampiamente utilizzati per collegare le voci in tutto il filesystem.
Si consiglia di utilizzare il comando "albero" per vedere una vista completa di questa directory. Sul nostro sistema, il comando "albero" mostra un totale di 9480 directory e 38635 file che è una vasta raccolta di file e directory.
Al livello superiore, vengono create 11 principali sottodirectory al sistema di avvio del sistema. Queste sottodirectory sono rappresentazioni dei principali sottosistemi registrati con sysfs. All'avvio, questi sottosistemi sono registrati con Kobject Core. Una volta terminata l'inizializzazione, iniziano a trovare oggetti registrati all'interno delle loro directory corrispondenti.
File e sottodirectory del file system /sys
Vediamo ora alcuni file e sottodirectory del /sys file system e discutere il loro scopo di base. Le sottodirectory virtuali più importanti al livello superiore di /sys sono blocchi, bus, hypervisor, classe, dispositivi, kernel, firmware, modulo e potenza.
1. /sys/blocco: Ha un collegamento simbolico e directory per ogni dispositivo a blocchi scoperto sul sistema. Questi collegamenti simbolici indicano le rispettive directory sotto la directory /sys/dispositivi. Ci sono molte sottodirectory dentro qui:
Questi dispositivi di blocco, mostrati in colore ciano, hanno attributi contenenti informazioni sulle partizioni. Esempi di queste sottodirectory sono SDA, SDB, ecc.
2. /sys/bus: Un bus è un medio/canale tra un processore e un dispositivo o dispositivi. Esempi di tipi di bus includono PCI, PCMCIA, SCSI o USB. Per ogni tipo di autobus nel kernel, c'è una sottodirectory che risiede nel /sys/bus directory. Ciascuna di queste sottodirectory ha ulteriori due sottodirectory: dispositivi e driver.
i) Dispositivi: contiene collegamenti simbolici alle voci in /sys /dispositivi (l'albero dei dispositivi globali) per ogni dispositivo scoperto sul bus.
ii) Driver: contiene una sottodirectory per ogni driver del dispositivo caricato sul bus. Queste sottodirectory contengono attributi per la gestione dei parametri del driver e dei collegamenti simbolici.
3. /sys/classe: Una classe è una vista di alto livello di un dispositivo. Questa directory contiene inoltre un altro livello di sottodirectory per ogni classe di dispositivo registrato sul sistema. Queste classi possono essere terminali, dispositivi di rete, dispositivi audio, ecc. Queste sottodirectory contengono collegamenti simbolici per ogni dispositivo in una classe. Questi collegamenti simbolici indicano le voci in /sys/dispositivi directory.
4. /sys/class/net: Ogni sintesi in questa directory rappresenta uno dei dispositivi di rete reali o virtuali, che sono visibili nello spazio dei nomi di rete del processo che accede alla directory. Ogni di questi punti simbolici punta alle voci in /sys/dispositivi directory.
5. /sys/dispositivi: IL /sys/dispositivo La directory contiene l'intero albero del dispositivo del kernel nella vista del file system. Include ogni dispositivo fisico trovato dai tipi di bus registrati con il kernel.
6. /sys/firmware: Contiene interfacce per gestire oggetti e attributi specifici per il firmware. Qui, il firmware è un codice che viene eseguito sull'avvio del sistema. Ad esempio, la piattaforma può essere X86 BIOS, OpenFirmware e IA64. Ci sono molti file nella cartella EFI come esempio.
Esempio di output:
$ ls firmware/efi/
config_table ESRT FW_Vendor Runtime systab
EFIVARS FW_PLATFORM_SIZE MOK-VARIABLE VAR MAP MAP
Ognuno di questi file contiene un valore per un parametro.
7. /sys/kernel: Ci sono molti file e cartelle in questa sottodirectory che forniscono dati sul kernel attivo.
8. /sys/modulo: Per ogni modulo caricato nel kernel, c'è una sottodirectory che risiede in questa directory. La denominazione di queste sottodirectory si basa sul nome del kernel corrispondente. All'interno di ogni directory del modulo, è presente una sottodirectory chiamata sezioni che contiene attributi sulle sezioni del modulo. Molti file sono come CORESIZE, InitSize, InitState, Srcversion, ecc. Allo stesso modo, ci sono molte sottodirectory come driver, titolari, note, parametri, ecc.
9. /sys/potenza: Rappresenta il sottosistema di potenza e ha solo due attributi: disco e stato. Il metodo con cui il sistema andrà allo stato di sonno/sospensione è controllato dal "disco". "Stato" consente il potere di ottenere uno stato a bassa potenza.
Conclusione
In questa guida, abbiamo appreso i file system SYSFS in Linux e abbiamo anche visto varie sotto-directory e loro scopi. I SYSF contiene una grande quantità di dati. Ulteriori informazioni sono disponibili nelle pagine dell'uomo e anche in questa pagina, che è ospitato sul kernel.org