DKMS har mange fordeler for Linux -tjenesteleverandørens samfunn, e.g.:
Hva vil vi dekke?
Denne guiden vil diskutere forskjellige kjernerelaterte terminologier og spesifikt hva som er DKMS.
En rask gjennomgang av terminologier
Hva er Linux -kjernen?
Det er kjernedelen av et Linux OS. Det er hovedgrensesnittet mellom prosessene som kjører på OS og dets maskinvare. Den administrerer hovedfunksjoner som minnestyring, prosessstyring, CPU -styring, enhetsdriverstyring og systemanrop og sikkerhetsstyring.
Kjerneplass
Kjernen er faktisk skjult for brukeren og jobber i sitt eget område som heter Kernel Space. Brukeren samhandler med kjernen ved å bruke brukerapplikasjonene som filer nettleser, nettleser osv. Disse interaksjonene bruker en spesifikk programmeringskonstruksjon som heter System Call.
Kernel kilde tre
Den har alle kildekoden for kjerne- og enhetsdrivere. Den består av mange kataloger og underkataloger som Arch, Block, Crypto, inkluderer, init, lib, usr, etc.
Linux -kjernemoduler
Linux Kernel -moduler er i utgangspunktet biter av kode. Disse kan legges til og fjernes fra kjernen i henhold til krav. De kan være innebygd eller lastbare. Kjernemodulen øker funksjonene til kjernen uten å kreve en system omstart. I motsetning til mikrokerneller, der å legge til nye komponenter i kjernen krever å konfigurere og bygge en ny kjerne, kan vi laste og losse komponenter eller moduler av OS ved kjøretid. Disse modulene er enhetsdrivere, filsystemer osv.
Etter at en modul er lastet, er det akkurat som et stykke kjernekode. Den har de samme privilegiene og pliktene som en normal kjernekode.
Definisjon av DKMS
Her er et utdrag av DKMS -definisjonen jeg fant her:
“DKMS er et rammeverk der enhetsdriverkilde kan ligge utenfor kjernetreet, slik at det er veldig enkelt å gjenoppbygge moduler når du oppgraderer kjerner.”
La oss utdype ovennevnte. DKMS -systemet er et tre ut av basekjernetreet på bakken. Den inneholder modulkilden og kompilerte modulbinarier. Som et resultat av denne replikasjonen er ikke moduler koblet til kjernen. (Selv om moduler ikke er helt koblet fra).
Selv møtte jeg først DKMS -konseptet da jeg kjøpte en HP -bærbar PC og installerte Ubuntu 18.04 på det. Alt fungerte bra bortsett fra wifi min. Den bærbare datamaskinen min klarte ikke å finne noen wifi -adapter. I innstillingene viste WiFi -menyen en melding "Ingen wifi -adapter funnet”. Jeg begynte å søke på forum på internett og oppdaget at mange mennesker opplevde det samme problemet. Jeg fant mange løsninger som antydet å installere overskriftsfiler, drivere og andre pakker.
Jeg fulgte bare blindt på guidene uten å vite hva de faktisk ønsket å formidle. Uansett, disse guidene hjalp meg ut, og jeg fikk WiFi på en eller annen måte. Men problemet var at hver gang jeg oppdaterte Ubuntu -systemet mitt, oppsto det samme problemet, og jeg måtte gjenta de samme trinnene med å kompilere de nedlastede driverne. Jeg må også fikse det lave signalproblemet hver gang etter å ha installert sjåføren. Jeg installerte til og med Windows OS, og til min overraskelse fungerte WiFi faktisk feilfritt. Men jeg må bruke Ubuntu til arbeidet mitt uansett. Så jeg bestemte meg for å leve med den midlertidige lappen jeg fikk tidligere.
DKMS kommer til unnsetning
En nylig løsning som jeg nettopp kom over som jeg ikke brydde meg om tidligere, brukte DKMS -måten. I stedet for å bruke gjøre eller lage installasjon Kommando utfører DKMS tre operasjoner på kildekoden: Legg til, bygg og installer.
Bruke DKMS
For at DKMer skal fungere, bør modulkilden være til stede på systemet der vi bygger modulen, og stedsveien skal være som '/usr/src/-/' Og husk at dette er det aller første kravet til DKMS. Et annet krav er en fil som heter 'DKMS.Conf ', som vil guide hvordan du bygger og installerer en modul. Og bare for å nevne, bør DKMer allerede installeres på systemet. Når alt er på plass, kan vi legge til en modul til DKMS -treet.
La oss se disse trinnene ved å installere en demomodul 'Demo-V0.1.tjære.gz ' med DKMS. Vi gjør denne prøven er bare for å forstå hvordan DKM -er fungerer. Etter å ha trukket ut filen, må vi 'CD' inni det:
# CD Demo-V0.1/Nå opprette en DKMS.konf Fil som inneholder følgende linjer:
Make = "make -c src/kerneldir =/lib/modules/$ Kernelver/build"Nå som vår DKMS.konf Filen er klar, vi kan legge til vår demomodul som:
# dkms add -m demo -v 0.1Det fine med DKM -ene er at vi kan spesifisere kjerneversjonen som vi ønsker å bygge eller modul som vist her:
# dkms build -m demo -v 0.1 -K 5.1. 3.0-27Hvis vi ikke spesifiserer kjernen, vil DKMer bygge modulen med den nåværende kjerneversjonen.
Hvis alt går bra, kan vi nå installere modulen ved å bruke:
# dkms install -m demo -v 0.1Hvis vi oppgraderer kjernen vår eller endrer maskinvarearkitekturen, må en modul gjenoppbygges igjen. Ved hjelp av DKM -er blir denne prosedyren overflødig når DKM -ene dynamisk bygger disse kjernemodulene for hver kjerne som er til stede på systemet.
Konklusjon
Verktøy som DKM har hjulpet administratorer, sjåførutviklere og andre reduserer kjernehåndteringsoppgaven i stor grad. Mens sluttbrukerne ikke bryr seg om hvordan det underliggende systemet fungerer til målene deres er oppfylt, lar DKMS utviklere og administratorer fokusere på arbeidet sitt.