GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il vantaggio di compilare il proprio kernel Linux?

Nella mia mente, l'unico vantaggio che ottieni dalla compilazione del tuo kernel Linux è:

Impari come compilare il tuo kernel Linux.

Non è qualcosa di cui hai bisogno da fare per più velocità / memoria / xxx qualunque cosa. È una cosa preziosa da fare se questa è la fase in cui senti di essere nel tuo sviluppo. Se vuoi avere una comprensione più profonda di cosa sia tutta questa faccenda "open source", su come e quali siano le diverse parti del kernel, allora dovresti provarci. Se stai solo cercando di accelerare il tempo di avvio di 3 secondi, allora ... qual è il punto ... vai a comprare un SSD. Se sei curioso, se vuoi imparare, compilare il tuo kernel è un'ottima idea e probabilmente ne trarrai molto vantaggio.

Detto questo, ci sono alcuni motivi specifici per cui sarebbe opportuno compilare il proprio kernel (come diverse persone hanno sottolineato nelle altre risposte). Generalmente questi nascono da un'esigenza specifica che hai per un risultato specifico, ad esempio:

  • Devo far avviare/eseguire il sistema su hardware con risorse limitate
  • Devo testare una patch e fornire feedback agli sviluppatori
  • Devo disabilitare qualcosa che sta causando un conflitto
  • Devo sviluppare il kernel Linux
  • Devo abilitare il supporto per il mio hardware non supportato
  • Devo migliorare le prestazioni di x perché sto raggiungendo i limiti attuali del sistema (e so cosa sto facendo)

Il problema sta nel pensare che ci sia un vantaggio intrinseco nel compilare il proprio kernel quando tutto funziona già come dovrebbe essere, e non penso che ci sia. Sebbene tu possa passare innumerevoli ore a disabilitare cose che non ti servono e a modificare quelle che sono modificabili, il fatto è che il kernel Linux è già abbastanza ben messo a punto (dalla tua distribuzione) per la maggior parte situazioni utente.


La maggior parte degli utenti non ha bisogno di compilare il proprio kernel, la loro distribuzione ha fatto questo lavoro per loro. Di solito le distribuzioni includono una serie di patch da integrare con alcune parti del modo in cui funziona la distribuzione, backport di driver di dispositivo e correzioni da versioni più recenti, ma non rilasciate, del kernel o funzionalità sperimentate con i propri utenti.

Quando compili il tuo kernel, hai un paio di opzioni, puoi compilare un kernel Linus Torvalds ufficiale, questo non includerà nessuna delle patch o personalizzazioni che sono state aggiunte dalla tua distribuzione (che possono essere buone o cattive) o puoi usa il tuo strumento di ricostruzione della distribuzione per costruire il tuo kernel.

I motivi per cui potresti voler ricostruire il tuo kernel includono:

  • Correggere bug o aggiungere una funzionalità specifica a un sistema di produzione, dove non puoi davvero rischiare di aggiornare l'intero kernel per una singola correzione o due.
  • Per provare un particolare driver di dispositivo o una nuova funzionalità
  • Per estendere il kernel, lavoraci sopra
  • test di alcuni moduli o funzioni "Alpha".

Molti sviluppatori lo utilizzano anche per creare versioni personalizzate del kernel per sistemi embedded o settop box in cui necessitano di driver di dispositivo speciali o desiderano rimuovere funzionalità di cui non hanno bisogno.


La compilazione del kernel da soli ti consente di includere solo le parti rilevanti per il tuo computer, il che lo rende più piccolo e potenzialmente più veloce, specialmente al momento dell'avvio. I kernel generici devono includere il supporto per quanto più hardware possibile; al momento dell'avvio rilevano quale hardware è collegato al tuo computer e caricano i moduli appropriati, ma ci vuole tempo per fare tutto ciò e hanno bisogno di caricare moduli dinamici, piuttosto che avere il codice inserito direttamente nel kernel. Non c'è motivo per cui il tuo kernel supporti 400 CPU diverse quando ce n'è solo una nel tuo computer, o per supportare i mouse bluetooth se non ne hai uno, è tutto spazio sprecato che puoi liberare


Linux
  1. Linux vs. Unix:qual è la differenza?

  2. Buon compleanno al kernel Linux:qual è la tua versione preferita?

  3. Il ciclo di vita dei test del kernel Linux

  4. Che cos'è il kernel Linux e dovresti aggiornare al kernel più recente?

  5. Linux:cosa implica il layout della memoria del kernel virtuale in Dmesg?

Pianifica il tuo calendario delle vacanze dalla riga di comando di Linux

Qual ​​è la differenza tra i kernel macOS e Linux

Che cos'è la shell in Linux?

Cosa fare in caso di panico del kernel Linux

Qual è il comando kill in Linux?

Cos'è un kernel contaminato in Linux?