Udev

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 1. februar 2019; checks kræver 7 redigeringer .
udev
Type enhedsknudepunkt
Udvikler Greg Kroah-Hartman og Kay Sievers
Skrevet i FRA
Operativ system Linux (kerne)
Første udgave november 2003
nyeste version 251 ( 21. maj 2022 ) [1]
Licens GPL v2
Internet side git.kernel.org/?p=linux/...

udev  - Enhedsstyring til nye versioner af Linux-kernen , efterfølger til devfs , hotplug og HAL . Dens hovedopgave er at betjene enhedsknuderne i mappen / dev  og håndtere alle handlinger, der udføres i brugerrummet , når der tilføjes/fjernes eksterne enheder, inklusive indlæsning af firmware .

Historie

udev blev tilføjet i Linux 2.5.

En ny uevent -grænseflade er blevet introduceret og opdateret i Linux 2.6.13 -kernen. Den nye udev vil ikke fungere på kerner ældre end 2.6.13.

I april 2012 blev udev-kildekoden flettet ind i systemd -kildekoden [2] .

eudev- projektet (en forgrening af Gentoos udev ) er officielt startet som en erstatning for Systemd-udevd. På den sidste FOSDEM 2013-konference gjorde eudev-udviklerne det klart, at eudev "er et rent uddannelsesprojekt for dem", og "deres kode i sin nuværende tilstand bør på ingen måde betragtes som produktionsklar" [1] .

Beskrivelse

Takket være udev indeholder mappen /dev kun filer til enheder, der i øjeblikket er forbundet til systemet. Hver enhed har sin egen tilsvarende fil. Hvis enheden afbrydes fra systemet, slettes denne fil. Indholdet af /dev-mappen gemmes på et virtuelt filsystem , og alle filer i det oprettes, hver gang systemet startes. Ændrede eller manuelt oprettede filer gemmes ikke efter genstart. Filer og mapper, der skal bevares, eller som altid skal være til stede i /dev-mappen, uanset tilstanden på den respektive enhed, skal placeres i mappen /lib/udev/devices. Ved systemstart kopieres indholdet af denne mappe til /dev, som det er (med samme tilladelser).

I modsætning til det traditionelle Unix /dev- katalogstyringssystem , hvor indholdet var et uforanderligt sæt filer, giver udev således dynamisk styring af enheder, der faktisk er i systemet. Selvom devf'er plejede at levere denne funktionalitet , fremhæver udev-tilhængere følgende fordele ved deres løsning [3] :

Sådan virker det

udev kører som en dæmon og modtager uevents fra kernen via netlink- socket , som genereres, når enheden initialiseres eller fjernes fra systemet. Brugerdefinerede (system) regler kontrolleres i forhold til egenskaberne for hændelsen og den tilsvarende enhed, og den matchede regel (hvoraf der kan være mere end én) kan navngive og oprette den tilsvarende enhedsfil, samt udføre andre programmer for at initialisere og konfigurere enheden. For eksempel kan du på denne måde implementere automatisk montering af eksterne drev, når de er tilsluttet.

Regler kan kontrolleres i forhold til egenskaber såsom det specifikke kerneundersystem, navnet på enheden i kernen, den fysiske placering af enheden eller enhedens serienummer. Regler kan også forespørge oplysninger ved hjælp af andre programmer eller angive, at enhedsnavnet altid vil være det samme, uanset hvilken rækkefølge systemet opdager enhederne.

En typisk måde at bruge udev på et Linux-system er at tillade, at HAL- eller DeviceKit- begivenheder sendes , så de udfører efterfølgende enhedsspecifikke handlinger. For eksempel kan HAL/DeviceKit underrette andre programmer om en ny enhed ved hjælp af en D-Bus- udsendelsesmeddelelse . Således kan skrivebordsmiljøer som GNOME eller KDE automatisk montere USB -drevet og åbne en filhåndtering for at se dets indhold.

Arkitektur

udev er opdelt i tre dele:

udev modtager hændelser fra kernen via en netlink-socket. Tidlige versioner brugte hotplug ved at tilføje det til /etc/hotplug.d/default .

Noter

  1. systemd v251 .
  2. Sievers, Kay, Commit importerer udev til systemd , < http://cgit.freedesktop.org/systemd/systemd/commit/?id=19c5f19d69bb5f520fa7213239490c55de06d99d > . Hentet 25. maj 2012. Arkiveret fra originalen 8. juli 2012. 
  3. アーカイブされたコピー. Hentet 10. maj 2014. Arkiveret fra originalen 11. april 2011.

Links