Co uniemożliwia dystrybucjom korzystanie z najnowszego jądra Linux? [Zamknięte]

13

Większość dystrybucji Linuksa jest dostarczana z pewną wersją jądra i aktualizuje ją tylko w wydaniach punktowych ( x.y.zdo x.y.(z+1)) i aktualizacjach bezpieczeństwa.

Z drugiej strony wiem, że Linux ma bardzo surową politykę, aby nie zmieniać ABI jądra i nigdy nie łamać przestrzeni użytkownika. W rzeczywistości Linus miał wiele publicznych napadów złości skierowanych do programistów, którzy chcieli (umyślnie lub przypadkowo) zmienić jądro w sposób niezgodny z poprzednimi wersjami.

Nie rozumiem, dlaczego dystrybucje używają „stabilnych” jąder zamiast zawsze aktualizować do najnowszego jądra. To nie jest krytyka, jestem ciekawy powodu.

imgx64
źródło
1
ponieważ najnowsze jądra nie testują. może zawierać błędy, które mogą wpływać na stabilność systemu, a stabilność jest głównym celem każdego opiekuna dystrybucji.

Odpowiedzi:

8

Interfejsy wywołań systemowych jądra systemu Linux są bardzo stabilne. Ale jądro ma inne interfejsy, które nie zawsze są kompatybilne.

  • /procjest w większości stabilny, ale w przeszłości zaszło kilka zmian (np. niektóre interfejsy przenoszą się w /sysjakiś czas po /sysutworzeniu).
  • W przeszłości usunięto wiele interfejsów związanych z urządzeniami .
  • /syszawiera niektóre stabilne interfejsy (wymienione w Documentation/ABI/stable), a niektóre nie. Nie powinieneś używać tych, które nie są, ale czasami ludzie tak robią, a proste ulepszenie bezpieczeństwa i stabilności nie powinno dla nich zepsuć.
  • W przeszłości występowały niezgodności z modutils (nowsze jądra wymagały nowszej wersji modutils), choć myślę, że to było dawno temu.
  • Wystąpiły również niezgodności dotyczące procesu rozruchu w niektórych nietypowych konfiguracjach. Nawet zwiększenie wielkości jądra może powodować problemy w niektórych systemach wbudowanych.
  • Podczas gdy zewnętrzne interfejsy jądra są dość stabilne, wewnętrzne interfejsy nie są. Zasadą dla wewnętrznych interfejsów jest to, że każdy może je zepsuć, dopóki naprawią wewnętrzne zastosowania, ale za naprawę modułów stron trzecich odpowiedzialny jest autor wspomnianych modułów. Ogólnie w wielu instalacjach działają moduły innych firm: dodatkowe sterowniki dla sprzętu, który nie był obsługiwany przez jądro (jeśli sprzęt jest obsługiwany przez nowe jądro, to dobrze, ale co, jeśli nie jest), zastrzeżone sterowniki ( choć świat byłby lepszym miejscem, gdyby wszystkie sterowniki były typu open source, tak nie jest; na przykład, jeśli chcesz dobrej wydajności GPU, prawie utkniesz z zastrzeżonymi sterownikami) itp.
  • Niektóre osoby muszą ponownie skompilować jądro lub moduły innych firm. Nowszych jąder często nie można skompilować ze starszymi kompilatorami.

Podsumowując, głównym powodem, aby nie przełączać się na nowszą wersję jądra, są moduły innych firm.

Niektóre dystrybucje oferują jednak najnowsze jądra jako opcję. Na przykład Debian udostępnia jądra z testowania użytkownikom stabilnej wersji za pośrednictwem backportów. Podobnie w Ubuntu LTS jądra z nowszych wersji Ubuntu są dostępne, ale nie są domyślnie używane. Jest to szczególnie przydatne w przypadku nowych instalacji na sprzęcie, który nie był jeszcze obsługiwany po sfinalizowaniu dystrybucji.

Gilles „SO- przestań być zły”
źródło
9

Nie pracuję dla dystrybucji, ale mogę wymyślić co najmniej dwa powody:

  • Niektóre dystrybucje stosują swoje niestandardowe łaty do jądra, które nie są jeszcze połączone w linię główną. Oznacza to, że przy każdej aktualizacji jądra muszą upewnić się, że ich łatki niczego nie psują i nadal działają poprawnie.
  • Nawet najnowsza stabilna wersja jądra może zawierać błąd. Dystrybucje, które poważnie traktują niezawodność, będą chciały przejść pewne procedury testowe / procesy przed dostarczeniem jądra swoim klientom.
powtórna rozgrywka
źródło
2
W każdym razie łatki specyficzne dla dystrybucji niekoniecznie są przeznaczone dla użytkowników. A najnowsze jądro upstream zawiera średnio więcej błędów niż jądro testowane przez dystrybucję. Jądro dystrybuowane przez dystrybucję w dużej mierze próbuje wyrzucić / naprawić jak najwięcej błędów, nie zmieniając kodu bardziej niż to konieczne.
Faheem Mitha
0

Bardziej konserwatywne dystrybucje śledzą (i aktywnie uczestniczą) stabilne wersje jądra, ze względu na stabilność. Bardziej ryzykowni używają jednego jądra lub jednej wersji najnowszej i najlepszej wanilii, a także rozprysków łatek przeniesionych z końcówki deweloperskiej (i niektórych domowych).

Obecna polityka rozwoju jądra jest taka, że ​​wersja Linusa wyprzedza błyszczące, nowe zabawki i nie boi się zmian hurtowych. Niektóre wersje są uważane za wystarczająco stabilne (jeśli chodzi o rozwój), aby stanowić podstawę do rygorystycznych testów i stabilizacji, dając stabilne serie.

Wszystko to jest możliwe dzięki używanym narzędziom, każdy może pielęgnować swoje własne drzewo git , utrzymywać ciekawe gałęzie i drzewa zsynchronizowane lokalnie, odszukiwać od innych i swobodnie udostępniać lokalne zmiany.

vonbrand
źródło
Seria stabilnego jądra nie jest wybierana na podstawie stabilności konkretnej wersji, jest arbitralna. Od tego roku seria stabilna będzie oparta na pierwszej wersji wydawanej każdego roku ... Każde wydanie jądra powinno być stabilne i nigdy nie łamać wstecznej kompatybilności.
Stephen Kitt