Linux SYSFS -filsystem

Linux SYSFS -filsystem
I Linux har hver katalog sitt eget formål med sin eksistens. Det samme er tilfelle for sysfs katalog. De sysfs Oppføringer brukes av kjernen til å eksportere informasjonen til prosesser i brukerdomenet og for å få innspill fra brukeren. Disse oppføringene reiser gjennom filsystemet for å finne show- og butikkfunksjonene som er registrert for det.

Oppføringer inn sysfs kan sorteres basert på busstypen, objekttype, enhetstype, foreldre/barneforhold osv. Symlinks hjelper til med å redusere oppsigelser.

Hva vil vi dekke?

I denne artikkelen vil vi utforske sysfs Filsystem i Linux. La oss starte med en oversikt over sysfs.

Oversikt over sysfs Filsystem

SYSFS ble introdusert i Linux for første gang i Kernel versjon 2.6.0.

De sysfs er et virtuelt filsystem i Linux. Det betyr at filene på sysfs Ikke bo på en disk eller fysiske medier. Innholdet i filsystemene lagres imidlertid i minnet. Opprinnelig, sysfs var basert på RAMFS og ble kalt DDFS (enhetsdriverfilsystem).

SYSFS sender data til brukerområdet ved hjelp av virtuelle filer. Disse dataene inneholder data om forskjellige kjerneundersystemer, maskinvareenheter og tilhørende enhetsdrivere.

Som oftest, sysfs er montert på /sys partisjon og er automatisk montert av systemet. Det kan også monteres manuelt på oppstart ved hjelp av fstab fil:

$ Mount -T SYSFS SYSFS /SYS

Fra forrige kommando bemerker vi at sysfs er montert på /sys. Dette er standard plasseringen der sysfs er montert på.

SYSFS -hierarkiet

SYSFS er en klynge av filer, mapper og symlinks. De fleste filene inne /sys er skrivebeskyttet. Noen filer er også skrivbare, noe som hjelper til med å endre kjernevariabler. Symlinks er mye brukt til å koble oppføringer i hele filsystemet Tree.

Vi anbefaler å bruke “Tree” -kommandoen for å se en fullstendig visning av denne katalogen. På vårt system viser “Tree” -kommandoen totalt 9480 kataloger og 38635 filer, som er en omfattende samling av filer og kataloger.

På toppnivå opprettes 11 store underkataloger ved System Boot. Disse underkatalogene er representasjoner av de viktigste delsystemene som er registrert med sysfs. Ved oppstart er disse delsystemene registrert med Kobject Core. Når initialiseringen er ferdig, begynner de å finne objekter registrert i de tilsvarende katalogene.

Filer og underkataloger i /sys filsystem

La oss nå se noen få filer og underkataloger av /sys filsystemet og diskuter deres grunnleggende formål. De viktigste virtuelle underkatalogene på toppnivået av /sys er blokk, buss, hypervisor, klasse, enheter, kjerne, firmware, modul og strøm.

1. /sys/blokk: Den har en symlink og kataloger for hver blokkenhet som er oppdaget på systemet. Disse symlinkene peker på sine respektive kataloger under katalogen /sys/enheter. Det er mange underkataloger her inne:

Disse blokkeringsenhetene, vist i cyanfarge, har attributter som inneholder informasjon om partisjonene. Eksempler på disse underkatalogene er SDA, SDB, etc.

2. /sys/buss: En buss er en medium/kanal mellom en prosessor og en enhet eller enheter. Eksempler på busstyper inkluderer PCI, PCMCIA, SCSI eller USB. For hver busstype i kjernen er det en underkatalog som ligger i /sys/buss katalog. Hver slik underkatalog har ytterligere to underkataloger: enheter og drivere.

i) enheter: Den inneholder symlinks til oppføringene i /sys /enheter (det globale enhetstreet) for hver enhet som er oppdaget på bussen.

ii) Driver: Den inneholder en underkatalog for hver enhetsdriver som er lastet på bussen. Disse underkatalogene inneholder attributter for å håndtere driverparametere og symlinks.

3. /sys/klasse: En klasse er en visning på høyt nivå av en enhet. Denne katalogen inneholder videre ett nivå av underkataloger for hver enhetsklasse som er registrert på systemet. Disse klassene kan være terminaler, nettverksenheter, lydenheter osv. Disse underkatalogene inneholder symlinks for hver enhet i en klasse. Disse symlinkene peker på oppføringene i /sys/enheter katalog.

4. /sys/klasse/nett: Hver symlink i denne katalogen representerer enten en av de virkelige eller virtuelle nettverksenhetene, som er synlige i nettverksnavnet i prosessen som får tilgang til katalogen. Hver slike symlink peker på oppføringene i /sys/enheter katalog.

5. /sys/enheter: De /sys/enhet Katalogen inneholder hele kjernenhets treet i filsystemvisningen. Den inkluderer hver fysiske enhet som finnes av busstypene som er registrert med kjernen.

6. /sys/firmware: Den inneholder grensesnitt for å administrere objekter og attributter som er firmware -spesifikke. Her er firmware en kode som utføres på systemoppstart. For eksempel kan plattformen være x86 BIOS, OpenFirmware og IA64. Det er mange filer i EFI -mappen som et eksempel.

Prøveutgang:

$ ls firmware/efi/
config_table esrt fw_vendor runtime systab
Efivars FW_PLATFORM_SIZE MOK-Variables Runtime-Map Vars

Hver av disse filene inneholder en viss verdi for en parameter.

7. /sys/kjerne: Det er mange filer og mapper i denne underkatalogen som gir data om den aktive kjernen.

8. /sys/modul: For hver modul som er lastet inn i kjernen, er det en underkatalog som ligger i denne katalogen. Navngivningen av disse underkatalogene er basert på navnet på den tilsvarende kjernen. Inne i hver modulkatalog er det en underkatalog kalt seksjoner som inneholder attributter om modulseksjonen. Mange filer er som coresize, initsize, initstate, srcversion osv. Tilsvarende er det mange underkataloger som drivere, innehavere, notater, parametere osv.

9. /SYS/POWER: Det representerer kraftsystemet og har bare to attributter: disk og tilstand. Metoden som systemet vil gå i dvale/suspendere tilstanden styres av “disk”. “State” tillater en makt til å få en lav effekt-tilstand.

Konklusjon

I denne guiden lærte vi om SYSFS-filsystemene i Linux og har også sett forskjellige underkataloger og deres formål. SYSFS inneholder en enorm mengde data. Mer informasjon finner du på mannssidene og også på denne siden, som er vert på kjerne.org