Uno dei più grandi e più veloci progetti open source, il kernel Linux, è composto da circa 53.600 file e quasi 20 milioni di righe di codice. Con oltre 15.600 programmatori che contribuiscono al progetto in tutto il mondo, il kernel Linux segue un modello di manutenzione per la collaborazione.
In questo articolo, fornirò un rapido elenco di controllo dei passaggi necessari per fornire il tuo primo contributo al kernel e guarderò ciò che dovresti sapere prima di inviare una patch. Per uno sguardo più approfondito al processo di invio per contribuire con la tua prima patch, leggi il tutorial KernelNewbies First Kernel Patch.
Contributo al kernel
Fase 1:prepara il tuo sistema.
I passaggi in questo articolo presuppongono che tu abbia i seguenti strumenti sul tuo sistema:
- Editor di testo
- Client di posta elettronica
- Sistema di controllo della versione (ad es. git)
Fase 2:scarica il repository del codice del kernel Linux:
git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
Copia la tua configurazione attuale:
cp /boot/config-`uname -r`* .config
Fase 3:compila/installa il kernel.
make -jX
sudo make modules_install install
Fase 4:crea un ramo e passa ad esso.
git checkout -b first-patch
Fase 5:aggiorna il kernel in modo che punti alla base di codice più recente.
git fetch origin
git rebase origin/staging-testing
Fase 6:apporta una modifica alla base di codice.
Ricompila usando make
comando per assicurarti che la tua modifica non produca errori.
Fase 7:conferma le modifiche e crea una patch.
git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^
L'oggetto è costituito dal percorso del nome del file separato da due punti, seguito da ciò che fa la patch all'imperativo. Dopo una riga vuota arriva la descrizione della patch e il tag firmato obbligatorio e, infine, un diff della tua patch.
Ecco un altro esempio di una semplice patch:
Quindi, invia la patch utilizzando l'e-mail dalla riga di comando (in questo caso, Mutt):
mutt -H /tmp/0001-<whatever your filename is>
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Per conoscere l'elenco dei manutentori a cui inviare la patch, utilizzare lo script get_maintainer.pl.
Cosa sapere prima di inviare la tua prima patch
- L'albero di staging di Greg Kroah-Hartman è un buon posto per inviare la tua prima patch poiché accetta facili patch dai nuovi contributori. Una volta acquisita familiarità con il processo di invio delle patch, è possibile inviare patch specifiche del sottosistema con maggiore complessità.
- Puoi anche iniziare con la correzione dei problemi di stile di codifica nel codice. Per saperne di più, leggi la documentazione sullo stile di codifica del kernel Linux.
- Lo script checkpatch.pl rileva gli errori di stile di codifica per te. Ad esempio, esegui:
perl scripts/checkpatch.pl -f drivers/staging/android/* | less
- Potresti completare le TODO lasciate incomplete dagli sviluppatori:
find drivers/staging -name TODO
- Coccinelle è uno strumento utile per il pattern matching.
- Leggi gli archivi di posta del kernel.
- Scorri il log di linux.git per vedere i commit degli autori precedenti tra cui trarre ispirazione.
- Nota:non inserire post in alto per comunicare con il revisore della tua patch! Ecco un esempio:
Modo sbagliato:
Chris,
Sì, organizziamo l'incontro domani, al secondo piano.
> Ven, 26 aprile 2013 alle 9:25, Chris ha scritto:
> Ehi John, avrei alcune domande:
> 1. Vuoi fissare la riunione di domani?
> 2. A quale piano dell'ufficio?
> 3. A che ora è adatto a te?(Si noti che l'ultima domanda è stata lasciata involontariamente senza risposta nella risposta.)
Modo corretto:
Chris,
Vedi le mie risposte qui sotto...
> Ven, 26 aprile 2013 alle 9:25, Chris ha scritto:
> Ciao John, avrei alcune domande:
> 1. Vuoi programmare la riunione di domani?
Sì, domani va bene.
> 2. A quale piano dell'ufficio?
Manteniamolo al secondo piano.
> 3. A che ora è adatto a te?
Le 09:00 andrebbero bene.(Tutte le domande hanno ricevuto risposta e in questo modo si risparmia tempo di lettura.)
- La sfida Eudyptula è un ottimo modo per imparare le basi del kernel.
Per saperne di più, leggi il tutorial KernelNewbies First Kernel Patch. Dopodiché, se hai ancora domande, chiedi sulla mailing list kernelnewbies o nel canale IRC #kernelnewbies.