Hvis du har vært Linux-bruker lenge, vet du at Linux-distribusjoner har unike versjoner og hver versjon har et spesifikt kodenavn. Linux-kjernen har også forskjellige versjonsnumre, som fungerer som en identifikator for serien kjernen tilhører. Imidlertid er det en forskjell mellom hvordan kjerneversjoner ble dannet tidligere og hvordan Linus Torvalds navngir dem nå.
Mot slutten vil du bli mer kjent med Linux-kjerneversjonsordningen og vil føle deg mer komfortabel å lese kjerneversjonsnumre og identifisere de ulike funksjonene knyttet til en spesifikk utgivelse.
Den tradisjonelle Linux-kjerneversjonen
Da Linus først begynte å utvikle kjernen, besto versjonssystemet som ble brukt ganske enkelt av et inkrementerende variabelskjema som startet med null (0.x). Opprinnelig var Linus den eneste som jobbet med prosjektet, og dette versjonssystemet var tilstrekkelig for å dokumentere og distribuere nye kjerneutgivelser.
Her er noen av kjerneutgivelsene som fulgte dette navneskjemaet:
Senere, ettersom flere utviklere begynte å bidra til prosjektet og antall revisjoner og oppdateringer økt betydelig, ble det bestemt at denne versjonsordningen ikke var egnet for programvare som f.eks kjerne. Og fra og med versjon 1.0 tok Linus i bruk et nytt opplegg med noen få tilleggsvariabler.
Introduksjon av et mer beskrivende versjonssystem
I 1994, med utgivelsen av Linux-kjerne 1.00, begynte Linus å bruke et nytt versjonssystem som brukte tre variabler i syntaksen: "a.b.c". Disse variablene (a, b og c) representerer henholdsvis hovedutgivelsen, mindre utgivelsen og revisjonsnummeret for den spesifikke kjerneutgivelsen.
Ta Linux-kjerne 1.1.95 som et eksempel. Du kan dekode den som den første store utgivelsen, den første mindre utgivelsen og den 95. revisjonen.
På den tiden betegnet selv mindre versjonsnummer stabile kjerneutgivelser, mens odde representerte utviklingsutgivelser. Det var viktig å ha separate grener slik at utviklere kunne legge til og teste nye funksjoner i kjernen uten å påvirke den stabile grenen.
Kjerneutviklere legger til og forbedrer nye funksjoner i utviklingsgrenen til den blir stabil nok til å bli utgitt som en LTS-kjerne. LTS-kjernen 3.2 ble utviklet ved å stabilisere de nye funksjonene i versjon 3.1, og på samme måte en ny utviklingskjerne 3.3 forgrenet seg fra 3.2 for å gjøre plass for nye funksjoner som deretter ville bli introdusert i Linux 3.4.
Fra Linux-kjernen 2.4, betegnet en fjerde variabel i kjernenavnet oppdateringsutgivelsene. Du kan si at versjon 2.4.37.10 er den tiende patchutgivelsen for kjerne 2.4.37.
En patchutgivelse betyr ikke antall problemer som er korrigert i en kjerneutgivelse. I stedet teller den antall ganger en oppdatert kjerne ble utgitt etter oppdatering av problemene som ble funnet.
Frem til Linux 2.6 ble dette versjonssystemet brukt, og det var effektivt for å skille en spesifikk versjon fra andre. Å legge til revisjonstall og oppdateringsutgivelser i versjonsnummeret var beskrivende, men det betydde å ha lengre og mer komplekse kjerneversjoner. Og nok en gang var det nødvendig med en ny og bedre ordning.
Hvordan heter Linux-kjerneversjoner nå?
Med Linux versjon 3.0 droppet Linus den fjerde variabelen fra versjonsnummeret. Nå er kjerneversjonen dannet i henhold til syntaksen: a.b.c, hvor a, b og c er henholdsvis hovedutgivelsen, mindre utgivelse og revisjonstall. Dette versjonsskjemaet ligner det som ble brukt mellom 1.0 og 2.4 kjerneutgivelsene.
På grunn av fremskritt innen versjonskontrollsystemer, kan bidragsytere nå sømløst jobbe med stabile grener og legge til nye funksjoner uten å ødelegge de allerede fungerende, stabile utgivelsene ved et uhell. Derfor er bruken av partall og oddetall mindre versjonsnummer for stabile og produksjonsgrener av kjernen ble overflødig etter introduksjonen av kjerneversjon 4.0, og den første LTS-utgivelsen (4.1) i de 4.x serien hadde et oddetall versjonsnummer.
Du kan også legge merke til noen tegn på slutten av versjonsnummeret, for eksempel rcX. Gjennomgangskandidater (eller "rc" for kort) er forhåndsvisningsutgivelser og pre-patch-versjoner av kjernen som utviklerne må lappe for å fjerne feil og andre problemer. Disse er en erstatning for utviklingsutgivelsene som tidligere ble angitt med et oddetall underordnet versjonsnummer.
Selv om disse utgivelsene er spesielt reservert for kjerneutviklere slik at de kan fikse de rapporterte problemene og implementere nye funksjoner, kan du også last ned og test disse kjernevurderingskandidatene hvis du vil, men det anbefales generelt ikke med tanke på at det er her mesteparten av utviklingen skjer. Den siste forhåndsversjonen av kjernen i skrivende stund er 5.19-rc6.
For å lage nye versjoner, økes den foregående variabelen når verdien til en variabel når et spesifikt tall. For eksempel oppdateres hovedversjonen til neste siffer når antallet mindre versjoner nærmer seg 20.
Linus nevnt i hans 5.0-kjerneutviklingspost at han rett og slett oppdaterte durtallet til fem fordi antallet av mindre utgivelser ble for stort til å telle på fingre og tær (20!). Tilsvarende ifølge kernel.org, økes hovedversjonsnummeret når tallet etter den første prikken begynner å se "for stort ut". Den endelige kjerneversjonen i 3.x serie var 3.19 og den siste store 4.x kjerneserien var 4.20, som deretter ble økt til 5.0.
Siden versjon 3.0, Linux-kjernen har fulgt denne versjonsordningen og den har vist seg å være effektiv så lenge som tre store kjerneutgivelser (versjoner 3.x, 4.x, og 5.x).
Identifisere en Linux-kjerneutgivelse ved hjelp av versjonsnumre
Med tanke på det store antallet Linux-kjerneversjoner som er utgitt, er det behov for et skikkelig system for å identifisere og skille en spesifikk versjon fra de andre. Med det nye kjerneversjonsskjemaet kan kjerneversjoner nå effektivt identifiseres og sammenlignes, og det er lett å vite hvilken kjerneversjon som er den nyeste og hvilken som ble utgitt tidligere.
Hvis du vil sjekke Linux-kjerneversjonen som er installert på systemet ditt, kan du gjøre det ved å bruke uname, en Linux-kommando som lar deg liste systemrelatert informasjon. Avhengig av distroen du kjører, kan versjonsnummeret som vises av uname være annerledes enn faktiske Linux-kjerneversjoner.