Om du har varit Linux-användare under en lång tid, skulle du veta att Linux-distributioner har unika versioner och varje version har ett specifikt kodnamn. Linuxkärnan har också olika versionsnummer, som fungerar som en identifierare för serien kärnan tillhör. Det finns dock en skillnad mellan hur kärnversioner bildades tidigare och hur Linus Torvalds namnger dem nu.
Mot slutet kommer du att bli mer bekant med Linux-kärnversionsschemat och kommer att känna dig mer bekväm att läsa kärnans versionsnummer och identifiera de olika funktionerna som är förknippade med en specifik release.
Den traditionella Linux-kärnversionen
När Linus först började utveckla kärnan, bestod versionssystemet som användes helt enkelt av ett inkrementerande variabelschema som började med noll (0.x). Till en början var Linus den enda som arbetade med projektet, och detta versionssystem räckte för behovet av att dokumentera och distribuera nya kärnutgåvor.
Här är några av kärnutgåvorna som följde detta namnschema:
Senare, när fler utvecklare började bidra till projektet och antalet revisioner och patchar ökade avsevärt, beslutades att detta versionsschema inte var lämpligt för programvara som en kärna. Och från och med version 1.0 antog Linus ett nytt schema med några ytterligare variabler.
Introduktion av ett mer beskrivande versionssystem
1994, med lanseringen av Linux-kärnan 1.00, började Linus använda ett nytt versionssystem som använde tre variabler i syntaxen: "a.b.c". Dessa variabler (a, b och c) representerar den huvudsakliga versionen, den mindre versionen respektive versionsnumret för den specifika kärnversionen.
Ta Linuxkärnan 1.1.95 som ett exempel. Du kan avkoda den som den första större utgåvan, den första mindre utgåvan och den 95:e versionen.
På den tiden betecknade även mindre versionsnummer stabila kärnutgåvor, medan udda representerade utvecklingsutgåvor. Det var viktigt att ha separata grenar så att utvecklare kunde lägga till och testa nya funktioner i kärnan utan att påverka den stabila grenen.
Kärnutvecklare lägger till och förbättrar nya funktioner i utvecklingsgrenen tills den blir tillräckligt stabil för att släppas som en LTS-kärna. LTS-kärnan 3.2 utvecklades genom att stabilisera de nya funktionerna i version 3.1, och på liknande sätt en ny utvecklingskärnan 3.3 förgrenade sig från 3.2 för att ge plats åt nya funktioner som sedan skulle introduceras i Linux 3.4.
Med utgångspunkt från Linux-kärnan 2.4, betecknade en fjärde variabel i kärnnamnet patchutgåvorna. Man kan säga att version 2.4.37.10 är den tionde patchutgåvan för kärnan 2.4.37.
En patch-release betyder inte antalet problem som korrigerats i en kärnrelease. Istället räknar den antalet gånger en uppdaterad kärna släpptes efter att ha patchar de problem som hittats.
Fram till Linux 2.6 användes detta versionssystem, och det var effektivt för att skilja en specifik version från andra. Att lägga till revisionsantal och korrigeringsutgåvor i versionsnumret var beskrivande, men det innebar att man hade längre och mer komplexa kärnversioner. Och återigen krävdes ett nytt och bättre system.
Hur heter Linux Kernel-versioner nu?
Med Linux version 3.0 släppte Linus den fjärde variabeln från versionsnumret. Nu är kärnversionen bildad enligt syntaxen: a.b.c, där a, b och c är den stora utgåvan, den mindre utgåvan respektive revisionsantalet. Detta versionsschema liknar det som används mellan kärnutgåvorna 1.0 och 2.4.
På grund av framsteg inom versionskontrollsystem, kunde bidragsgivare nu sömlöst arbeta på stabila grenar och lägga till nya funktioner utan att av misstag förstöra de redan fungerande, stabila utgåvorna. Därför är användningen av jämna och udda mindre versionsnummer för stabila och produktionsgrenar av kärnan blev överflödig efter introduktionen av kärnversion 4.0, och den första LTS-versionen (4.1) i de 4.x serien hade ett udda mindre versionsnummer.
Du kanske också märker några tecken i slutet av versionsnumret, som rcX. Granskningskandidater (eller "rc" för kort) är förhandsversioner och pre-patch-versioner av kärnan som utvecklarna behöver korrigera för att ta bort buggar och andra problem. Dessa är en ersättning för utvecklingsutgåvorna som tidigare betecknades med ett udda mindre versionsnummer.
Även om dessa utgåvor är specifikt reserverade för kärnutvecklare så att de kan fixa de rapporterade problemen och implementera nya funktioner, kan du också ladda ner och testa dessa kärngranskningskandidater om du vill, men det rekommenderas i allmänhet inte med tanke på att det är här det mesta av utvecklingen händer. Den senaste förhandsversionen av kärnan när detta skrivs är 5.19-rc6.
För att skapa nya versioner, ökas den föregående variabeln när värdet på en variabel når ett visst antal. Till exempel uppdateras huvudversionen till nästa siffra när antalet mindre versioner närmar sig 20.
Linus nämns i hans 5.0 kärnutvecklingsmail att han helt enkelt uppdaterade durnumret till fem eftersom det mindre släpptalet blev för stort för att räkna på fingrar och tår (20!). Likaså enligt kernel.org, det stora versionsnumret ökas när numret efter den första punkten börjar se "för stort ut". Den slutliga kärnversionen i 3.x serien var 3,19 och den sista stora 4.x kärnserien var 4.20, som sedan höjdes till 5.0.
Sedan version 3.0, Linux-kärnan har följt detta versionsschema och det har visat sig vara effektivt så länge som tre stora kärnutgåvor (versioner 3.x, 4.x, och 5.x).
Identifiera en Linux-kärnversion med hjälp av versionsnummer
Med tanke på det stora antalet Linux-kärnversioner som släpps, finns det ett behov av ett ordentligt system för att identifiera och skilja en specifik version från de andra. Med det nya kärnversionsschemat kan kärnversioner nu effektivt identifieras och jämföras, och det är lätt att veta vilken kärnversion som är den senaste och vilken som släpptes tidigare.
Om du vill kontrollera Linux-kärnversionen som för närvarande är installerad på ditt system, kan du göra det med uname, ett Linux-kommando som låter dig lista systemrelaterad information. Beroende på vilken distro du kör kan versionsnumret som visas av uname vara annorlunda än de faktiska Linux-kärnversionerna.