I forrige artikkel forklarte vi hva Linux-kjernen er, og nå skal vi gå nærmere inn på hvilke funksjonelle oppgaver den utfører. Den monolittiske Linux OS-kjernen utfører det mest omfattende spekteret av oppgaver. Behandlingen av innkommende systemanrop foregår på øverste nivå. Disse anropene er grensesnittet mellom kjernen og brukerapplikasjonene. Maskinvaresignaler og avbrudd håndteres på et lavere nivå.
Kjernens oppgaver er imidlertid ikke bare å håndtere avbrudd. Den inneholder også programmer for enhetskontroll. Drivere er nødvendige for å behandle signaler som kommer fra enheter. En større del av kjernen er allokert til dem. Noen av dem er i form av binære filer. Versjonen av kjernen uten lukkede drivere er Linux-libre, i praksis er den ikke så lett å bruke, fordi det ikke alltid er mulig å bygge en PC basert på komponenter med bare åpne drivere.
Andre funksjonelle oppgaver i kjernen arbeider med abstraksjoner. Virtuelle tråder genereres av en virtuell tråd, en minneadministrator tildeler og isolerer en del av RAM-minnet spesielt for prosessen, et virtuelt filsystem danner en enkelt plass for lagring av filer, stikkontakter opprettes av en nettverksmodul. Slik skapes forutsetningene for å sikre et høyt sikkerhetsnivå. Systemet for interprosessinteraksjon sørger for at det ikke oppstår konflikter ved tilgang til de samme dataressursene, og sørger også for datautveksling mellom prosesser.
Fra brukerprogramvarens side ser det ut som fysisk maskinvare, med den forskjellen at prosessoren og RAM-minnet ikke kommuniserer direkte, men gjennom systemanrop. Katalogen /dev
inneholder symbolske referanser og blokkreferanser for periferiutstyr. Et særtrekk ved blokkreferanser er at de bare fungerer med blokker av en bestemt størrelse.
Til tross for at kjernen kontrollerer alle prosesser, gjør den ingenting selv, den trenger brukerprogramvare og prosessene som kjøres av denne programvaren. Blant de grunnleggende programvarene er GNU-verktøyene: Det er vanskelig å forestille seg noen Linux-distribusjon uten dem. Et eksempel er Bash-skallet
, som lar deg skrive inn kommandoer i konsollen.