Als je al heel lang een Linux-gebruiker bent, zou je weten dat Linux-distributies unieke versies hebben en dat elke versie een specifieke codenaam heeft. De Linux-kernel heeft ook verschillende versienummers, die fungeren als een identificatie voor de serie waartoe de kernel behoort. Er is echter een verschil tussen hoe kernelversies eerder werden gevormd en hoe Linus Torvalds ze nu noemt.

Tegen het einde zul je meer bekend zijn met het Linux-kernelversieschema en zul je meer voelen comfortabel lezen van kernelversienummers en het identificeren van de verschillende functies die zijn gekoppeld aan a specifieke uitgave.

De traditionele versie van de Linux-kernel

Toen Linus voor het eerst begon met het ontwikkelen van de kernel, bestond het gebruikte versiesysteem eenvoudig uit een oplopend variabelenschema dat begon met nul (0.x). Aanvankelijk was Linus de enige die aan het project werkte, en dit versiesysteem voldeed aan de noodzaak om nieuwe kernel-releases te documenteren en te distribueren.

instagram viewer

Hier zijn enkele van de kernel-releases die dit naamgevingsschema volgden:

Afbeelding tegoed: Wikipedia

Later, toen meer ontwikkelaars begonnen bij te dragen aan het project en het aantal revisies en patches aanzienlijk was toegenomen, werd besloten dat dit versiebeheerschema niet geschikt was voor software zoals a kern. En vanaf versie 1.0 nam Linus een nieuw schema aan met een paar extra variabelen.

Introductie van een meer beschrijvend versiebeheersysteem

In 1994, met de release van Linux-kernel 1.00, begon Linus een nieuw versiebeheersysteem te gebruiken dat drie variabelen in de syntaxis gebruikte: "abc". Deze variabelen (a, b en c) vertegenwoordigen respectievelijk de hoofdrelease, de secundaire release en het revisienummer voor de specifieke kernelrelease.

Neem Linux-kernel 1.1.95 als voorbeeld. Je kunt het decoderen als de eerste grote uitgave, de eerste kleine uitgave en de 95e revisie.

Destijds gaven zelfs kleine versienummers stabiele kernelreleases aan, terwijl oneven versies ontwikkelingsreleases vertegenwoordigden. Het was belangrijk om aparte branches te hebben zodat ontwikkelaars nieuwe features in de kernel konden toevoegen en testen zonder de stabiele branch te beïnvloeden.

Kernelontwikkelaars voegen nieuwe functies toe en verbeteren deze in de ontwikkelingstak totdat deze stabiel genoeg is om als LTS-kernel te worden vrijgegeven. De LTS-kernel 3.2 is ontwikkeld door de nieuwe functies in versie 3.1 te stabiliseren, en evenzo een nieuwe ontwikkelingskernel 3.3 vertakte van 3.2 om plaats te maken voor nieuwe functies die vervolgens zouden worden geïntroduceerd in Linux 3.4.

Beginnend met Linux-kernel 2.4, gaf een vierde variabele in de kernelnaam de patch-releases aan. Je kunt zeggen dat versie 2.4.37.10 de tiende patchrelease voor kernel 2.4.37 is.

Een patchrelease betekent niet het aantal problemen dat in een kernelrelease is gepatcht. In plaats daarvan telt het het aantal keren dat een bijgewerkte kernel is uitgebracht nadat de gevonden problemen zijn gepatcht.

Tot Linux 2.6 werd dit versiebeheersysteem gebruikt en het was effectief in het onderscheiden van een specifieke versie van andere. Het toevoegen van revisietellingen en patchreleases in het versienummer was beschrijvend, maar het betekende langere en complexere kernelversies. En toch was er weer een nieuw en beter plan nodig.

Hoe worden Linux-kernelversies nu genoemd?

Met Linux-versie 3.0 liet Linus de vierde variabele van het versienummer vallen. Nu wordt de kernelversie gevormd volgens de syntaxis: abc, waarbij a, b en c respectievelijk de hoofdrelease, minor release en revisietelling zijn. Dit versiebeheerschema is vergelijkbaar met het schema dat tussen de 1.0 en 2.4 kernelreleases wordt gebruikt.

Door de vooruitgang in versiebeheersystemen, konden bijdragers nu naadloos werken aan stabiele branches en nieuwe functies toevoegen zonder per ongeluk de reeds werkende, stabiele releases te vernietigen. Daarom is het gebruik van even en oneven secundaire versienummers voor stabiele en productievertakkingen van de kernel werd overbodig na de introductie van kernelversie 4.0 en de eerste LTS-release (4.1) in de 4.x serie had een oneven klein versienummer.

Mogelijk ziet u ook enkele tekens aan het einde van het versienummer, zoals: rcX. Review kandidaten (of "rc" in het kort) zijn preview releases en pre-patch versies van de kernel die de ontwikkelaars moeten patchen om bugs en andere problemen te verwijderen. Deze zijn een vervanging voor de ontwikkelingsreleases die voorheen werden aangeduid met een oneven klein versienummer.

Hoewel deze releases specifiek zijn gereserveerd voor kernelontwikkelaars, zodat ze de gemelde problemen kunnen oplossen en nieuwe functies kunnen implementeren, kunt u ook: download en test deze kandidaten voor kernelrecensies als je wilt, maar het wordt over het algemeen niet aanbevolen, aangezien dit het grootste deel van de ontwikkeling is gebeurt. De nieuwste preview-versie van de kernel op het moment van schrijven is 5.19-rc6.

Om nieuwe versies te maken, wordt de voorgaande variabele verhoogd wanneer de waarde van een variabele een bepaald aantal bereikt. De hoofdversie wordt bijvoorbeeld bijgewerkt naar het volgende cijfer wanneer het aantal secundaire versies dicht bij 20 komt.

Linus vermeld in zijn 5.0 kernel-ontwikkelmail dat hij het hoofdnummer eenvoudig op vijf heeft gezet omdat het aantal kleine vrijlatingen te groot werd om op vingers en tenen te tellen (20!). Evenzo, volgens kernel.org, wordt het hoofdversienummer verhoogd wanneer het nummer na de eerste punt "te groot" begint te lijken. De definitieve kernelversie in de 3.x serie was 3.19 en de laatste major 4.x kernel-serie was 4.20, die vervolgens werd verhoogd tot 5.0.

Sinds versie 3.0, de Linux-kernel heeft dit versiebeheerschema gevolgd en het heeft bewezen efficiënt te zijn gedurende drie belangrijke kernelreleases (versies 3.x, 4.x, en 5.x).

Een Linux Kernel-release identificeren met behulp van versienummers

Gezien het enorme aantal Linux-kernelversies dat is uitgebracht, is er behoefte aan een goed systeem om een ​​specifieke versie te identificeren en te onderscheiden van de andere. Met het nieuwe kernelversieschema kunnen kernelversies nu effectief worden geïdentificeerd en vergeleken, en het is gemakkelijk om te weten welke kernelversie de nieuwste is en welke eerder is uitgebracht.

Als u de Linux-kernelversie wilt controleren die momenteel op uw systeem is geïnstalleerd, kunt u dat doen met uname, een Linux-opdracht waarmee u systeemgerelateerde informatie kunt weergeven. Afhankelijk van de distro die je gebruikt, kan het versienummer dat wordt weergegeven door uname anders zijn dan de daadwerkelijke Linux-kernelversies.