xref: /OK3568_Linux_fs/kernel/Documentation/translations/it_IT/process/howto.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. include:: ../disclaimer-ita.rst
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun:Original: :ref:`Documentation/process/howto.rst <process_howto>`
4*4882a593Smuzhiyun:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it>
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun.. _it_process_howto:
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunCome partecipare allo sviluppo del kernel Linux
9*4882a593Smuzhiyun===============================================
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunQuesto è il documento fulcro di quanto trattato sull'argomento.
12*4882a593SmuzhiyunEsso contiene le istruzioni su come diventare uno sviluppatore
13*4882a593Smuzhiyundel kernel Linux e spiega come lavorare con la comunità di
14*4882a593Smuzhiyunsviluppo kernel Linux. Il documento non tratterà alcun aspetto
15*4882a593Smuzhiyuntecnico relativo alla programmazione del kernel, ma vi aiuterà
16*4882a593Smuzhiyunindirizzandovi sulla corretta strada.
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunSe qualsiasi cosa presente in questo documento diventasse obsoleta,
19*4882a593Smuzhiyunvi preghiamo di inviare le correzioni agli amministratori di questo
20*4882a593Smuzhiyunfile, indicati in fondo al presente documento.
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunIntroduzione
23*4882a593Smuzhiyun------------
24*4882a593SmuzhiyunDunque, volete imparare come diventare sviluppatori del kernel Linux?
25*4882a593SmuzhiyunO vi è stato detto dal vostro capo, "Vai, scrivi un driver Linux per
26*4882a593Smuzhiyunquesto dispositivo". Bene, l'obbiettivo di questo documento è quello
27*4882a593Smuzhiyundi insegnarvi tutto ciò che dovete sapere per raggiungere il vostro
28*4882a593Smuzhiyunscopo descrivendo il procedimento da seguire e consigliandovi
29*4882a593Smuzhiyunsu come lavorare con la comunità. Il documento cercherà, inoltre,
30*4882a593Smuzhiyundi spiegare alcune delle ragioni per le quali la comunità lavora in un
31*4882a593Smuzhiyunmodo suo particolare.
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunIl kernel è scritto prevalentemente nel linguaggio C con alcune parti
34*4882a593Smuzhiyunspecifiche dell'architettura scritte in linguaggio assembly.
35*4882a593SmuzhiyunPer lo sviluppo kernel è richiesta una buona conoscenza del linguaggio C.
36*4882a593SmuzhiyunL'assembly (di qualsiasi architettura) non è richiesto, a meno che non
37*4882a593Smuzhiyunpensiate di fare dello sviluppo di basso livello per un'architettura.
38*4882a593SmuzhiyunSebbene essi non siano un buon sostituto ad un solido studio del
39*4882a593Smuzhiyunlinguaggio C o ad anni di esperienza, i seguenti libri sono, se non
40*4882a593Smuzhiyunaltro, utili riferimenti:
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun- "The C Programming Language" di Kernighan e Ritchie [Prentice Hall]
43*4882a593Smuzhiyun- "Practical C Programming" di Steve Oualline [O'Reilly]
44*4882a593Smuzhiyun- "C:  A Reference Manual" di Harbison and Steele [Prentice Hall]
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunIl kernel è stato scritto usando GNU C e la toolchain GNU.
47*4882a593SmuzhiyunSebbene si attenga allo standard ISO C89, esso utilizza una serie di
48*4882a593Smuzhiyunestensioni che non sono previste in questo standard. Il kernel è un
49*4882a593Smuzhiyunambiente C indipendente, che non ha alcuna dipendenza dalle librerie
50*4882a593SmuzhiyunC standard, così alcune parti del C standard non sono supportate.
51*4882a593SmuzhiyunLe divisioni ``long long`` e numeri in virgola mobile non sono permessi.
52*4882a593SmuzhiyunQualche volta è difficile comprendere gli assunti che il kernel ha
53*4882a593Smuzhiyunriguardo gli strumenti e le estensioni in uso, e sfortunatamente non
54*4882a593Smuzhiyunesiste alcuna indicazione definitiva. Per maggiori informazioni, controllate,
55*4882a593Smuzhiyunla pagina `info gcc`.
56*4882a593Smuzhiyun
57*4882a593SmuzhiyunTenete a mente che state cercando di apprendere come lavorare con la comunità
58*4882a593Smuzhiyundi sviluppo già esistente. Questo è un gruppo eterogeneo di persone, con alti
59*4882a593Smuzhiyunstandard di codifica, di stile e di procedura. Questi standard sono stati
60*4882a593Smuzhiyuncreati nel corso del tempo basandosi su quanto hanno riscontrato funzionare al
61*4882a593Smuzhiyunmeglio per un squadra così grande e geograficamente sparsa. Cercate di
62*4882a593Smuzhiyunimparare, in anticipo, il più possibile circa questi standard, poichè ben
63*4882a593Smuzhiyunspiegati; non aspettatevi che gli altri si adattino al vostro modo di fare
64*4882a593Smuzhiyuno a quello della vostra azienda.
65*4882a593Smuzhiyun
66*4882a593SmuzhiyunNote legali
67*4882a593Smuzhiyun------------
68*4882a593SmuzhiyunIl codice sorgente del kernel Linux è rilasciato sotto GPL. Siete pregati
69*4882a593Smuzhiyundi visionare il file, COPYING, presente nella cartella principale dei
70*4882a593Smuzhiyunsorgente, per eventuali dettagli sulla licenza. Se avete ulteriori domande
71*4882a593Smuzhiyunsulla licenza, contattate un avvocato, non chiedete sulle liste di discussione
72*4882a593Smuzhiyundel kernel Linux. Le persone presenti in queste liste non sono avvocati,
73*4882a593Smuzhiyune non dovreste basarvi sulle loro dichiarazioni in materia giuridica.
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunPer domande più frequenti e risposte sulla licenza GPL, guardare:
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun	https://www.gnu.org/licenses/gpl-faq.html
78*4882a593Smuzhiyun
79*4882a593SmuzhiyunDocumentazione
80*4882a593Smuzhiyun--------------
81*4882a593SmuzhiyunI sorgenti del kernel Linux hanno una vasta base di documenti che vi
82*4882a593Smuzhiyuninsegneranno come interagire con la comunità del kernel. Quando nuove
83*4882a593Smuzhiyunfunzionalità vengono aggiunte al kernel, si raccomanda di aggiungere anche i
84*4882a593Smuzhiyunrelativi file di documentatione che spiegano come usarele.
85*4882a593SmuzhiyunQuando un cambiamento del kernel genera anche un cambiamento nell'interfaccia
86*4882a593Smuzhiyuncon lo spazio utente, è raccomandabile che inviate una notifica o una
87*4882a593Smuzhiyuncorrezione alle pagine *man* spiegando tale modifica agli amministratori di
88*4882a593Smuzhiyunqueste pagine all'indirizzo mtk.manpages@gmail.com, aggiungendo
89*4882a593Smuzhiyunin CC la lista linux-api@vger.kernel.org.
90*4882a593Smuzhiyun
91*4882a593SmuzhiyunDi seguito una lista di file che sono presenti nei sorgente del kernel e che
92*4882a593Smuzhiyunè richiesto che voi leggiate:
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/admin-guide/README.rst <it_readme>`
95*4882a593Smuzhiyun    Questo file da una piccola anteprima del kernel Linux e descrive il
96*4882a593Smuzhiyun    minimo necessario per configurare e generare il kernel. I novizi
97*4882a593Smuzhiyun    del kernel dovrebbero iniziare da qui.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/changes.rst <it_changes>`
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun    Questo file fornisce una lista dei pacchetti software necessari
102*4882a593Smuzhiyun    a compilare e far funzionare il kernel con successo.
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/coding-style.rst <it_codingstyle>`
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun    Questo file descrive lo stile della codifica per il kernel Linux,
107*4882a593Smuzhiyun    e parte delle motivazioni che ne sono alla base. Tutto il nuovo codice deve
108*4882a593Smuzhiyun    seguire le linee guida in questo documento. Molti amministratori
109*4882a593Smuzhiyun    accetteranno patch solo se queste osserveranno tali regole, e molte
110*4882a593Smuzhiyun    persone revisioneranno il codice solo se scritto nello stile appropriato.
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>` e
113*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/submitting-drivers.rst <it_submittingdrivers>`
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun    Questo file descrive dettagliatamente come creare ed inviare una patch
116*4882a593Smuzhiyun    con successo, includendo (ma non solo questo):
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun       - Contenuto delle email
119*4882a593Smuzhiyun       - Formato delle email
120*4882a593Smuzhiyun       - I destinatari delle email
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun    Seguire tali regole non garantirà il successo (tutte le patch sono soggette
123*4882a593Smuzhiyun    a controlli realitivi a contenuto e stile), ma non seguirle lo precluderà
124*4882a593Smuzhiyun    sempre.
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun    Altre ottime descrizioni di come creare buone patch sono:
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun	"The Perfect Patch"
129*4882a593Smuzhiyun		https://www.ozlabs.org/~akpm/stuff/tpp.txt
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun	"Linux kernel patch submission format"
132*4882a593Smuzhiyun		https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/stable-api-nonsense.rst <it_stable_api_nonsense>`
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun    Questo file descrive la motivazioni sottostanti la conscia decisione di
137*4882a593Smuzhiyun    non avere un API stabile all'interno del kernel, incluso cose come:
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun      - Sottosistemi shim-layers (per compatibilità?)
140*4882a593Smuzhiyun      - Portabilità fra Sistemi Operativi dei driver.
141*4882a593Smuzhiyun      - Attenuare i rapidi cambiamenti all'interno dei sorgenti del kernel
142*4882a593Smuzhiyun        (o prevenirli)
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun    Questo documento è vitale per la comprensione della filosifia alla base
145*4882a593Smuzhiyun    dello sviluppo di Linux ed è molto importante per le persone che arrivano
146*4882a593Smuzhiyun    da esperienze con altri Sistemi Operativi.
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/admin-guide/security-bugs.rst <it_securitybugs>`
149*4882a593Smuzhiyun    Se ritenete di aver trovato un problema di sicurezza nel kernel Linux,
150*4882a593Smuzhiyun    seguite i passaggi scritti in questo documento per notificarlo agli
151*4882a593Smuzhiyun    sviluppatori del kernel, ed aiutare la risoluzione del problema.
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/management-style.rst <it_managementstyle>`
154*4882a593Smuzhiyun    Questo documento descrive come i manutentori del kernel Linux operano
155*4882a593Smuzhiyun    e la filosofia comune alla base del loro metodo.  Questa è un'importante
156*4882a593Smuzhiyun    lettura per tutti coloro che sono nuovi allo sviluppo del kernel (o per
157*4882a593Smuzhiyun    chi è semplicemente curioso), poiché risolve molti dei più comuni
158*4882a593Smuzhiyun    fraintendimenti e confusioni dovuti al particolare comportamento dei
159*4882a593Smuzhiyun    manutentori del kernel.
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/stable-kernel-rules.rst <it_stable_kernel_rules>`
162*4882a593Smuzhiyun    Questo file descrive le regole sulle quali vengono basati i rilasci del
163*4882a593Smuzhiyun    kernel, e spiega cosa fare se si vuole che una modifica venga inserita
164*4882a593Smuzhiyun    in uno di questi rilasci.
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/kernel-docs.rst <it_kernel_docs>`
167*4882a593Smuzhiyun    Una lista di documenti pertinenti allo sviluppo del kernel.
168*4882a593Smuzhiyun    Per favore consultate questa lista se non trovate ciò che cercate nella
169*4882a593Smuzhiyun    documentazione interna del kernel.
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun  :ref:`Documentation/translations/it_IT/process/applying-patches.rst <it_applying_patches>`
172*4882a593Smuzhiyun    Una buona introduzione che descrivere esattamente cos'è una patch e come
173*4882a593Smuzhiyun    applicarla ai differenti rami di sviluppo del kernel.
174*4882a593Smuzhiyun
175*4882a593SmuzhiyunIl kernel inoltre ha un vasto numero di documenti che possono essere
176*4882a593Smuzhiyunautomaticamente generati dal codice sorgente stesso o da file
177*4882a593SmuzhiyunReStructuredText (ReST), come questo. Esso include una completa
178*4882a593Smuzhiyundescrizione dell'API interna del kernel, e le regole su come gestire la
179*4882a593Smuzhiyunsincronizzazione (locking) correttamente
180*4882a593Smuzhiyun
181*4882a593SmuzhiyunTutte queste tipologie di documenti possono essere generati in PDF o in
182*4882a593SmuzhiyunHTML utilizzando::
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun	make pdfdocs
185*4882a593Smuzhiyun	make htmldocs
186*4882a593Smuzhiyun
187*4882a593Smuzhiyunrispettivamente dalla cartella principale dei sorgenti del kernel.
188*4882a593Smuzhiyun
189*4882a593SmuzhiyunI documenti che impiegano ReST saranno generati nella cartella
190*4882a593SmuzhiyunDocumentation/output.
191*4882a593SmuzhiyunQuesti posso essere generati anche in formato LaTex e ePub con::
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun	make latexdocs
194*4882a593Smuzhiyun	make epubdocs
195*4882a593Smuzhiyun
196*4882a593SmuzhiyunDiventare uno sviluppatore del kernel
197*4882a593Smuzhiyun-------------------------------------
198*4882a593SmuzhiyunSe non sapete nulla sullo sviluppo del kernel Linux, dovreste dare uno
199*4882a593Smuzhiyunsguardo al progetto *Linux KernelNewbies*:
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun	https://kernelnewbies.org
202*4882a593Smuzhiyun
203*4882a593SmuzhiyunEsso prevede un'utile lista di discussione dove potete porre più o meno ogni
204*4882a593Smuzhiyuntipo di quesito relativo ai concetti fondamentali sullo sviluppo del kernel
205*4882a593Smuzhiyun(assicuratevi di cercare negli archivi, prima di chiedere qualcosa alla
206*4882a593Smuzhiyunquale è già stata fornita risposta in passato). Esistono inoltre, un canale IRC
207*4882a593Smuzhiyunche potete usare per formulare domande in tempo reale, e molti documenti utili
208*4882a593Smuzhiyunche vi faciliteranno nell'apprendimento dello sviluppo del kernel Linux.
209*4882a593Smuzhiyun
210*4882a593SmuzhiyunIl sito internet contiene informazioni di base circa l'organizzazione del
211*4882a593Smuzhiyuncodice, sottosistemi e progetti attuali (sia interni che esterni a Linux).
212*4882a593SmuzhiyunEsso descrive, inoltre, informazioni logistiche di base, riguardanti ad esempio
213*4882a593Smuzhiyunla compilazione del kernel e l'applicazione di una modifica.
214*4882a593Smuzhiyun
215*4882a593SmuzhiyunSe non sapete dove cominciare, ma volete cercare delle attività dalle quali
216*4882a593Smuzhiyunpartire per partecipare alla comunità di sviluppo, andate al progetto Linux
217*4882a593SmuzhiyunKernel Janitor's.
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun	https://kernelnewbies.org/KernelJanitors
220*4882a593Smuzhiyun
221*4882a593SmuzhiyunÈ un buon posto da cui iniziare. Esso presenta una lista di problematiche
222*4882a593Smuzhiyunrelativamente semplici da sistemare e pulire all'interno della sorgente del
223*4882a593Smuzhiyunkernel Linux. Lavorando con gli sviluppatori incaricati di questo progetto,
224*4882a593Smuzhiyunimparerete le basi per l'inserimento delle vostre modifiche all'interno dei
225*4882a593Smuzhiyunsorgenti del kernel Linux, e possibilmente, sarete indirizzati al lavoro
226*4882a593Smuzhiyunsuccessivo da svolgere, se non ne avrete ancora idea.
227*4882a593Smuzhiyun
228*4882a593SmuzhiyunPrima di apportare una qualsiasi modifica al codice del kernel Linux,
229*4882a593Smuzhiyunè imperativo comprendere come tale codice funziona. A questo scopo, non c'è
230*4882a593Smuzhiyunnulla di meglio che leggerlo direttamente (la maggior parte dei bit più
231*4882a593Smuzhiyuncomplessi sono ben commentati), eventualmente anche con l'aiuto di strumenti
232*4882a593Smuzhiyunspecializzati. Uno degli strumenti che è particolarmente raccomandato è
233*4882a593Smuzhiyunil progetto Linux Cross-Reference, che è in grado di presentare codice
234*4882a593Smuzhiyunsorgente in un formato autoreferenziale ed indicizzato. Un eccellente ed
235*4882a593Smuzhiyunaggiornata fonte di consultazione del codice del kernel la potete trovare qui:
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun	https://elixir.bootlin.com/
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun
240*4882a593SmuzhiyunIl processo di sviluppo
241*4882a593Smuzhiyun-----------------------
242*4882a593SmuzhiyunIl processo di sviluppo del kernel Linux si compone di pochi "rami" principali
243*4882a593Smuzhiyune di molti altri rami per specifici sottosistemi. Questi rami sono:
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun  - I sorgenti kernel 4.x
246*4882a593Smuzhiyun  - I sorgenti stabili del kernel 4.x.y -stable
247*4882a593Smuzhiyun  - Sorgenti dei sottosistemi del kernel e le loro modifiche
248*4882a593Smuzhiyun  - Il kernel 4.x -next per test d'integrazione
249*4882a593Smuzhiyun
250*4882a593SmuzhiyunI sorgenti kernel 4.x
251*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~
252*4882a593Smuzhiyun
253*4882a593SmuzhiyunI kernel 4.x sono amministrati da Linus Torvald, e possono essere trovati
254*4882a593Smuzhiyunsu https://kernel.org nella cartella pub/linux/kernel/v4.x/. Il processo
255*4882a593Smuzhiyundi sviluppo è il seguente:
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun  - Non appena un nuovo kernel viene rilasciato si apre una finestra di due
258*4882a593Smuzhiyun    settimane. Durante questo periodo i manutentori possono proporre a Linus
259*4882a593Smuzhiyun    dei grossi cambiamenti; solitamente i cambiamenti che sono già stati
260*4882a593Smuzhiyun    inseriti nel ramo -next del kernel per alcune settimane. Il modo migliore
261*4882a593Smuzhiyun    per sottoporre dei cambiamenti è attraverso git (lo strumento usato per
262*4882a593Smuzhiyun    gestire i sorgenti del kernel, più informazioni sul sito
263*4882a593Smuzhiyun    https://git-scm.com/) ma anche delle patch vanno bene.
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun  - Al termine delle due settimane un kernel -rc1 viene rilasciato e
266*4882a593Smuzhiyun    l'obbiettivo ora è quello di renderlo il più solido possibile. A questo
267*4882a593Smuzhiyun    punto la maggior parte delle patch dovrebbero correggere un'eventuale
268*4882a593Smuzhiyun    regressione. I bachi che sono sempre esistiti non sono considerabili come
269*4882a593Smuzhiyun    regressioni, quindi inviate questo tipo di cambiamenti solo se sono
270*4882a593Smuzhiyun    importanti. Notate che un intero driver (o filesystem) potrebbe essere
271*4882a593Smuzhiyun    accettato dopo la -rc1 poiché non esistono rischi di una possibile
272*4882a593Smuzhiyun    regressione con tale cambiamento, fintanto che quest'ultimo è
273*4882a593Smuzhiyun    auto-contenuto e non influisce su aree esterne al codice che è stato
274*4882a593Smuzhiyun    aggiunto. git può essere utilizzato per inviare le patch a Linus dopo che
275*4882a593Smuzhiyun    la -rc1 è stata rilasciata, ma è anche necessario inviare le patch ad
276*4882a593Smuzhiyun    una lista di discussione pubblica per un'ulteriore revisione.
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun  - Una nuova -rc viene rilasciata ogni volta che Linus reputa che gli attuali
279*4882a593Smuzhiyun    sorgenti siano in uno stato di salute ragionevolmente adeguato ai test.
280*4882a593Smuzhiyun    L'obiettivo è quello di rilasciare una nuova -rc ogni settimana.
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun  - Il processo continua fino a che il kernel è considerato "pronto"; tale
283*4882a593Smuzhiyun    processo dovrebbe durare circa in 6 settimane.
284*4882a593Smuzhiyun
285*4882a593SmuzhiyunÈ utile menzionare quanto scritto da Andrew Morton sulla lista di discussione
286*4882a593Smuzhiyunkernel-linux in merito ai rilasci del kernel:
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun	*"Nessuno sa quando un kernel verrà rilasciato, poichè questo è
289*4882a593Smuzhiyun	legato allo stato dei bachi e non ad una cronologia preventiva."*
290*4882a593Smuzhiyun
291*4882a593SmuzhiyunI sorgenti stabili del kernel 4.x.y -stable
292*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
293*4882a593Smuzhiyun
294*4882a593SmuzhiyunI kernel con versioni in 3-parti sono "kernel stabili". Essi contengono
295*4882a593Smuzhiyuncorrezioni critiche relativamente piccole nell'ambito della sicurezza
296*4882a593Smuzhiyunoppure significative regressioni scoperte in un dato 4.x kernel.
297*4882a593Smuzhiyun
298*4882a593SmuzhiyunQuesto è il ramo raccomandato per gli utenti che vogliono un kernel recente
299*4882a593Smuzhiyune stabile e non sono interessati a dare il proprio contributo alla verifica
300*4882a593Smuzhiyundelle versioni di sviluppo o sperimentali.
301*4882a593Smuzhiyun
302*4882a593SmuzhiyunSe non è disponibile alcun kernel 4.x.y., quello più aggiornato e stabile
303*4882a593Smuzhiyunsarà il kernel 4.x con la numerazione più alta.
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun4.x.y sono amministrati dal gruppo "stable" <stable@vger.kernel.org>, e sono
306*4882a593Smuzhiyunrilasciati a seconda delle esigenze. Il normale periodo di rilascio è
307*4882a593Smuzhiyunapprossimativamente di due settimane, ma può essere più lungo se non si
308*4882a593Smuzhiyunverificano problematiche urgenti. Un problema relativo alla sicurezza, invece,
309*4882a593Smuzhiyunpuò determinare un rilascio immediato.
310*4882a593Smuzhiyun
311*4882a593SmuzhiyunIl file Documentation/process/stable-kernel-rules.rst (nei sorgenti) documenta
312*4882a593Smuzhiyunquali tipologie di modifiche sono accettate per i sorgenti -stable, e come
313*4882a593Smuzhiyunavviene il processo di rilascio.
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun
316*4882a593SmuzhiyunSorgenti dei sottosistemi del kernel e le loro patch
317*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
318*4882a593Smuzhiyun
319*4882a593SmuzhiyunI manutentori dei diversi sottosistemi del kernel --- ed anche molti
320*4882a593Smuzhiyunsviluppatori di sottosistemi --- mostrano il loro attuale stato di sviluppo
321*4882a593Smuzhiyunnei loro repositori. In questo modo, altri possono vedere cosa succede nelle
322*4882a593Smuzhiyundiverse parti del kernel. In aree dove lo sviluppo è rapido, potrebbe essere
323*4882a593Smuzhiyunchiesto ad uno sviluppatore di basare le proprie modifiche su questi repositori
324*4882a593Smuzhiyunin modo da evitare i conflitti fra le sottomissioni ed altri lavori in corso
325*4882a593Smuzhiyun
326*4882a593SmuzhiyunLa maggior parte di questi repositori sono git, ma esistono anche altri SCM
327*4882a593Smuzhiyunin uso, o file di patch pubblicate come una serie quilt.
328*4882a593SmuzhiyunGli indirizzi dei repositori di sottosistema sono indicati nel file
329*4882a593SmuzhiyunMAINTAINERS.  Molti di questi posso essere trovati su  https://git.kernel.org/.
330*4882a593Smuzhiyun
331*4882a593SmuzhiyunPrima che una modifica venga inclusa in questi sottosistemi, sarà soggetta ad
332*4882a593Smuzhiyununa revisione che inizialmente avviene tramite liste di discussione (vedere la
333*4882a593Smuzhiyunsezione dedicata qui sotto). Per molti sottosistemi del kernel, tale processo
334*4882a593Smuzhiyundi revisione è monitorato con lo strumento patchwork.
335*4882a593SmuzhiyunPatchwork offre un'interfaccia web che mostra le patch pubblicate, inclusi i
336*4882a593Smuzhiyuncommenti o le revisioni fatte, e gli amministratori possono indicare le patch
337*4882a593Smuzhiyuncome "in revisione", "accettate", o "rifiutate". Diversi siti Patchwork sono
338*4882a593Smuzhiyunelencati al sito https://patchwork.kernel.org/.
339*4882a593Smuzhiyun
340*4882a593SmuzhiyunIl kernel 4.x -next per test d'integrazione
341*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
342*4882a593Smuzhiyun
343*4882a593SmuzhiyunPrima che gli aggiornamenti dei sottosistemi siano accorpati nel ramo
344*4882a593Smuzhiyunprincipale 4.x, sarà necessario un test d'integrazione.
345*4882a593SmuzhiyunA tale scopo, esiste un repositorio speciale di test nel quale virtualmente
346*4882a593Smuzhiyuntutti i rami dei sottosistemi vengono inclusi su base quotidiana:
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun	https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
349*4882a593Smuzhiyun
350*4882a593SmuzhiyunIn questo modo, i kernel -next offrono uno sguardo riassuntivo su quello che
351*4882a593Smuzhiyunci si aspetterà essere nel kernel principale nel successivo periodo
352*4882a593Smuzhiyund'incorporazione.
353*4882a593SmuzhiyunColoro che vorranno fare dei test d'esecuzione del kernel -next sono più che
354*4882a593Smuzhiyunbenvenuti.
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun
357*4882a593SmuzhiyunRiportare Bug
358*4882a593Smuzhiyun-------------
359*4882a593Smuzhiyun
360*4882a593Smuzhiyunhttps://bugzilla.kernel.org è dove gli sviluppatori del kernel Linux tracciano
361*4882a593Smuzhiyuni bachi del kernel. Gli utenti sono incoraggiati nel riportare tutti i bachi
362*4882a593Smuzhiyunche trovano utilizzando questo strumento.
363*4882a593SmuzhiyunPer maggiori dettagli su come usare il bugzilla del kernel, guardare:
364*4882a593Smuzhiyun
365*4882a593Smuzhiyun	https://bugzilla.kernel.org/page.cgi?id=faq.html
366*4882a593Smuzhiyun
367*4882a593SmuzhiyunIl file admin-guide/reporting-bugs.rst nella cartella principale del kernel
368*4882a593Smuzhiyunfornisce un buon modello sul come segnalare un baco nel kernel, e spiega quali
369*4882a593Smuzhiyuninformazioni sono necessarie agli sviluppatori per poter aiutare il
370*4882a593Smuzhiyunrintracciamento del problema.
371*4882a593Smuzhiyun
372*4882a593SmuzhiyunGestire i rapporti sui bug
373*4882a593Smuzhiyun--------------------------
374*4882a593Smuzhiyun
375*4882a593SmuzhiyunUno dei modi migliori per mettere in pratica le vostre capacità di hacking è
376*4882a593Smuzhiyunquello di riparare bachi riportati da altre persone. Non solo aiuterete a far
377*4882a593Smuzhiyundiventare il kernel più stabile, ma imparerete a riparare problemi veri dal
378*4882a593Smuzhiyunmondo ed accrescerete le vostre competenze, e gli altri sviluppatori saranno
379*4882a593Smuzhiyunal corrente della vostra presenza. Riparare bachi è una delle migliori vie per
380*4882a593Smuzhiyunacquisire meriti tra gli altri sviluppatori, perchè non a molte persone piace
381*4882a593Smuzhiyunperdere tempo a sistemare i bachi di altri.
382*4882a593Smuzhiyun
383*4882a593SmuzhiyunPer lavorare sui rapporti di bachi già riportati, andate su
384*4882a593Smuzhiyunhttps://bugzilla.kernel.org.
385*4882a593Smuzhiyun
386*4882a593SmuzhiyunListe di discussione
387*4882a593Smuzhiyun--------------------
388*4882a593Smuzhiyun
389*4882a593SmuzhiyunCome descritto in molti dei documenti qui sopra, la maggior parte degli
390*4882a593Smuzhiyunsviluppatori del kernel partecipano alla lista di discussione Linux Kernel.
391*4882a593SmuzhiyunI dettagli su come iscriversi e disiscriversi dalla lista possono essere
392*4882a593Smuzhiyuntrovati al sito:
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun	http://vger.kernel.org/vger-lists.html#linux-kernel
395*4882a593Smuzhiyun
396*4882a593SmuzhiyunCi sono diversi archivi della lista di discussione. Usate un qualsiasi motore
397*4882a593Smuzhiyundi ricerca per trovarli. Per esempio:
398*4882a593Smuzhiyun
399*4882a593Smuzhiyun	http://dir.gmane.org/gmane.linux.kernel
400*4882a593Smuzhiyun
401*4882a593SmuzhiyunÉ caldamente consigliata una ricerca in questi archivi sul tema che volete
402*4882a593Smuzhiyunsollevare, prima di pubblicarlo sulla lista. Molte cose sono già state
403*4882a593Smuzhiyundiscusse in dettaglio e registrate negli archivi della lista di discussione.
404*4882a593Smuzhiyun
405*4882a593SmuzhiyunMolti dei sottosistemi del kernel hanno anche una loro lista di discussione
406*4882a593Smuzhiyundedicata.  Guardate nel file MAINTAINERS per avere una lista delle liste di
407*4882a593Smuzhiyundiscussione e il loro uso.
408*4882a593Smuzhiyun
409*4882a593SmuzhiyunMolte di queste liste sono gestite su kernel.org. Per informazioni consultate
410*4882a593Smuzhiyunla seguente pagina:
411*4882a593Smuzhiyun
412*4882a593Smuzhiyun	http://vger.kernel.org/vger-lists.html
413*4882a593Smuzhiyun
414*4882a593SmuzhiyunPer favore ricordatevi della buona educazione quando utilizzate queste liste.
415*4882a593SmuzhiyunSebbene sia un pò dozzinale, il seguente URL contiene alcune semplici linee
416*4882a593Smuzhiyunguida per interagire con la lista (o con qualsiasi altra lista):
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun	http://www.albion.com/netiquette/
419*4882a593Smuzhiyun
420*4882a593SmuzhiyunSe diverse persone rispondo alla vostra mail, la lista dei riceventi (copia
421*4882a593Smuzhiyunconoscenza) potrebbe diventare abbastanza lunga. Non cancellate nessuno dalla
422*4882a593Smuzhiyunlista di CC: senza un buon motivo, e non rispondete solo all'indirizzo
423*4882a593Smuzhiyundella lista di discussione. Fateci l'abitudine perché capita spesso di
424*4882a593Smuzhiyunricevere la stessa email due volte: una dal mittente ed una dalla lista; e non
425*4882a593Smuzhiyuncercate di modificarla aggiungendo intestazioni stravaganti, agli altri non
426*4882a593Smuzhiyunpiacerà.
427*4882a593Smuzhiyun
428*4882a593SmuzhiyunRicordate di rimanere sempre in argomento e di mantenere le attribuzioni
429*4882a593Smuzhiyundelle vostre risposte invariate; mantenete il "John Kernelhacker wrote ...:"
430*4882a593Smuzhiyunin cima alla vostra replica e aggiungete le vostre risposte fra i singoli
431*4882a593Smuzhiyunblocchi citati, non scrivete all'inizio dell'email.
432*4882a593Smuzhiyun
433*4882a593SmuzhiyunSe aggiungete patch alla vostra mail, assicuratevi che siano del tutto
434*4882a593Smuzhiyunleggibili come indicato in Documentation/process/submitting-patches.rst.
435*4882a593SmuzhiyunGli sviluppatori kernel non vogliono avere a che fare con allegati o patch
436*4882a593Smuzhiyuncompresse; vogliono invece poter commentare le righe dei vostri cambiamenti,
437*4882a593Smuzhiyunil che può funzionare solo in questo modo.
438*4882a593SmuzhiyunAssicuratevi di utilizzare un gestore di mail che non alterì gli spazi ed i
439*4882a593Smuzhiyuncaratteri. Un ottimo primo test è quello di inviare a voi stessi una mail e
440*4882a593Smuzhiyuncercare di sottoporre la vostra stessa patch. Se non funziona, sistemate il
441*4882a593Smuzhiyunvostro programma di posta, o cambiatelo, finché non funziona.
442*4882a593Smuzhiyun
443*4882a593SmuzhiyunEd infine, per favore ricordatevi di mostrare rispetto per gli altri
444*4882a593Smuzhiyunsottoscriventi.
445*4882a593Smuzhiyun
446*4882a593SmuzhiyunLavorare con la comunità
447*4882a593Smuzhiyun------------------------
448*4882a593Smuzhiyun
449*4882a593SmuzhiyunL'obiettivo di questa comunità è quello di fornire il miglior kernel possibile.
450*4882a593SmuzhiyunQuando inviate una modifica che volete integrare, sarà valutata esclusivamente
451*4882a593Smuzhiyundal punto di vista tecnico. Quindi, cosa dovreste aspettarvi?
452*4882a593Smuzhiyun
453*4882a593Smuzhiyun  - critiche
454*4882a593Smuzhiyun  - commenti
455*4882a593Smuzhiyun  - richieste di cambiamento
456*4882a593Smuzhiyun  - richieste di spiegazioni
457*4882a593Smuzhiyun  - nulla
458*4882a593Smuzhiyun
459*4882a593SmuzhiyunRicordatevi che questo fa parte dell'integrazione della vostra modifica
460*4882a593Smuzhiyunall'interno del kernel.  Dovete essere in grado di accettare le critiche,
461*4882a593Smuzhiyunvalutarle a livello tecnico ed eventualmente rielaborare nuovamente le vostre
462*4882a593Smuzhiyunmodifiche o fornire delle chiare e concise motivazioni per le quali le
463*4882a593Smuzhiyunmodifiche suggerite non dovrebbero essere fatte.
464*4882a593SmuzhiyunSe non riceverete risposte, aspettate qualche giorno e riprovate ancora,
465*4882a593Smuzhiyunqualche volta le cose si perdono nell'enorme mucchio di email.
466*4882a593Smuzhiyun
467*4882a593SmuzhiyunCosa non dovreste fare?
468*4882a593Smuzhiyun
469*4882a593Smuzhiyun  - aspettarvi che la vostra modifica venga accettata senza problemi
470*4882a593Smuzhiyun  - mettervi sulla difensiva
471*4882a593Smuzhiyun  - ignorare i commenti
472*4882a593Smuzhiyun  - sottomettere nuovamente la modifica senza fare nessuno dei cambiamenti
473*4882a593Smuzhiyun    richiesti
474*4882a593Smuzhiyun
475*4882a593SmuzhiyunIn una comunità che è alla ricerca delle migliori soluzioni tecniche possibili,
476*4882a593Smuzhiyunci saranno sempre opinioni differenti sull'utilità di una modifica.
477*4882a593SmuzhiyunSiate cooperativi e vogliate adattare la vostra idea in modo che sia inserita
478*4882a593Smuzhiyunnel kernel.  O almeno vogliate dimostrare che la vostra idea vale.
479*4882a593SmuzhiyunRicordatevi, sbagliare è accettato fintanto che siate disposti a lavorare verso
480*4882a593Smuzhiyununa soluzione che è corretta.
481*4882a593Smuzhiyun
482*4882a593SmuzhiyunÈ normale che le risposte alla vostra prima modifica possa essere
483*4882a593Smuzhiyunsemplicemente una lista con dozzine di cose che dovreste correggere.
484*4882a593SmuzhiyunQuesto **non** implica che la vostra patch non sarà accettata, e questo
485*4882a593Smuzhiyun**non** è contro di voi personalmente.
486*4882a593SmuzhiyunSemplicemente correggete tutte le questioni sollevate contro la vostra modifica
487*4882a593Smuzhiyuned inviatela nuovamente.
488*4882a593Smuzhiyun
489*4882a593SmuzhiyunDifferenze tra la comunità del kernel e le strutture aziendali
490*4882a593Smuzhiyun--------------------------------------------------------------
491*4882a593Smuzhiyun
492*4882a593SmuzhiyunLa comunità del kernel funziona diversamente rispetto a molti ambienti di
493*4882a593Smuzhiyunsviluppo aziendali.  Qui di seguito una lista di cose che potete provare a
494*4882a593Smuzhiyunfare per evitare problemi:
495*4882a593Smuzhiyun
496*4882a593Smuzhiyun  Cose da dire riguardanti le modifiche da voi proposte:
497*4882a593Smuzhiyun
498*4882a593Smuzhiyun  - "Questo risolve più problematiche."
499*4882a593Smuzhiyun  - "Questo elimina 2000 stringhe di codice."
500*4882a593Smuzhiyun  - "Qui una modifica che spiega cosa sto cercando di fare."
501*4882a593Smuzhiyun  - "L'ho testato su 5 diverse architetture.."
502*4882a593Smuzhiyun  - "Qui una serie di piccole modifiche che.."
503*4882a593Smuzhiyun  - "Questo aumenta le prestazioni di macchine standard..."
504*4882a593Smuzhiyun
505*4882a593Smuzhiyun Cose che dovreste evitare di dire:
506*4882a593Smuzhiyun
507*4882a593Smuzhiyun    - "Lo abbiamo fatto in questo modo in AIX/ptx/Solaris, di conseguenza
508*4882a593Smuzhiyun       deve per forza essere giusto..."
509*4882a593Smuzhiyun    - "Ho fatto questo per 20 anni, quindi.."
510*4882a593Smuzhiyun    - "Questo è richiesto dalla mia Azienda per far soldi"
511*4882a593Smuzhiyun    - "Questo è per la linea di prodotti della nostra Azienda"
512*4882a593Smuzhiyun    - "Ecco il mio documento di design di 1000 pagine che descrive ciò che ho
513*4882a593Smuzhiyun       in mente"
514*4882a593Smuzhiyun    - "Ci ho lavorato per 6 mesi..."
515*4882a593Smuzhiyun    - "Ecco una patch da 5000 righe che.."
516*4882a593Smuzhiyun    - "Ho riscritto il pasticcio attuale, ed ecco qua.."
517*4882a593Smuzhiyun    - "Ho una scadenza, e questa modifica ha bisogno di essere approvata ora"
518*4882a593Smuzhiyun
519*4882a593SmuzhiyunUn'altra cosa nella quale la comunità del kernel si differenzia dai più
520*4882a593Smuzhiyunclassici ambienti di ingegneria del software è la natura "senza volto" delle
521*4882a593Smuzhiyuninterazioni umane. Uno dei benefici dell'uso delle email e di irc come forma
522*4882a593Smuzhiyunprimordiale di comunicazione è l'assenza di discriminazione basata su genere e
523*4882a593Smuzhiyunrazza. L'ambienti di lavoro Linux accetta donne e minoranze perchè tutto quello
524*4882a593Smuzhiyunche sei è un indirizzo email.  Aiuta anche l'aspetto internazionale nel
525*4882a593Smuzhiyunlivellare il terreno di gioco perchè non è possibile indovinare il genere
526*4882a593Smuzhiyunbasandosi sul nome di una persona. Un uomo può chiamarsi Andrea ed una donna
527*4882a593Smuzhiyunpotrebbe chiamarsi Pat. Gran parte delle donne che hanno lavorato al kernel
528*4882a593SmuzhiyunLinux e che hanno espresso una personale opinione hanno avuto esperienze
529*4882a593Smuzhiyunpositive.
530*4882a593Smuzhiyun
531*4882a593SmuzhiyunLa lingua potrebbe essere un ostacolo per quelle persone che non si trovano
532*4882a593Smuzhiyuna loro agio con l'inglese.  Una buona padronanza del linguaggio può essere
533*4882a593Smuzhiyunnecessaria per esporre le proprie idee in maniera appropiata all'interno
534*4882a593Smuzhiyundelle liste di discussione, quindi è consigliabile che rileggiate le vostre
535*4882a593Smuzhiyunemail prima di inviarle in modo da essere certi che abbiano senso in inglese.
536*4882a593Smuzhiyun
537*4882a593Smuzhiyun
538*4882a593SmuzhiyunSpezzare le vostre modifiche
539*4882a593Smuzhiyun----------------------------
540*4882a593Smuzhiyun
541*4882a593SmuzhiyunLa comunità del kernel Linux non accetta con piacere grossi pezzi di codice
542*4882a593Smuzhiyunbuttati lì tutti in una volta. Le modifiche necessitano di essere
543*4882a593Smuzhiyunadeguatamente presentate, discusse, e suddivise in parti più piccole ed
544*4882a593Smuzhiyunindipendenti.  Questo è praticamente l'esatto opposto di quello che le
545*4882a593Smuzhiyunaziende fanno solitamente.  La vostra proposta dovrebbe, inoltre, essere
546*4882a593Smuzhiyunpresentata prestissimo nel processo di sviluppo, così che possiate ricevere
547*4882a593Smuzhiyunun riscontro su quello che state facendo. Lasciate che la comunità
548*4882a593Smuzhiyunsenta che state lavorando con loro, e che non li stiate sfruttando come
549*4882a593Smuzhiyundiscarica per le vostre aggiunte.  In ogni caso, non inviate 50 email nello
550*4882a593Smuzhiyunstesso momento in una lista di discussione, il più delle volte la vostra serie
551*4882a593Smuzhiyundi modifiche dovrebbe essere più piccola.
552*4882a593Smuzhiyun
553*4882a593SmuzhiyunI motivi per i quali dovreste frammentare le cose sono i seguenti:
554*4882a593Smuzhiyun
555*4882a593Smuzhiyun1) Piccole modifiche aumentano le probabilità che vengano accettate,
556*4882a593Smuzhiyun   altrimenti richiederebbe troppo tempo o sforzo nel verificarne
557*4882a593Smuzhiyun   la correttezza.  Una modifica di 5 righe può essere accettata da un
558*4882a593Smuzhiyun   manutentore con a mala pena una seconda occhiata. Invece, una modifica da
559*4882a593Smuzhiyun   500 linee può richiedere ore di rilettura per verificarne la correttezza
560*4882a593Smuzhiyun   (il tempo necessario è esponenzialmente proporzionale alla dimensione della
561*4882a593Smuzhiyun   modifica, o giù di lì)
562*4882a593Smuzhiyun
563*4882a593Smuzhiyun   Piccole modifiche sono inoltre molto facili da debuggare quando qualcosa
564*4882a593Smuzhiyun   non va. È molto più facile annullare le modifiche una per una che
565*4882a593Smuzhiyun   dissezionare una patch molto grande dopo la sua sottomissione (e rompere
566*4882a593Smuzhiyun   qualcosa).
567*4882a593Smuzhiyun
568*4882a593Smuzhiyun2) È importante non solo inviare piccole modifiche, ma anche riscriverle e
569*4882a593Smuzhiyun   semplificarle (o più semplicemente ordinarle) prima di sottoporle.
570*4882a593Smuzhiyun
571*4882a593SmuzhiyunQui un'analogia dello sviluppatore kernel Al Viro:
572*4882a593Smuzhiyun
573*4882a593Smuzhiyun	*"Pensate ad un insegnante di matematica che corregge il compito
574*4882a593Smuzhiyun	di uno studente (di matematica). L'insegnante non vuole vedere le
575*4882a593Smuzhiyun	prove e gli errori commessi dallo studente prima che arrivi alla
576*4882a593Smuzhiyun	soluzione. Vuole vedere la risposta più pulita ed elegante
577*4882a593Smuzhiyun	possibile.  Un buono studente lo sa, e non presenterebbe mai le
578*4882a593Smuzhiyun	proprie bozze prima prima della soluzione finale"*
579*4882a593Smuzhiyun
580*4882a593Smuzhiyun	*"Lo stesso vale per lo sviluppo del kernel. I manutentori ed i
581*4882a593Smuzhiyun	revisori non vogliono vedere il procedimento che sta dietro al
582*4882a593Smuzhiyun	problema che uno sta risolvendo. Vogliono vedere una soluzione
583*4882a593Smuzhiyun	semplice ed elegante."*
584*4882a593Smuzhiyun
585*4882a593SmuzhiyunPuò essere una vera sfida il saper mantenere l'equilibrio fra una presentazione
586*4882a593Smuzhiyunelegante della vostra soluzione, lavorare insieme ad una comunità e dibattere
587*4882a593Smuzhiyunsu un lavoro incompleto.  Pertanto è bene entrare presto nel processo di
588*4882a593Smuzhiyunrevisione per migliorare il vostro lavoro, ma anche per riuscire a tenere le
589*4882a593Smuzhiyunvostre modifiche in pezzettini che potrebbero essere già accettate, nonostante
590*4882a593Smuzhiyunla vostra intera attività non lo sia ancora.
591*4882a593Smuzhiyun
592*4882a593SmuzhiyunIn fine, rendetevi conto che non è accettabile inviare delle modifiche
593*4882a593Smuzhiyunincomplete con la promessa che saranno "sistemate dopo".
594*4882a593Smuzhiyun
595*4882a593Smuzhiyun
596*4882a593SmuzhiyunGiustificare le vostre modifiche
597*4882a593Smuzhiyun--------------------------------
598*4882a593Smuzhiyun
599*4882a593SmuzhiyunInsieme alla frammentazione delle vostre modifiche, è altrettanto importante
600*4882a593Smuzhiyunpermettere alla comunità Linux di capire perché dovrebbero accettarle.
601*4882a593SmuzhiyunNuove funzionalità devono essere motivate come necessarie ed utili.
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun
604*4882a593SmuzhiyunDocumentare le vostre modifiche
605*4882a593Smuzhiyun-------------------------------
606*4882a593Smuzhiyun
607*4882a593SmuzhiyunQuando inviate le vostre modifiche, fate particolare attenzione a quello che
608*4882a593Smuzhiyunscrivete nella vostra email.  Questa diventerà il *ChangeLog* per la modifica,
609*4882a593Smuzhiyune sarà visibile a tutti per sempre.  Dovrebbe descrivere la modifica nella sua
610*4882a593Smuzhiyuninterezza, contenendo:
611*4882a593Smuzhiyun
612*4882a593Smuzhiyun - perchè la modifica è necessaria
613*4882a593Smuzhiyun - l'approccio d'insieme alla patch
614*4882a593Smuzhiyun - dettagli supplementari
615*4882a593Smuzhiyun - risultati dei test
616*4882a593Smuzhiyun
617*4882a593SmuzhiyunPer maggiori dettagli su come tutto ciò dovrebbe apparire, riferitevi alla
618*4882a593Smuzhiyunsezione ChangeLog del documento:
619*4882a593Smuzhiyun
620*4882a593Smuzhiyun "The Perfect Patch"
621*4882a593Smuzhiyun      http://www.ozlabs.org/~akpm/stuff/tpp.txt
622*4882a593Smuzhiyun
623*4882a593SmuzhiyunA volte tutto questo è difficile da realizzare. Il perfezionamento di queste
624*4882a593Smuzhiyunpratiche può richiedere anni (eventualmente). È un processo continuo di
625*4882a593Smuzhiyunmiglioramento che richiede molta pazienza e determinazione. Ma non mollate,
626*4882a593Smuzhiyunsi può fare. Molti lo hanno fatto prima, ed ognuno ha dovuto iniziare dove
627*4882a593Smuzhiyunsiete voi ora.
628*4882a593Smuzhiyun
629*4882a593Smuzhiyun
630*4882a593Smuzhiyun
631*4882a593Smuzhiyun
632*4882a593Smuzhiyun----------
633*4882a593Smuzhiyun
634*4882a593SmuzhiyunGrazie a Paolo Ciarrocchi che ha permesso che la sezione "Development Process"
635*4882a593Smuzhiyun(https://lwn.net/Articles/94386/) fosse basata sui testi da lui scritti, ed a
636*4882a593SmuzhiyunRandy Dunlap e Gerrit Huizenga per la lista di cose che dovreste e non
637*4882a593Smuzhiyundovreste dire. Grazie anche a Pat Mochel, Hanna Linder, Randy Dunlap,
638*4882a593SmuzhiyunKay Sievers, Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton,
639*4882a593SmuzhiyunAndi Kleen, Vadim Lobanov, Jesper Juhl, Adrian Bunk, Keri Harris, Frans Pop,
640*4882a593SmuzhiyunDavid A. Wheeler, Junio Hamano, Michael Kerrisk, e Alex Shepard per le
641*4882a593Smuzhiyunloro revisioni, commenti e contributi.  Senza il loro aiuto, questo documento
642*4882a593Smuzhiyunnon sarebbe stato possibile.
643*4882a593Smuzhiyun
644*4882a593SmuzhiyunManutentore: Greg Kroah-Hartman <greg@kroah.com>
645