Cosa impedisce alle distribuzioni di utilizzare l'ultimo kernel Linux? [chiuso]


13

La maggior parte delle distribuzioni Linux viene fornita con una determinata versione del kernel e la aggiorna solo sulle versioni point ( x.y.zto x.y.(z+1)) e per gli aggiornamenti di sicurezza.

D'altra parte, so che Linux ha una politica molto severa sul non cambiare l'ABI del kernel e non interrompere mai lo spazio utente. In effetti, Linus ha avuto molti capricci pubblici diretti agli sviluppatori che volevano (intenzionalmente o accidentalmente) cambiare il kernel in modi non compatibili con le versioni precedenti.

Non capisco perché le distribuzioni usano kernel "stabili" invece di aggiornare sempre all'ultimo kernel. Questa non è una critica, sono solo curioso del motivo.


1
perché gli ultimi kernel mancano di test. può contenere bug che possono influire sulla stabilità del sistema e la stabilità è l'obiettivo principale di qualsiasi manutentore della distribuzione.

Risposte:


8

Le interfacce di chiamata del sistema del kernel Linux sono molto stabili. Ma il kernel ha altre interfacce che non sono sempre compatibili.

  • /procè per lo più stabile, ma ci sono stati alcuni cambiamenti in passato (ad es. alcune interfacce si spostano a un /syspo 'di tempo dopo la /syscreazione).
  • Diverse interfacce relative al dispositivo sono state rimosse in passato.
  • /syscontiene alcune interfacce stabili (elencate in Documentation/ABI/stable) e altre che non lo sono. Non dovresti usare quelli che non lo sono, ma a volte le persone lo fanno e un semplice aggiornamento di sicurezza e stabilità non dovrebbe spezzare le cose per loro.
  • Ci sono state incompatibilità con i modutils in passato (kernel più recenti che richiedono una versione più recente di modutils), anche se penso che sia stato un po 'di tempo fa.
  • Ci sono state anche incompatibilità rispetto al processo di avvio in alcune configurazioni insolite. Anche aumentare le dimensioni del kernel potrebbe causare problemi su alcuni sistemi embedded.
  • Mentre le interfacce esterne del kernel sono piuttosto stabili, le interfacce interne non lo sono. La regola per le interfacce interne è che chiunque può romperle fintanto che correggono gli usi interni, ma la riparazione dei moduli di terze parti è responsabilità dell'autore di tali moduli. Complessivamente molte installazioni eseguono moduli di terze parti: driver extra per hardware non supportato dal kernel (se l'hardware è supportato dal nuovo kernel, va bene, ma cosa succede se non lo è), driver proprietari ( mentre il mondo sarebbe un posto migliore se tutti i driver fossero open source, questo non è il caso; per esempio, se vuoi buone prestazioni della GPU 3D, sei praticamente bloccato con i driver proprietari), ecc.
  • Alcune persone hanno bisogno di ricompilare il proprio kernel o alcuni moduli di terze parti. I kernel più recenti spesso non possono essere compilati con compilatori più vecchi.

Tutto sommato, il motivo principale per non passare a una versione del kernel più recente sono i moduli di terze parti.

Alcune distribuzioni offrono comunque kernel recenti come opzione. Ad esempio, Debian rende i kernel dai test disponibili agli utenti della versione stabile tramite backport. Allo stesso modo, su Ubuntu LTS sono disponibili kernel dalle versioni più recenti di Ubuntu, ma non utilizzati di default. Ciò è utile soprattutto per le nuove installazioni su hardware non ancora supportate al momento della finalizzazione della distribuzione.


9

Non sto lavorando per una distribuzione, ma posso pensare ad almeno due motivi:

  • Alcune distribuzioni applicano le loro patch personalizzate al kernel che non sono ancora unite in mainline. Ciò significa che per ogni aggiornamento del kernel devono assicurarsi che le loro patch non si rompano e continuino a funzionare correttamente.
  • Anche l'ultima versione stabile del kernel può contenere un bug, le distribuzioni che prendono seriamente l'affidabilità vorranno passare attraverso alcune procedure / processi di test prima di consegnare un kernel ai propri clienti.

2
Le patch specifiche per la distribuzione non sono necessariamente destinate all'upstream, comunque. E l'ultimo kernel upstream conterrà in media più bug rispetto al kernel "stock" testato di una distribuzione. Gran parte di ciò che fa il kernel distribuito da una distribuzione è cercare di scuotere / correggere quanti più bug possibile, senza cambiare il codice più del necessario.
Faheem Mitha,

0

Distribuzioni più conservative seguono (e partecipano attivamente) alle versioni del kernel stabile , per motivi di stabilità. Quelli più avventurosi usano una versione del kernel più o meno dietro l'ultima e la più grande vaniglia, oltre a una spruzzata di patch supportate dal suggerimento di sviluppo (e alcune di quelle coltivate in casa).

L'attuale politica di sviluppo del kernel è che la versione di Linus avanza con nuovi giochi luccicanti e non ha paura dei cambiamenti all'ingrosso. Alcune versioni sono ritenute abbastanza stabili (in termini di sviluppo) per costituire la base per test rigorosi e stabilizzazione, fornendo serie stabili.

Tutto ciò è possibile grazie agli strumenti in uso, ognuno può governare il proprio albero git , mantenere sincronizzati localmente rami e alberi a monte interessanti, pilfer si impegna da altri e condividere liberamente i cambiamenti locali.


La serie kernel stabile non viene scelta in base alla stabilità di una particolare versione, è arbitraria. A partire da quest'anno la serie stable si baserà sulla prima versione rilasciata ogni anno ... Ogni singola versione del kernel dovrebbe essere stabile e non rompere mai la retrocompatibilità.
Stephen Kitt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.