Ako ste dulje vrijeme korisnik Linuxa, znali biste da distribucije Linuxa imaju jedinstvene verzije i da svaka verzija ima specifično kodno ime. Linux kernel također ima različite brojeve verzija, koji djeluju kao identifikator za seriju kojoj kernel pripada. Međutim, postoji razlika između načina na koji su verzije kernela formirane ranije i načina na koji ih Linus Torvalds sada naziva.
Na kraju ćete biti bolje upoznati sa shemom verzija Linux kernela i osjećat ćete se bolje udobno čitanje brojeva verzija kernela i prepoznavanje raznih značajki povezanih s a specifično izdanje.
Tradicionalno određivanje verzija kernela Linuxa
Kada je Linus tek počeo razvijati kernel, korišteni sustav verzija se jednostavno sastojao od inkrementirajuće sheme varijabli koja je počela s nulom (0.x). U početku je Linus bio jedini koji je radio na projektu, a ovaj sustav za izradu verzija bio je dovoljan za dokumentiranje i distribuciju novih izdanja kernela.
Evo nekih od izdanja kernela koja su slijedila ovu shemu imenovanja:
Kasnije, kako je sve više programera počelo pridonositi projektu i broj revizija i zakrpa značajno porastao, odlučeno je da ova shema verzija nije prikladna za softver kao što je a zrno. A počevši od verzije 1.0, Linus je usvojio novu shemu s nekoliko dodatnih varijabli.
Uvođenje deskriptivnijeg sustava za određivanje verzija
Godine 1994., s izdavanjem Linux kernela 1.00, Linus je počeo koristiti novi sustav za izradu verzija koji je koristio tri varijable u sintaksi: "a.b.c". Ove varijable (a, b i c) predstavljaju glavno izdanje, manje izdanje i broj revizije za određeno izdanje kernela.
Uzmimo Linux kernel 1.1.95 kao primjer. Možete ga dekodirati kao prvo veliko izdanje, prvo manje izdanje i 95. reviziju.
U to vrijeme, čak i manji brojevi verzija označavali su stabilna izdanja kernela, dok su neparni predstavljali razvojna izdanja. Bilo je važno imati odvojene grane kako bi programeri mogli dodavati i testirati nove značajke u kernelu bez utjecaja na stabilnu granu.
Programeri kernela dodaju i poboljšavaju nove značajke u razvojnoj grani dok ne postane dovoljno stabilan da se objavi kao LTS kernel. LTS kernel 3.2 razvijen je stabilizacijom novih značajki u verziji 3.1, a na sličan način, novi razvojni kernel 3.3 razgranao se od 3.2 kako bi napravio mjesta za nove značajke koje bi zatim bile predstavljene u Linux 3.4.
Počevši od Linux kernela 2.4, četvrta varijabla u nazivu kernela označavala je izdanja zakrpa. Možete reći da je verzija 2.4.37.10 deseto izdanje zakrpe za kernel 2.4.37.
Izdanje zakrpe ne znači broj problema zakrpanih u izdanju kernela. Umjesto toga, broji koliko je puta ažurirana jezgra izdana nakon zakrpa pronađenih problema.
Sve do Linuxa 2.6 koristio se ovaj sustav određivanja verzija i bio je učinkovit u razlikovanju određene verzije od ostalih. Dodavanje broja revizija i izdanja zakrpa u broj verzije bilo je opisno, ali je značilo imati duže i složenije verzije kernela. I opet, bila je potrebna nova i bolja shema.
Kako se sada nazivaju verzije jezgre Linuxa?
S verzijom Linuxa 3.0, Linus je izbacio četvrtu varijablu iz broja verzije. Sada se verzija kernela formira prema sintaksi: a.b.c, gdje su a, b i c broj revizija glavnog izdanja, manjeg izdanja i broja revizija. Ova shema izrade verzija slična je onoj koja se koristi između izdanja kernela 1.0 i 2.4.
Zbog napretka u sustavi kontrole verzija, suradnici sada mogu neprimjetno raditi na stabilnim granama i dodavati nove značajke bez slučajnog uništavanja stabilnih izdanja koja već rade. Stoga, uporaba parnih i neparnih brojeva sporednih verzija za stabilne i proizvodne grane kernel je postao suvišan nakon uvođenja verzije kernela 4.0 i prvog LTS izdanja (4.1) u the 4.x serija je imala neparan manji broj verzije.
Također možete primijetiti neke znakove na kraju broja verzije, kao što je rcX. Kandidati za pregled (ili skraćeno "rc") su izdanja za pregled i verzije kernela prije zakrpa koje programeri trebaju zakrpati kako bi uklonili greške i druge probleme. Ovo su zamjena za razvojna izdanja koja su prethodno bila označena neparnim brojem sporedne verzije.
Iako su ova izdanja posebno rezervirana za programere kernela kako bi mogli popraviti prijavljene probleme i implementirati nove značajke, vi također možete preuzmite i testirajte ove kandidate za recenziju jezgre ako želite, ali to se općenito ne preporučuje s obzirom na to da je ovdje najveći dio razvoja događa se. Najnovija pretpregledna verzija kernela u vrijeme pisanja ovog teksta je 5.19-rc6.
Za stvaranje novih verzija, prethodna varijabla se povećava kada vrijednost varijable dosegne određeni broj. Na primjer, glavna verzija ažurira se na sljedeću znamenku kad god se broj sporedne verzije približi 20.
Linus spomenut u njegov razvojni mail za kernel 5.0 da je jednostavno ažurirao glavni broj na pet jer je broj sporednih izdanja postao prevelik za brojanje na prste ruku i nogu (20!). Slično tome, prema kernel.org, glavni broj verzije se povećava kada broj iza prve točke počne izgledati "preveliko". Konačna verzija kernela u 3.x serija je bila 3.19 i zadnji major 4.x serija kernela bila je 4.20, koja je zatim podignuta na 5.0.
Od verzije 3.0, jezgru Linuxa slijedi ovu shemu izrade verzija i pokazala se učinkovitom za čak tri glavna izdanja kernela (verzije 3.x, 4.x, i 5.x).
Prepoznavanje izdanja Linux kernela pomoću brojeva verzija
Uzimajući u obzir ogroman broj izdanih verzija Linux kernela, postoji potreba za odgovarajućim sustavom za prepoznavanje i razlikovanje određene verzije od ostalih. S novom shemom određivanja verzija kernela, verzije kernela sada se mogu učinkovito identificirati i usporediti, a lako je znati koja je verzija kernela najnovija, a koja je izdana ranije.
Ako želite provjeriti verziju Linux kernela koja je trenutačno instalirana na vašem sustavu, to možete učiniti pomoću uname, Linux naredbe koja vam omogućuje popis informacija vezanih uz sustav. Ovisno o distribuciji koju koristite, broj verzije koji prikazuje uname može se razlikovati od stvarne verzije jezgre Linuxa.