Jeśli jesteś użytkownikiem Linuksa od dłuższego czasu, wiesz, że dystrybucje Linuksa mają unikalne wersje, a każda wersja ma określony kryptonim. Jądro Linuksa ma również różne numery wersji, które pełnią rolę identyfikatora serii, do której należy jądro. Jest jednak różnica między wcześniejszym tworzeniem wersji jądra, a tym, jak Linus Torvalds nazywa je teraz.
Pod koniec będziesz lepiej zaznajomiony ze schematem wersjonowania jądra Linuksa i poczujesz więcej wygodne odczytywanie numerów wersji jądra i identyfikowanie różnych funkcji związanych z a konkretne wydanie.
Tradycyjne wersjonowanie jądra Linuksa
Kiedy Linus po raz pierwszy zaczął opracowywać jądro, używany system wersjonowania składał się po prostu z inkrementacyjnego schematu zmiennych zaczynającego się od zera (0.x). Początkowo Linus był jedynym pracującym nad projektem, a ten system wersjonowania wystarczał do dokumentowania i dystrybucji nowych wydań jądra.
Oto niektóre z wydań jądra, które były zgodne z tym schematem nazewnictwa:
Później, gdy coraz więcej programistów zaczęło przyczyniać się do projektu i liczby poprawek i poprawek znacznie wzrosła, zdecydowano, że ten schemat wersjonowania nie jest odpowiedni dla oprogramowania takiego jak jądro. A począwszy od wersji 1.0 Linus przyjął nowy schemat z kilkoma dodatkowymi zmiennymi.
Wprowadzenie bardziej opisowego systemu wersjonowania
W 1994 roku, wraz z wydaniem jądra Linuksa 1.00, Linus zaczął używać nowego systemu wersjonowania, który wykorzystywał trzy zmienne w składni: "ABC". Te zmienne (a, b i c) reprezentują odpowiednio wydanie główne, wydanie pomocnicze i numer rewizji dla konkretnego wydania jądra.
Weźmy na przykład jądro Linuksa 1.1.95. Możesz go zdekodować jako pierwsze wydanie główne, pierwsze wydanie pomocnicze i 95. wersję.
W tamtym czasie nawet mniejsze numery wersji oznaczały wydania stabilne jądra, podczas gdy nieparzyste oznaczały wydania rozwojowe. Ważne było posiadanie osobnych gałęzi, aby programiści mogli dodawać i testować nowe funkcje w jądrze bez wpływu na stabilną gałąź.
Deweloperzy jądra dodają i ulepszają nowe funkcje w gałęzi programistycznej, dopóki nie stanie się ona wystarczająco stabilna, aby można ją było wydać jako jądro LTS. Jądro LTS 3.2 zostało opracowane przez ustabilizowanie nowych funkcji w wersji 3.1 i podobnie, nowe jądra deweloperskie 3.3 rozgałęzione z 3.2, aby zrobić miejsce dla nowych funkcji, które zostaną następnie wprowadzone w Linux 3.4.
Począwszy od jądra Linuksa 2.4, czwarta zmienna w nazwie jądra oznaczała wydania łat. Można powiedzieć, że wersja 2.4.37.10 jest dziesiątym wydaniem poprawki do jądra 2.4.37.
Wydanie łaty nie oznacza liczby problemów załatanych w wydaniu jądra. Zamiast tego zlicza, ile razy zaktualizowane jądro zostało wydane po załataniu znalezionych problemów.
Aż do Linuksa 2.6 ten system wersjonowania był używany i skutecznie odróżniał konkretną wersję od innych. Dodanie liczby wersji i wydań poprawek w numerze wersji było opisowe, ale oznaczało posiadanie dłuższych i bardziej złożonych wersji jądra. I znowu potrzebny był nowy, lepszy schemat.
Jak są teraz nazywane wersje jądra Linuksa?
W Linuksie w wersji 3.0 Linus usunął czwartą zmienną z numeru wersji. Teraz wersja jądra jest tworzona zgodnie ze składnią: ABC, gdzie a, b i c to odpowiednio wersja główna, wersja podrzędna i liczba wersji. Ten schemat wersjonowania jest podobny do tego używanego między wydaniami jądra 1.0 i 2.4.
Ze względu na postępy w systemy kontroli wersji, współtwórcy mogli teraz bezproblemowo pracować na stabilnych gałęziach i dodawać nowe funkcje bez przypadkowego niszczenia już działających, stabilnych wersji. Dlatego stosowanie parzystych i nieparzystych podrzędnych numerów wersji dla gałęzi stabilnych i produkcyjnych jądro stało się zbędne po wprowadzeniu wersji jądra 4.0 i pierwszej wersji LTS (4.1) w ten 4.x seria miała dziwny numer wersji pomocniczej.
Możesz również zauważyć kilka znaków na końcu numeru wersji, na przykład rcX. Kandydaci do przeglądu (lub w skrócie „rc”) to wydania przedpremierowe i przed-łatowe wersje jądra, które programiści muszą załatać, aby usunąć błędy i inne problemy. Są zamiennikiem wydań rozwojowych, które wcześniej były oznaczone dziwnym numerem wersji pomocniczej.
Chociaż te wydania są specjalnie zarezerwowane dla programistów jądra, aby mogli naprawić zgłoszone problemy i zaimplementować nowe funkcje, możesz również pobierz i przetestuj tych kandydatów do przeglądu jądra, jeśli chcesz, ale generalnie nie jest to zalecane, biorąc pod uwagę, że jest to miejsce, w którym większość rozwoju dzieje się. Najnowsza przedpremierowa wersja jądra w momencie pisania tego tekstu to 5.19-rc6.
Aby utworzyć nowe wersje, poprzednia zmienna jest inkrementowana, gdy wartość zmiennej osiągnie określoną liczbę. Na przykład wersja główna jest aktualizowana do następnej cyfry, gdy liczba wersji podrzędnych zbliża się do 20.
Linus wspomniany w jego poczta programistyczna jądra 5.0 że po prostu zaktualizował główną liczbę do pięciu, ponieważ liczba mniejszych wydań stała się zbyt duża, aby policzyć na palcach rąk i nóg (20!). Podobnie, według kernel.org, główny numer wersji jest zwiększany, gdy liczba po pierwszej kropce zaczyna wyglądać na „zbyt dużą”. Ostateczna wersja jądra w 3.x seria była 3.19 i ostatnia major 4.x seria jądra wynosiła 4,20, a następnie została podniesiona do 5,0.
Od wersji 3.0, jądro Linuksa stosował ten schemat wersjonowania i okazał się skuteczny od trzech głównych wydań jądra (wersje 3.x, 4.x, oraz 5.x).
Identyfikowanie wydania jądra systemu Linux za pomocą numerów wersji
Biorąc pod uwagę samą liczbę wydanych wersji jądra Linuksa, istnieje potrzeba odpowiedniego systemu do identyfikacji i odróżnienia konkretnej wersji od innych. Dzięki nowemu schematowi wersjonowania jądra, wersje jądra mogą być teraz skutecznie identyfikowane i porównywane, a także łatwo jest stwierdzić, która wersja jądra jest najnowsza, a która została wydana wcześniej.
Jeśli chcesz sprawdzić wersję jądra Linuksa aktualnie zainstalowaną w twoim systemie, możesz to zrobić za pomocą uname, polecenia Linuksa, które pozwala wyświetlić informacje związane z systemem. W zależności od używanej dystrybucji, numer wersji wyświetlany przez uname może być inny niż rzeczywiste wersje jądra Linux.