Hva er kjerneutvidelser?
En kjerneutvidelse er et stykke datamaskinprogramvare som er lastet inn i operativsystemets sentrale komponent. Kjerneutvidelser kan brukes til å tilby funksjonalitet eller maskinvarestøtte som ellers ikke vil være en del av kjernen. En kjerneutvidelse har ofte lov til å utføre oppgaver eller få tilgang til deler av operativsystemet som vanlig programvare ikke kan. I noen operativsystemer blir kjerneutvidelser referert til som kjernemoduler, eller ganske enkelt moduler.
I de fleste operativsystemer er tilgang til nettverk, filsystemer og systemanrop begrenset for å opprettholde et stabilt og sikkert system. Kjerneutvidelser har tilgang til disse funksjonene og systemene fordi de kjører som en del av kjernen. En kjerne uten utvidelser er kjent som en basekjerne. Utvidelser kan legges til eller fjernes fra basekjernen.
Utvidelser gir større fleksibilitet i en kjernes muligheter uten å øke kompleksiteten til basekjernen. For eksempel kan en kjerneutvidelse lastes for å aktivere strømsparende funksjoner som passer for bærbare datamaskiner. Disse funksjonene er vanligvis ikke inkludert i basekjernen fordi operativsystemet kanskje ikke brukes på en bærbar datamaskin.
Kjerneutvidelser eller moduler kan også lastes og lastes ut dynamisk, noe som betyr at de blir lagt til og fjernet fra kjernen etter behov. Dette gjør at datamaskinen kan lagre minne og andre ressurser når utvidelsen ikke er i bruk. En USB-nettverkskort (Universal Serial Bus) kan laste de nødvendige driverne som kjerneutvidelser når den er koblet til, og deretter laste ut utvidelsene når enheten fjernes.
De har mer autoritet enn andre programmer, så kjerneutvidelser og moduler kan forårsake unike problemer. En dårlig kodet enhetsdriver som kjører som en kjerneutvidelse kan føre til at hele systemet krasjer. Av denne grunn blir programvareutviklere ofte oppfordret til å bruke kjerneutvidelser bare når det ikke er noe alternativ.
For de fleste brukere skjer konfigurasjonen av utvidelser automatisk. Noen brukere, spesielt de som bruker bestemte operativsystemer, administrerer kjerneforlengelse eller moduler selv. Det er variasjoner i versjonene av kjerner, så utvidelse og moduler er kanskje ikke kompatible med alle kjerner eller alle operativsystemer.