Quali sono le differenze nel set di funzionalità tra il kernel Linux principale e il kernel utilizzato da Ubuntu? Perché Ubuntu si ramifica dal kernel principale invece di utilizzare direttamente il kernel principale?
Quali sono le differenze nel set di funzionalità tra il kernel Linux principale e il kernel utilizzato da Ubuntu? Perché Ubuntu si ramifica dal kernel principale invece di utilizzare direttamente il kernel principale?
Risposte:
I kernel upstream (riferiti, quando li forniamo, come kernel mainline ) sono semplicemente il kernel upstream per la versione specificata, con pochissime modifiche alla configurazione aggiunte in modo che ci sia un problema minimo nell'usarli su un'installazione Ubuntu.
La differenza tra questi kernel e quello rilasciato per una versione di Ubuntu sono numerose altre modifiche alla configurazione , patch di origine * e, in alcuni casi, compilate in moduli e supporto hardware.
Molto poco del codice sottostante è diverso dall'upstream diverso da quello indicato sopra.
*: le patch di origine sono, nella maggior parte dei casi, modifiche al comportamento predefinito del kernel. Questi non si limitano a: blacklist, tabelle di quirks video, moduli incorporati, modifiche alla fonte che non sono ancora nella struttura di Linus o nella coda stabile, ecc.
Le patch di origine sono ciò che il team utilizza per introdurre le opzioni di configurazione necessarie per supportare la vasta gamma di software rilasciato per una versione specifica di Ubuntu. In molti casi sono necessari per il corretto funzionamento di tali applicazioni. La differenza fondamentale tra questo e il kernel upstream è che il kernel upstream puro non è specifico per la distribuzione.
Pertanto, le configurazioni non sono orientate a garantire che determinate applicazioni funzionino come previsto. Queste configurazioni esistono per fornire quel livello di modificabilità al kernel per cose specifiche. Inoltre, l'uso di stranezze ci consente di identificare l'hardware che richiede elementi specifici dal kernel che possiamo impostare una volta rilevati.
Questa è una delle principali caratteristiche di Linux ed è uno dei motivi per cui negli anni siamo stati in grado di funzionare su così tante piattaforme diverse. Ci sono momenti in cui le stranezze e le patch di origine causano problemi tra loro. Durante questi periodi, lavoriamo per mitigare i problemi con le modifiche al comportamento del kernel sottostante. In molti casi questi cambiamenti non lo rendono a monte fino a dopo il rilascio dovuto in gran parte alla necessità di codificare correttamente la correzione, documentare cosa è stato fatto, testare le modifiche e condurre vari altri test e prove di stress.
In questi casi, le patch che sono dirette verso monte vengono portate come patch sorgente allo stesso modo pre-stabile e patch che non sono ancora nell'albero di Linus. Il collegamento alle specifiche di revisione delta dovrebbe servire da riferimento per ciò che è stato rivisto per l'attuale versione Natty del kernel Ubuntu.
Il kernel di Linux è in costante sviluppo. Quando impacchettano la loro prossima versione, ad un certo punto il team di Ubuntu deve dire: "OK, prenderemo il kernel così com'è ora" Di tanto in tanto potresti avere un nuovo kernel reso disponibile nei repository da usare in la distribuzione attuale.
Questo posto può essere interessante da leggere ma può essere altamente tecnico. Potresti essere in grado di capire cosa sta cucinando a monte e cosa ti stai perdendo (ma alla fine riuscirai a capire).
Va notato, come qualsiasi software, che un kernel è soggetto a bug-driven ed è spesso il caso che si verifichino regressioni (nuove cose aggiunte interrompono la vecchia funzionalità). Oggi i kernel IMHO non mi entusiasmano in termini di nuove funzionalità. Avrei abbastanza felicemente eseguito un kernel che aveva due anni per esempio.
Puoi scaricare l'albero git di Ubuntu e utilizzare un visualizzatore grafico per visualizzare l'albero git. Questo ti mostrerà tutte le patch di Ubuntu. https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide
Un'altra possibile opzione, iscriviti alla mailing list del kernel ubuntu. Tutto il loro lavoro è pubblicato lì e puoi avere un'idea di quello che fanno. Ma è un traffico intenso e IMHO, fastidioso. (Ma hey, è la loro lista)