devfs

Från Wikipedia, den fria encyklopedin
Hoppa till navigation Hoppa till sökning

devfs ( Engl. förk. Dev is F ile s systemprogram, översätter anordning filsystem) är ett speciellt filsystem för många Unix-liknande operativsystem . Den används för att hantera enhetsfiler . Eftersom implementeringen av devfs i Linux -kärnan har vissa brister och inte längre utvecklas aktivt, utvecklades udev . Sedan slutet av juni 2006 är devfs inte längre en del av Linux -kärnan och har helt ersatts av udev.

Arbetssätt

I allmänhet behandlas många I / O -enheter såsom hårddiskar , skrivare , virtuella terminaler och liknande som specialfiler ( enhetsfiler ) på Unix -system. Om en åtgärd nu ska utföras på enheten utförs denna operation på enhetsfilen - det underliggande filsystemet för enhetsfilerna omvandlar sedan respektive operation på filen till en motsvarande operation på enheten.

Uppgifterna för devfs inkluderar att skapa och ta bort sådana filer, till exempel när nya enheter (t.ex. USB -minnen ) är anslutna och tas bort igen. Devfs ansvarar också för enhetsfilernas användarrättigheter, alltså även för de rättigheter som enskilda användare har när de får åtkomst till enheterna.

fördelar

Jämfört med det statiska / dev -systemet har devfs ett antal fördelar:

  • devfs visar bara poster för enheter som faktiskt har anslutits till datorn någon gång.
  • devfs tillhandahåller en mekanism med vilken andra program kan ta reda på om nya enheter har anslutits.

Nackdelar under Linux

Trots fördelarna med devfs framför den klassiska modellen har den också ett antal nackdelar. Dessa är bland andra:

  • namnen på enheterna är inkonsekvent i Linux om de är anslutna i en annan ordning. Detta problem finns inte på Solaris tack vare /etc/path_to_inst .
  • namngivningen motsvarar inte normerna för Linux Standard Base .
  • namngivning av enheterna hanteras i kärnminnet - speciellt med ett stort antal enheter, detta massivt begränsar andra program som också behöver kärnan minne.
  • Skapandet av enhetskatalogposterna när drivrutinen laddas resulterar i ett för nära beroende mellan enhetsnamn och drivrutin. Det är vanligtvis fördelaktigt om en enhet är "synlig" innan en eventuellt specialiserad drivrutin laddas för den. Som ett resultat kan den faktiska laddningen av en drivrutin och initialiseringen av den tillhörande hårdvaran skjutas upp till den tidpunkt då enheten faktiskt behövs, vilket kan minska den totala initialiseringstiden för operativsystemet. Devfs gör exakt det motsatta och kräver därför laddning och initialisering av komponenter som kanske inte behövs.

I Linux -operativsystemet motverkades dessa problem genom att ersätta devfs med mjukvarupaketet udev .

Historien om devfs på Linux

Devfs introducerades i Linux -kärnträdet 2.2. Den bakomliggande tanken var att kärnmodulerna själva bär information om namnen på de enhetsfiler de genererar, tillsammans med de mindre och stora talen och typen. Detta gjorde att kärnan kunde generera själva enhetsfilerna för första gången.

Kärnan skapade sedan automatiskt de enhetsfiler som krävs eller tillhandahålls av kärnan och dess moduler i devfs -filsystemet med hjälp av devfsd -demonen . Filsystemet var vanligtvis monterat i katalogen / dev .

Devfsd -demonen ( Device Filesystem Daemon ) var konfigurerbar i filen /etc/devfsd.conf . Du kan bland annat ange önskade behörigheter eller ägarstrukturer för varje enhet eller enhetsgrupp.

webb-länkar