18c2ecf20Sopenharmony_ci.. include:: ../disclaimer-ita.rst
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci:Original: :ref:`Documentation/process/2.Process.rst <development_process>`
48c2ecf20Sopenharmony_ci:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it>
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci.. _it_development_process:
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciCome funziona il processo di sviluppo
98c2ecf20Sopenharmony_ci=====================================
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciLo sviluppo del Kernel agli inizi degli anno '90 era abbastanza libero, con
128c2ecf20Sopenharmony_ciun numero di utenti e sviluppatori relativamente basso.  Con una base
138c2ecf20Sopenharmony_cidi milioni di utenti e con 2000 sviluppatori coinvolti nel giro di un anno,
148c2ecf20Sopenharmony_ciil kernel da allora ha messo in atto un certo numero di procedure per rendere
158c2ecf20Sopenharmony_cilo sviluppo più agevole.  È richiesta una solida conoscenza di come tale
168c2ecf20Sopenharmony_ciprocesso si svolge per poter esserne parte attiva.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciIl quadro d'insieme
198c2ecf20Sopenharmony_ci-------------------
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciGli sviluppatori kernel utilizzano un calendario di rilascio generico, dove
228c2ecf20Sopenharmony_ciogni due o tre mesi viene effettuata un rilascio importante del kernel.
238c2ecf20Sopenharmony_ciI rilasci più recenti sono stati:
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	======  =================
268c2ecf20Sopenharmony_ci	5.0     3 marzo, 2019
278c2ecf20Sopenharmony_ci	5.1     5 maggio, 2019
288c2ecf20Sopenharmony_ci	5.2     7 luglio, 2019
298c2ecf20Sopenharmony_ci	5.3     15 settembre, 2019
308c2ecf20Sopenharmony_ci	5.4     24 novembre, 2019
318c2ecf20Sopenharmony_ci	5.5     6 gennaio, 2020
328c2ecf20Sopenharmony_ci	======  =================
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciCiascun rilascio 5.x è un importante rilascio del kernel con nuove
358c2ecf20Sopenharmony_cifunzionalità, modifiche interne dell'API, e molto altro.  Un tipico
368c2ecf20Sopenharmony_cirilascio contiene quasi 13,000 gruppi di modifiche con ulteriori
378c2ecf20Sopenharmony_cimodifiche a parecchie migliaia di linee di codice.  La 5.x. è pertanto la
388c2ecf20Sopenharmony_cilinea di confine nello sviluppo del kernel Linux; il kernel utilizza un sistema
398c2ecf20Sopenharmony_cidi sviluppo continuo che integra costantemente nuove importanti modifiche.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciViene seguita una disciplina abbastanza lineare per l'inclusione delle
428c2ecf20Sopenharmony_cipatch di ogni rilascio. All'inizio di ogni ciclo di sviluppo, la
438c2ecf20Sopenharmony_ci"finestra di inclusione" viene dichiarata aperta.  In quel momento il codice
448c2ecf20Sopenharmony_ciritenuto sufficientemente stabile(e che è accettato dalla comunità di sviluppo)
458c2ecf20Sopenharmony_civiene incluso nel ramo principale del kernel.  La maggior parte delle
468c2ecf20Sopenharmony_cipatch per un nuovo ciclo di sviluppo (e tutte le più importanti modifiche)
478c2ecf20Sopenharmony_cisaranno inserite durante questo periodo, ad un ritmo che si attesta sulle
488c2ecf20Sopenharmony_ci1000 modifiche ("patch" o "gruppo di modifiche") al giorno.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci(per inciso, vale la pena notare che i cambiamenti integrati durante la
518c2ecf20Sopenharmony_ci"finestra di inclusione" non escono dal nulla; questi infatti, sono stati
528c2ecf20Sopenharmony_ciraccolti e, verificati in anticipo.  Il funzionamento di tale procedimento
538c2ecf20Sopenharmony_civerrà descritto dettagliatamente più avanti).
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciLa finestra di inclusione resta attiva approssimativamente per due settimane.
568c2ecf20Sopenharmony_ciAl termine di questo periodo, Linus Torvald dichiarerà che la finestra è
578c2ecf20Sopenharmony_cichiusa e rilascerà il primo degli "rc" del kernel.
588c2ecf20Sopenharmony_ciPer il kernel che è destinato ad essere 5.6, per esempio, il rilascio
598c2ecf20Sopenharmony_ciche emerge al termine della finestra d'inclusione si chiamerà 5.6-rc1.
608c2ecf20Sopenharmony_ciQuesto rilascio indica che il momento di aggiungere nuovi componenti è
618c2ecf20Sopenharmony_cipassato, e che è iniziato il periodo di stabilizzazione del prossimo kernel.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciNelle successive sei/dieci settimane, potranno essere sottoposte solo modifiche
648c2ecf20Sopenharmony_ciche vanno a risolvere delle problematiche.  Occasionalmente potrà essere
658c2ecf20Sopenharmony_ciconsentita una modifica più consistente, ma tali occasioni sono rare.
668c2ecf20Sopenharmony_ciGli sviluppatori che tenteranno di aggiungere nuovi elementi al di fuori della
678c2ecf20Sopenharmony_cifinestra di inclusione, tendenzialmente, riceveranno un accoglienza poco
688c2ecf20Sopenharmony_ciamichevole. Come regola generale: se vi perdete la finestra di inclusione per
698c2ecf20Sopenharmony_ciun dato componente, la cosa migliore da fare è aspettare il ciclo di sviluppo
708c2ecf20Sopenharmony_cisuccessivo (un'eccezione può essere fatta per i driver per hardware non
718c2ecf20Sopenharmony_cisupportati in precedenza; se toccano codice non facente parte di quello
728c2ecf20Sopenharmony_ciattuale, che non causino regressioni e che potrebbero essere aggiunti in
738c2ecf20Sopenharmony_cisicurezza in un qualsiasi momento)
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciMentre le correzioni si aprono la loro strada all'interno del ramo principale,
768c2ecf20Sopenharmony_ciil ritmo delle modifiche rallenta col tempo.  Linus rilascia un nuovo
778c2ecf20Sopenharmony_cikernel -rc circa una volta alla settimana; e ne usciranno circa 6 o 9 prima
788c2ecf20Sopenharmony_ciche il kernel venga considerato sufficientemente stabile e che il rilascio
798c2ecf20Sopenharmony_cifinale venga fatto.  A quel punto tutto il processo ricomincerà.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciEsempio: ecco com'è andato il ciclo di sviluppo della versione 5.4
828c2ecf20Sopenharmony_ci(tutte le date si collocano nel 2018)
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	==============  =======================================
868c2ecf20Sopenharmony_ci	15 settembre	5.3 rilascio stabile
878c2ecf20Sopenharmony_ci	30 settembre	5.4-rc1, finestra di inclusione chiusa
888c2ecf20Sopenharmony_ci	6 ottobre	5.4-rc2
898c2ecf20Sopenharmony_ci	13 ottobre	5.4-rc3
908c2ecf20Sopenharmony_ci	20 ottobre	5.4-rc4
918c2ecf20Sopenharmony_ci	27 ottobre	5.4-rc5
928c2ecf20Sopenharmony_ci	3 novembre	5.4-rc6
938c2ecf20Sopenharmony_ci	10 novembre	5.4-rc7
948c2ecf20Sopenharmony_ci	17 novembre	5.4-rc8
958c2ecf20Sopenharmony_ci	24 novembre	5.4 rilascio stabile
968c2ecf20Sopenharmony_ci	==============  =======================================
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ciIn che modo gli sviluppatori decidono quando chiudere il ciclo di sviluppo e
998c2ecf20Sopenharmony_cicreare quindi una rilascio stabile? Un metro valido è il numero di regressioni
1008c2ecf20Sopenharmony_cirilevate nel precedente rilascio.  Nessun baco è il benvenuto, ma quelli che
1018c2ecf20Sopenharmony_ciprocurano problemi su sistemi che hanno funzionato in passato sono considerati
1028c2ecf20Sopenharmony_ciparticolarmente seri.  Per questa ragione, le modifiche che portano ad una
1038c2ecf20Sopenharmony_ciregressione sono viste sfavorevolmente e verranno quasi sicuramente annullate
1048c2ecf20Sopenharmony_cidurante il periodo di stabilizzazione.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ciL'obiettivo degli sviluppatori è quello di aggiustare tutte le regressioni
1078c2ecf20Sopenharmony_ciconosciute prima che avvenga il rilascio stabile.  Nel mondo reale, questo
1088c2ecf20Sopenharmony_citipo di perfezione difficilmente viene raggiunta; esistono troppe variabili
1098c2ecf20Sopenharmony_ciin un progetto di questa portata.  Arriva un punto dove ritardare il rilascio
1108c2ecf20Sopenharmony_cifinale peggiora la situazione; la quantità di modifiche in attesa della
1118c2ecf20Sopenharmony_ciprossima finestra di inclusione crescerà enormemente, creando ancor più
1128c2ecf20Sopenharmony_ciregressioni al giro successivo.  Quindi molti kernel 5.x escono con una
1138c2ecf20Sopenharmony_cimanciata di regressioni delle quali, si spera, nessuna è grave.
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ciUna volta che un rilascio stabile è fatto, il suo costante mantenimento è
1168c2ecf20Sopenharmony_ciaffidato al "squadra stabilità", attualmente composta da Greg Kroah-Hartman.
1178c2ecf20Sopenharmony_ciQuesta squadra rilascia occasionalmente degli aggiornamenti relativi al
1188c2ecf20Sopenharmony_cirilascio stabile usando la numerazione 5.x.y.  Per essere presa in
1198c2ecf20Sopenharmony_ciconsiderazione per un rilascio d'aggiornamento, una modifica deve:
1208c2ecf20Sopenharmony_ci(1) correggere un baco importante (2) essere già inserita nel ramo principale
1218c2ecf20Sopenharmony_ciper il prossimo sviluppo del kernel.  Solitamente, passato il loro rilascio
1228c2ecf20Sopenharmony_ciiniziale, i kernel ricevono aggiornamenti per più di un ciclo di sviluppo.
1238c2ecf20Sopenharmony_ciQuindi, per esempio, la storia del kernel 5.2 appare così (anno 2019):
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	==============  ===============================
1268c2ecf20Sopenharmony_ci	15 settembre	5.2 rilascio stabile FIXME settembre è sbagliato
1278c2ecf20Sopenharmony_ci	14 luglio	5.2.1
1288c2ecf20Sopenharmony_ci	21 luglio	5.2.2
1298c2ecf20Sopenharmony_ci	26 luglio	5.2.3
1308c2ecf20Sopenharmony_ci	28 luglio	5.2.4
1318c2ecf20Sopenharmony_ci	31 luglio	5.2.5
1328c2ecf20Sopenharmony_ci	...		...
1338c2ecf20Sopenharmony_ci	11 ottobre	5.2.21
1348c2ecf20Sopenharmony_ci	==============  ===============================
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ciLa 5.2.21 fu l'aggiornamento finale per la versione 5.2.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciAlcuni kernel sono destinati ad essere kernel a "lungo termine"; questi
1398c2ecf20Sopenharmony_ciriceveranno assistenza per un lungo periodo di tempo.  Al momento in cui
1408c2ecf20Sopenharmony_ciscriviamo, i manutentori dei kernel stabili a lungo termine sono:
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci	======  ================================  ==========================================
1438c2ecf20Sopenharmony_ci	3.16	Ben Hutchings			  (kernel stabile molto più a lungo termine)
1448c2ecf20Sopenharmony_ci	4.4	Greg Kroah-Hartman e Sasha Levin  (kernel stabile molto più a lungo termine)
1458c2ecf20Sopenharmony_ci	4.9	Greg Kroah-Hartman e Sasha Levin
1468c2ecf20Sopenharmony_ci	4.14	Greg Kroah-Hartman e Sasha Levin
1478c2ecf20Sopenharmony_ci	4.19	Greg Kroah-Hartman e Sasha Levin
1488c2ecf20Sopenharmony_ci	5.4i	Greg Kroah-Hartman e Sasha Levin
1498c2ecf20Sopenharmony_ci	======  ================================  ==========================================
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ciQuesta selezione di kernel di lungo periodo sono puramente dovuti ai loro
1538c2ecf20Sopenharmony_cimanutentori, alla loro necessità e al tempo per tenere aggiornate proprio
1548c2ecf20Sopenharmony_ciquelle versioni.  Non ci sono altri kernel a lungo termine in programma per
1558c2ecf20Sopenharmony_cialcun rilascio in arrivo.
1568c2ecf20Sopenharmony_ci
1578c2ecf20Sopenharmony_ciIl ciclo di vita di una patch
1588c2ecf20Sopenharmony_ci-----------------------------
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ciLe patch non passano direttamente dalla tastiera dello sviluppatori
1618c2ecf20Sopenharmony_cial ramo principale del kernel. Esiste, invece, una procedura disegnata
1628c2ecf20Sopenharmony_ciper assicurare che ogni patch sia di buona qualità e desiderata nel
1638c2ecf20Sopenharmony_ciramo principale.  Questo processo avviene velocemente per le correzioni
1648c2ecf20Sopenharmony_cimeno importanti, o, nel caso di patch ampie e controverse, va avanti per anni.
1658c2ecf20Sopenharmony_ciPer uno sviluppatore la maggior frustrazione viene dalla mancanza di
1668c2ecf20Sopenharmony_cicomprensione di questo processo o dai tentativi di aggirarlo.
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ciNella speranza di ridurre questa frustrazione, questo documento spiegherà
1698c2ecf20Sopenharmony_cicome una patch viene inserita nel kernel.  Ciò che segue è un'introduzione
1708c2ecf20Sopenharmony_ciche descrive il processo ideale.  Approfondimenti verranno invece trattati
1718c2ecf20Sopenharmony_cipiù avanti.
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ciUna patch attraversa, generalmente, le seguenti fasi:
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci - Progetto. In questa fase sono stabilite quelli che sono i requisiti
1768c2ecf20Sopenharmony_ci   della modifica - e come verranno soddisfatti.  Il lavoro di progettazione
1778c2ecf20Sopenharmony_ci   viene spesso svolto senza coinvolgere la comunità, ma è meglio renderlo
1788c2ecf20Sopenharmony_ci   il più aperto possibile; questo può far risparmiare molto tempo evitando
1798c2ecf20Sopenharmony_ci   eventuali riprogettazioni successive.
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci - Prima revisione. Le patch vengono pubblicate sulle liste di discussione
1828c2ecf20Sopenharmony_ci   interessate, e gli sviluppatori in quella lista risponderanno coi loro
1838c2ecf20Sopenharmony_ci   commenti.  Se si svolge correttamente, questo procedimento potrebbe far
1848c2ecf20Sopenharmony_ci   emergere problemi rilevanti in una patch.
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ci - Revisione più ampia. Quando la patch è quasi pronta per essere inserita
1878c2ecf20Sopenharmony_ci   nel ramo principale, un manutentore importante del sottosistema dovrebbe
1888c2ecf20Sopenharmony_ci   accettarla - anche se, questa accettazione non è una garanzia che la
1898c2ecf20Sopenharmony_ci   patch arriverà nel ramo principale. La patch sarà visibile nei sorgenti
1908c2ecf20Sopenharmony_ci   del sottosistema in questione e nei sorgenti -next (descritti sotto).
1918c2ecf20Sopenharmony_ci   Quando il processo va a buon fine, questo passo porta ad una revisione
1928c2ecf20Sopenharmony_ci   più estesa della patch e alla scoperta di problemi d'integrazione
1938c2ecf20Sopenharmony_ci   con il lavoro altrui.
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci-  Per favore, tenete da conto che la maggior parte dei manutentori ha
1968c2ecf20Sopenharmony_ci   anche un lavoro quotidiano, quindi integrare le vostre patch potrebbe
1978c2ecf20Sopenharmony_ci   non essere la loro priorità più alta.  Se una vostra patch riceve
1988c2ecf20Sopenharmony_ci   dei suggerimenti su dei cambiamenti necessari, dovreste applicare
1998c2ecf20Sopenharmony_ci   quei cambiamenti o giustificare perché non sono necessari.  Se la vostra
2008c2ecf20Sopenharmony_ci   patch non riceve alcuna critica ma non è stata integrata dal
2018c2ecf20Sopenharmony_ci   manutentore del driver o sottosistema, allora dovreste continuare con
2028c2ecf20Sopenharmony_ci   i necessari aggiornamenti per mantenere la patch aggiornata al kernel
2038c2ecf20Sopenharmony_ci   più recente cosicché questa possa integrarsi senza problemi; continuate
2048c2ecf20Sopenharmony_ci   ad inviare gli aggiornamenti per essere revisionati e integrati.
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci - Inclusione nel ramo principale. Eventualmente, una buona patch verrà
2078c2ecf20Sopenharmony_ci   inserita all'interno nel repositorio principale, gestito da
2088c2ecf20Sopenharmony_ci   Linus Torvalds.  In questa fase potrebbero emergere nuovi problemi e/o
2098c2ecf20Sopenharmony_ci   commenti; è importante che lo sviluppatore sia collaborativo e che sistemi
2108c2ecf20Sopenharmony_ci   ogni questione che possa emergere.
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci - Rilascio stabile. Ora, il numero di utilizzatori che sono potenzialmente
2138c2ecf20Sopenharmony_ci   toccati dalla patch è aumentato, quindi, ancora una volta, potrebbero
2148c2ecf20Sopenharmony_ci   emergere nuovi problemi.
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_ci - Manutenzione di lungo periodo. Nonostante sia possibile che uno sviluppatore
2178c2ecf20Sopenharmony_ci   si dimentichi del codice dopo la sua integrazione, questo comportamento
2188c2ecf20Sopenharmony_ci   lascia una brutta impressione nella comunità di sviluppo.  Integrare il
2198c2ecf20Sopenharmony_ci   codice elimina alcuni degli oneri facenti parte della manutenzione, in
2208c2ecf20Sopenharmony_ci   particolare, sistemerà le problematiche causate dalle modifiche all'API.
2218c2ecf20Sopenharmony_ci   Ma lo sviluppatore originario dovrebbe continuare ad assumersi la
2228c2ecf20Sopenharmony_ci   responsabilità per il codice se quest'ultimo continua ad essere utile
2238c2ecf20Sopenharmony_ci   nel lungo periodo.
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ciUno dei più grandi errori fatti dagli sviluppatori kernel (o dai loro datori
2268c2ecf20Sopenharmony_cidi lavoro) è quello di cercare di ridurre tutta la procedura ad una singola
2278c2ecf20Sopenharmony_ci"integrazione nel remo principale".  Questo approccio inevitabilmente conduce
2288c2ecf20Sopenharmony_cia una condizione di frustrazione per tutti coloro che sono coinvolti.
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ciCome le modifiche finiscono nel Kernel
2318c2ecf20Sopenharmony_ci--------------------------------------
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ciEsiste una sola persona che può inserire le patch nel repositorio principale
2348c2ecf20Sopenharmony_cidel kernel: Linus Torvalds.  Ma, per esempio, di tutte le 9500 patch
2358c2ecf20Sopenharmony_ciche entrarono nella versione 2.6.38 del kernel, solo 112 (circa
2368c2ecf20Sopenharmony_cil'1,3%) furono scelte direttamente da Linus in persona.  Il progetto
2378c2ecf20Sopenharmony_cidel kernel è cresciuto fino a raggiungere una dimensione tale per cui
2388c2ecf20Sopenharmony_ciun singolo sviluppatore non può controllare e selezionare
2398c2ecf20Sopenharmony_ciindipendentemente ogni modifica senza essere supportato.  La via
2408c2ecf20Sopenharmony_ciscelta dagli sviluppatori per indirizzare tale crescita è stata quella
2418c2ecf20Sopenharmony_cidi utilizzare un sistema di "sottotenenti" basato sulla fiducia.
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ciIl codice base del kernel è spezzato in una serie si sottosistemi: rete,
2448c2ecf20Sopenharmony_cisupporto per specifiche architetture, gestione della memoria, video e
2458c2ecf20Sopenharmony_cistrumenti, etc.  Molti sottosistemi hanno un manutentore designato: ovvero uno
2468c2ecf20Sopenharmony_cisviluppatore che ha piena responsabilità di tutto il codice presente in quel
2478c2ecf20Sopenharmony_cisottosistema.  Tali manutentori di sottosistema sono i guardiani
2488c2ecf20Sopenharmony_ci(in un certo senso) della parte di kernel che gestiscono; sono coloro che
2498c2ecf20Sopenharmony_ci(solitamente) accetteranno una patch per l'inclusione nel ramo principale
2508c2ecf20Sopenharmony_cidel kernel.
2518c2ecf20Sopenharmony_ci
2528c2ecf20Sopenharmony_ciI manutentori di sottosistema gestiscono ciascuno la propria parte dei sorgenti
2538c2ecf20Sopenharmony_cidel kernel, utilizzando abitualmente (ma certamente non sempre) git.
2548c2ecf20Sopenharmony_ciStrumenti come git (e affini come quilt o mercurial) permettono ai manutentori
2558c2ecf20Sopenharmony_cidi stilare una lista delle patch, includendo informazioni sull'autore ed
2568c2ecf20Sopenharmony_cialtri metadati.  In ogni momento, il manutentore può individuare quale patch
2578c2ecf20Sopenharmony_cinel sua repositorio non si trova nel ramo principale.
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ciQuando la "finestra di integrazione" si apre, i manutentori di alto livello
2608c2ecf20Sopenharmony_cichiederanno a Linus di "prendere" dai loro repositori le modifiche che hanno
2618c2ecf20Sopenharmony_ciselezionato per l'inclusione.  Se Linus acconsente, il flusso di patch si
2628c2ecf20Sopenharmony_ciconvoglierà nel repositorio di quest ultimo, divenendo così parte del ramo
2638c2ecf20Sopenharmony_ciprincipale del kernel.  La quantità d'attenzione che Linus presta alle
2648c2ecf20Sopenharmony_cisingole patch ricevute durante l'operazione di integrazione varia.
2658c2ecf20Sopenharmony_ciÈ chiaro che, qualche volta, guardi più attentamente.  Ma, come regola
2668c2ecf20Sopenharmony_cigenerale, Linus confida nel fatto che i manutentori di sottosistema non
2678c2ecf20Sopenharmony_ciselezionino pessime patch.
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ciI manutentori di sottosistemi, a turno, possono "prendere" patch
2708c2ecf20Sopenharmony_ciprovenienti da altri manutentori.  Per esempio, i sorgenti per la rete rete
2718c2ecf20Sopenharmony_cisono costruiti da modifiche che si sono accumulate inizialmente nei sorgenti
2728c2ecf20Sopenharmony_cidedicati ai driver per dispositivi di rete, rete senza fili, ecc.  Tale
2738c2ecf20Sopenharmony_cicatena di repositori può essere più o meno lunga, benché raramente ecceda
2748c2ecf20Sopenharmony_cii due o tre collegamenti.  Questo processo è conosciuto come
2758c2ecf20Sopenharmony_ci"la catena della fiducia", perché ogni manutentore all'interno della
2768c2ecf20Sopenharmony_cicatena si fida di coloro che gestiscono i livelli più bassi.
2778c2ecf20Sopenharmony_ci
2788c2ecf20Sopenharmony_ciChiaramente, in un sistema come questo, l'inserimento delle patch all'interno
2798c2ecf20Sopenharmony_cidel kernel si basa sul trovare il manutentore giusto.  Di norma, inviare
2808c2ecf20Sopenharmony_cipatch direttamente a Linus non è la via giusta.
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ciSorgenti -next
2848c2ecf20Sopenharmony_ci--------------
2858c2ecf20Sopenharmony_ci
2868c2ecf20Sopenharmony_ciLa catena di sottosistemi guida il flusso di patch all'interno del kernel,
2878c2ecf20Sopenharmony_cima solleva anche un interessante quesito: se qualcuno volesse vedere tutte le
2888c2ecf20Sopenharmony_cipatch pronte per la prossima finestra di integrazione?
2898c2ecf20Sopenharmony_ciGli sviluppatori si interesseranno alle patch in sospeso per verificare
2908c2ecf20Sopenharmony_ciche non ci siano altri conflitti di cui preoccuparsi; una modifica che, per
2918c2ecf20Sopenharmony_ciesempio, cambia il prototipo di una funzione fondamentale del kernel andrà in
2928c2ecf20Sopenharmony_ciconflitto con qualsiasi altra modifica che utilizzi la vecchia versione di
2938c2ecf20Sopenharmony_ciquella funzione.  Revisori e tester vogliono invece avere accesso alle
2948c2ecf20Sopenharmony_cimodifiche nella loro totalità prima che approdino nel ramo principale del
2958c2ecf20Sopenharmony_cikernel.  Uno potrebbe prendere le patch provenienti da tutti i sottosistemi
2968c2ecf20Sopenharmony_cid'interesse, ma questo sarebbe un lavoro enorme e fallace.
2978c2ecf20Sopenharmony_ci
2988c2ecf20Sopenharmony_ciLa risposta ci viene sotto forma di sorgenti -next, dove i sottosistemi sono
2998c2ecf20Sopenharmony_ciraccolti per essere testati e controllati.  Il più vecchio di questi sorgenti,
3008c2ecf20Sopenharmony_cigestito da Andrew Morton, è chiamato "-mm" (memory management, che è l'inizio
3018c2ecf20Sopenharmony_cidi tutto).  L'-mm integra patch proveniente da una lunga lista di sottosistemi;
3028c2ecf20Sopenharmony_cie ha, inoltre, alcune patch destinate al supporto del debugging.
3038c2ecf20Sopenharmony_ci
3048c2ecf20Sopenharmony_ciOltre a questo, -mm contiene una raccolta significativa di patch che sono
3058c2ecf20Sopenharmony_cistate selezionate da Andrew direttamente.  Queste patch potrebbero essere
3068c2ecf20Sopenharmony_cistate inviate in una lista di discussione, o possono essere applicate ad una
3078c2ecf20Sopenharmony_ciparte del kernel per la quale non esiste un sottosistema dedicato.
3088c2ecf20Sopenharmony_ciDi conseguenza, -mm opera come una specie di sottosistema "ultima spiaggia";
3098c2ecf20Sopenharmony_cise per una patch non esiste una via chiara per entrare nel ramo principale,
3108c2ecf20Sopenharmony_ciallora è probabile che finirà in -mm.  Le patch passate per -mm
3118c2ecf20Sopenharmony_cieventualmente finiranno nel sottosistema più appropriato o saranno inviate
3128c2ecf20Sopenharmony_cidirettamente a Linus.  In un tipico ciclo di sviluppo, circa il 5-10% delle
3138c2ecf20Sopenharmony_cipatch andrà nel ramo principale attraverso -mm.
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ciLa patch -mm correnti sono disponibili nella cartella "mmotm" (-mm of
3168c2ecf20Sopenharmony_cithe moment) all'indirizzo:
3178c2ecf20Sopenharmony_ci
3188c2ecf20Sopenharmony_ci      http://www.ozlabs.org/~akpm/mmotm/
3198c2ecf20Sopenharmony_ci
3208c2ecf20Sopenharmony_ciÈ molto probabile che l'uso dei sorgenti MMOTM diventi un'esperienza
3218c2ecf20Sopenharmony_cifrustrante; ci sono buone probabilità che non compili nemmeno.
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ciI sorgenti principali per il prossimo ciclo d'integrazione delle patch
3248c2ecf20Sopenharmony_ciè linux-next, gestito da Stephen Rothwell.  I sorgenti linux-next sono, per
3258c2ecf20Sopenharmony_cidefinizione, un'istantanea di come dovrà apparire il ramo principale dopo che
3268c2ecf20Sopenharmony_cila prossima finestra di inclusione si chiuderà.  I linux-next sono annunciati
3278c2ecf20Sopenharmony_cisulla lista di discussione linux-kernel e linux-next nel momento in cui
3288c2ecf20Sopenharmony_civengono assemblati; e possono essere scaricate da:
3298c2ecf20Sopenharmony_ci
3308c2ecf20Sopenharmony_ci	http://www.kernel.org/pub/linux/kernel/next/
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_ciLinux-next è divenuto parte integrante del processo di sviluppo del kernel;
3338c2ecf20Sopenharmony_citutte le patch incorporate durante una finestra di integrazione dovrebbero
3348c2ecf20Sopenharmony_ciaver trovato la propria strada in linux-next, a volte anche prima dell'apertura
3358c2ecf20Sopenharmony_cidella finestra di integrazione.
3368c2ecf20Sopenharmony_ci
3378c2ecf20Sopenharmony_ci
3388c2ecf20Sopenharmony_ciSorgenti in preparazione
3398c2ecf20Sopenharmony_ci------------------------
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_ciNei sorgenti del kernel esiste la cartella drivers/staging/, dove risiedono
3428c2ecf20Sopenharmony_cimolte sotto-cartelle per i driver o i filesystem che stanno per essere aggiunti
3438c2ecf20Sopenharmony_cial kernel.  Questi restano nella cartella drivers/staging fintanto che avranno
3448c2ecf20Sopenharmony_cibisogno di maggior lavoro; una volta completato, possono essere spostate
3458c2ecf20Sopenharmony_ciall'interno del kernel nel posto più appropriato.  Questo è il modo di tener
3468c2ecf20Sopenharmony_citraccia dei driver che non sono ancora in linea con gli standard di codifica
3478c2ecf20Sopenharmony_cio qualità, ma che le persone potrebbero voler usare ugualmente e tracciarne
3488c2ecf20Sopenharmony_cilo sviluppo.
3498c2ecf20Sopenharmony_ci
3508c2ecf20Sopenharmony_ciGreg Kroah-Hartman attualmente gestisce i sorgenti in preparazione. I driver
3518c2ecf20Sopenharmony_ciche non sono completamente pronti vengono inviati a lui, e ciascun driver avrà
3528c2ecf20Sopenharmony_cila propria sotto-cartella in drivers/staging/.  Assieme ai file sorgenti
3538c2ecf20Sopenharmony_cidei driver, dovrebbe essere presente nella stessa cartella anche un file TODO.
3548c2ecf20Sopenharmony_ciIl file TODO elenca il lavoro ancora da fare su questi driver per poter essere
3558c2ecf20Sopenharmony_ciaccettati nel kernel, e indica anche la lista di persone da inserire in copia
3568c2ecf20Sopenharmony_ciconoscenza per ogni modifica fatta.  Le regole attuali richiedono che i
3578c2ecf20Sopenharmony_cidriver debbano, come minimo, compilare adeguatamente.
3588c2ecf20Sopenharmony_ci
3598c2ecf20Sopenharmony_ciLa *preparazione* può essere una via relativamente facile per inserire nuovi
3608c2ecf20Sopenharmony_cidriver all'interno del ramo principale, dove, con un po' di fortuna, saranno
3618c2ecf20Sopenharmony_cinotati da altri sviluppatori e migliorati velocemente.  Entrare nella fase
3628c2ecf20Sopenharmony_cidi preparazione non è però la fine della storia, infatti, il codice che si
3638c2ecf20Sopenharmony_citrova nella cartella staging che non mostra regolari progressi potrebbe
3648c2ecf20Sopenharmony_ciessere rimosso.  Le distribuzioni, inoltre, tendono a dimostrarsi relativamente
3658c2ecf20Sopenharmony_ciriluttanti nell'attivare driver in preparazione. Quindi lo preparazione è,
3668c2ecf20Sopenharmony_cinel migliore dei casi, una tappa sulla strada verso il divenire un driver
3678c2ecf20Sopenharmony_cidel ramo principale.
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ci
3708c2ecf20Sopenharmony_ciStrumenti
3718c2ecf20Sopenharmony_ci---------
3728c2ecf20Sopenharmony_ci
3738c2ecf20Sopenharmony_ciCome è possibile notare dal testo sopra, il processo di sviluppo del kernel
3748c2ecf20Sopenharmony_cidipende pesantemente dalla capacità di guidare la raccolta di patch in
3758c2ecf20Sopenharmony_cidiverse direzioni.  L'intera cosa non funzionerebbe se non venisse svolta
3768c2ecf20Sopenharmony_cicon l'uso di strumenti appropriati e potenti.  Spiegare l'uso di tali
3778c2ecf20Sopenharmony_cistrumenti non è lo scopo di questo documento, ma c'è spazio per alcuni
3788c2ecf20Sopenharmony_ciconsigli.
3798c2ecf20Sopenharmony_ci
3808c2ecf20Sopenharmony_ciIn assoluto, nella comunità del kernel, predomina l'uso di git come sistema
3818c2ecf20Sopenharmony_cidi gestione dei sorgenti. Git è una delle diverse tipologie di sistemi
3828c2ecf20Sopenharmony_cidistribuiti di controllo versione che sono stati sviluppati nella comunità
3838c2ecf20Sopenharmony_cidel software libero.  Esso è calibrato per lo sviluppo del kernel, e si
3848c2ecf20Sopenharmony_cicomporta abbastanza bene quando ha a che fare con repositori grandi e con un
3858c2ecf20Sopenharmony_civasto numero di patch.  Git ha inoltre la reputazione di essere difficile
3868c2ecf20Sopenharmony_cida imparare e utilizzare, benché stia migliorando.  Agli sviluppatori
3878c2ecf20Sopenharmony_cidel kernel viene richiesta un po' di familiarità con git; anche se non lo
3888c2ecf20Sopenharmony_ciutilizzano per il proprio lavoro, hanno bisogno di git per tenersi al passo
3898c2ecf20Sopenharmony_cicon il lavoro degli altri sviluppatori (e con il ramo principale).
3908c2ecf20Sopenharmony_ci
3918c2ecf20Sopenharmony_ciGit è ora compreso in quasi tutte le distribuzioni Linux. Esiste una sito che
3928c2ecf20Sopenharmony_cipotete consultare:
3938c2ecf20Sopenharmony_ci
3948c2ecf20Sopenharmony_ci	http://git-scm.com/
3958c2ecf20Sopenharmony_ci
3968c2ecf20Sopenharmony_ciQui troverete i riferimenti alla documentazione e alle guide passo-passo.
3978c2ecf20Sopenharmony_ci
3988c2ecf20Sopenharmony_ciTra gli sviluppatori Kernel che non usano git, la scelta alternativa più
3998c2ecf20Sopenharmony_cipopolare è quasi sicuramente Mercurial:
4008c2ecf20Sopenharmony_ci
4018c2ecf20Sopenharmony_ci	http://www.selenic.com/mercurial/
4028c2ecf20Sopenharmony_ci
4038c2ecf20Sopenharmony_ciMercurial condivide diverse caratteristiche con git, ma fornisce
4048c2ecf20Sopenharmony_ciun'interfaccia che potrebbe risultare più semplice da utilizzare.
4058c2ecf20Sopenharmony_ci
4068c2ecf20Sopenharmony_ciL'altro strumento che vale la pena conoscere è Quilt:
4078c2ecf20Sopenharmony_ci
4088c2ecf20Sopenharmony_ci	http://savannah.nongnu.org/projects/quilt/
4098c2ecf20Sopenharmony_ci
4108c2ecf20Sopenharmony_ci
4118c2ecf20Sopenharmony_ciQuilt è un sistema di gestione delle patch, piuttosto che un sistema
4128c2ecf20Sopenharmony_cidi gestione dei sorgenti.  Non mantiene uno storico degli eventi; ma piuttosto
4138c2ecf20Sopenharmony_ciè orientato verso il tracciamento di uno specifico insieme di modifiche
4148c2ecf20Sopenharmony_cirispetto ad un codice in evoluzione.  Molti dei più grandi manutentori di
4158c2ecf20Sopenharmony_cisottosistema utilizzano quilt per gestire le patch che dovrebbero essere
4168c2ecf20Sopenharmony_ciintegrate.  Per la gestione di certe tipologie di sorgenti (-mm, per esempio),
4178c2ecf20Sopenharmony_ciquilt è il miglior strumento per svolgere il lavoro.
4188c2ecf20Sopenharmony_ci
4198c2ecf20Sopenharmony_ci
4208c2ecf20Sopenharmony_ciListe di discussione
4218c2ecf20Sopenharmony_ci--------------------
4228c2ecf20Sopenharmony_ci
4238c2ecf20Sopenharmony_ciUna grossa parte del lavoro di sviluppo del Kernel Linux viene svolto tramite
4248c2ecf20Sopenharmony_cile liste di discussione.  È difficile essere un membro della comunità
4258c2ecf20Sopenharmony_cipienamente coinvolto se non si partecipa almeno ad una lista da qualche
4268c2ecf20Sopenharmony_ciparte.  Ma, le liste di discussione di Linux rappresentano un potenziale
4278c2ecf20Sopenharmony_ciproblema per gli sviluppatori, che rischiano di venir sepolti da un mare di
4288c2ecf20Sopenharmony_ciemail, restare incagliati nelle convenzioni in vigore nelle liste Linux,
4298c2ecf20Sopenharmony_cio entrambi.
4308c2ecf20Sopenharmony_ci
4318c2ecf20Sopenharmony_ciMolte delle liste di discussione del Kernel girano su vger.kernel.org;
4328c2ecf20Sopenharmony_cil'elenco principale lo si trova sul sito:
4338c2ecf20Sopenharmony_ci
4348c2ecf20Sopenharmony_ci	http://vger.kernel.org/vger-lists.html
4358c2ecf20Sopenharmony_ci
4368c2ecf20Sopenharmony_ciEsistono liste gestite altrove; un certo numero di queste sono in
4378c2ecf20Sopenharmony_cilists.redhat.com.
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_ciLa lista di discussione principale per lo sviluppo del kernel è, ovviamente,
4408c2ecf20Sopenharmony_cilinux-kernel.  Questa lista è un luogo ostile dove trovarsi; i volumi possono
4418c2ecf20Sopenharmony_ciraggiungere i 500 messaggi al giorno, la quantità di "rumore" è elevata,
4428c2ecf20Sopenharmony_cila conversazione può essere strettamente tecnica e i partecipanti non sono
4438c2ecf20Sopenharmony_cisempre preoccupati di mostrare un alto livello di educazione.  Ma non esiste
4448c2ecf20Sopenharmony_cialtro luogo dove la comunità di sviluppo del kernel si unisce per intero;
4458c2ecf20Sopenharmony_cigli sviluppatori che evitano tale lista si perderanno informazioni importanti.
4468c2ecf20Sopenharmony_ci
4478c2ecf20Sopenharmony_ciCi sono alcuni consigli che possono essere utili per sopravvivere a
4488c2ecf20Sopenharmony_cilinux-kernel:
4498c2ecf20Sopenharmony_ci
4508c2ecf20Sopenharmony_ci- Tenete la lista in una cartella separata, piuttosto che inserirla nella
4518c2ecf20Sopenharmony_ci  casella di posta principale.  Così da essere in grado di ignorare il flusso
4528c2ecf20Sopenharmony_ci  di mail per un certo periodo di tempo.
4538c2ecf20Sopenharmony_ci
4548c2ecf20Sopenharmony_ci- Non cercate di seguire ogni conversazione - nessuno lo fa.  È importante
4558c2ecf20Sopenharmony_ci  filtrare solo gli argomenti d'interesse (sebbene va notato che le
4568c2ecf20Sopenharmony_ci  conversazioni di lungo periodo possono deviare dall'argomento originario
4578c2ecf20Sopenharmony_ci  senza cambiare il titolo della mail) e le persone che stanno partecipando.
4588c2ecf20Sopenharmony_ci
4598c2ecf20Sopenharmony_ci- Non alimentate i troll. Se qualcuno cerca di creare nervosismo, ignoratelo.
4608c2ecf20Sopenharmony_ci
4618c2ecf20Sopenharmony_ci- Quando rispondete ad una mail linux-kernel (o ad altre liste) mantenete
4628c2ecf20Sopenharmony_ci  tutti i Cc:.  In assenza di importanti motivazioni (come una richiesta
4638c2ecf20Sopenharmony_ci  esplicita), non dovreste mai togliere destinatari.  Assicuratevi sempre che
4648c2ecf20Sopenharmony_ci  la persona alla quale state rispondendo sia presente nella lista Cc. Questa
4658c2ecf20Sopenharmony_ci  usanza fa si che divenga inutile chiedere esplicitamente di essere inseriti
4668c2ecf20Sopenharmony_ci  in copia nel rispondere al vostro messaggio.
4678c2ecf20Sopenharmony_ci
4688c2ecf20Sopenharmony_ci- Cercate nell'archivio della lista (e nella rete nella sua totalità) prima
4698c2ecf20Sopenharmony_ci  di far domande.  Molti sviluppatori possono divenire impazienti con le
4708c2ecf20Sopenharmony_ci  persone che chiaramente non hanno svolto i propri compiti a casa.
4718c2ecf20Sopenharmony_ci
4728c2ecf20Sopenharmony_ci- Evitate il *top-posting* (cioè la pratica di mettere la vostra risposta sopra
4738c2ecf20Sopenharmony_ci  alla frase alla quale state rispondendo).  Ciò renderebbe la vostra risposta
4748c2ecf20Sopenharmony_ci  difficile da leggere e genera scarsa impressione.
4758c2ecf20Sopenharmony_ci
4768c2ecf20Sopenharmony_ci- Chiedete nella lista di discussione corretta.  Linux-kernel può essere un
4778c2ecf20Sopenharmony_ci  punto di incontro generale, ma non è il miglior posto dove trovare
4788c2ecf20Sopenharmony_ci  sviluppatori da tutti i sottosistemi.
4798c2ecf20Sopenharmony_ci
4808c2ecf20Sopenharmony_ciInfine, la ricerca della corretta lista di discussione è uno degli errori più
4818c2ecf20Sopenharmony_cicomuni per gli sviluppatori principianti.  Qualcuno che pone una domanda
4828c2ecf20Sopenharmony_cirelativa alla rete su linux-kernel riceverà quasi certamente il suggerimento
4838c2ecf20Sopenharmony_cidi chiedere sulla lista netdev, che è la lista frequentata dagli sviluppatori
4848c2ecf20Sopenharmony_cidi rete.  Ci sono poi altre liste per i sottosistemi SCSI, video4linux, IDE,
4858c2ecf20Sopenharmony_cifilesystem, etc.  Il miglior posto dove cercare una lista di discussione è il
4868c2ecf20Sopenharmony_cifile MAINTAINERS che si trova nei sorgenti del kernel.
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ciIniziare con lo sviluppo del Kernel
4898c2ecf20Sopenharmony_ci-----------------------------------
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_ciSono comuni le domande sul come iniziare con lo sviluppo del kernel - sia da
4928c2ecf20Sopenharmony_cisingole persone che da aziende.  Altrettanto comuni sono i passi falsi che
4938c2ecf20Sopenharmony_cirendono l'inizio di tale relazione più difficile di quello che dovrebbe essere.
4948c2ecf20Sopenharmony_ci
4958c2ecf20Sopenharmony_ciLe aziende spesso cercano di assumere sviluppatori noti per creare un gruppo
4968c2ecf20Sopenharmony_cidi sviluppo iniziale.  Questo, in effetti, può essere una tecnica efficace.
4978c2ecf20Sopenharmony_ciMa risulta anche essere dispendiosa e non va ad accrescere il bacino di
4988c2ecf20Sopenharmony_cisviluppatori kernel con esperienza.  È possibile anche "portare a casa"
4998c2ecf20Sopenharmony_cisviluppatori per accelerare lo sviluppo del kernel, dando comunque
5008c2ecf20Sopenharmony_ciall'investimento un po' di tempo.  Prendersi questo tempo può fornire
5018c2ecf20Sopenharmony_cial datore di lavoro un gruppo di sviluppatori che comprendono sia il kernel
5028c2ecf20Sopenharmony_ciche l'azienda stessa, e che possono supportare la formazione di altre persone.
5038c2ecf20Sopenharmony_ciNel medio periodo, questa è spesso uno delle soluzioni più proficue.
5048c2ecf20Sopenharmony_ci
5058c2ecf20Sopenharmony_ciI singoli sviluppatori sono spesso, comprensibilmente, una perdita come punto
5068c2ecf20Sopenharmony_cidi partenza.  Iniziare con un grande progetto può rivelarsi intimidatorio;
5078c2ecf20Sopenharmony_cispesso all'inizio si vuole solo verificare il terreno con qualcosa di piccolo.
5088c2ecf20Sopenharmony_ciQuesta è una delle motivazioni per le quali molti sviluppatori saltano alla
5098c2ecf20Sopenharmony_cicreazione di patch che vanno a sistemare errori di battitura o
5108c2ecf20Sopenharmony_ciproblematiche minori legate allo stile del codice.  Sfortunatamente, tali
5118c2ecf20Sopenharmony_cipatch creano un certo livello di rumore che distrae l'intera comunità di
5128c2ecf20Sopenharmony_cisviluppo, quindi, sempre di più, esse vengono degradate.  I nuovi sviluppatori
5138c2ecf20Sopenharmony_ciche desiderano presentarsi alla comunità non riceveranno l'accoglienza
5148c2ecf20Sopenharmony_ciche vorrebbero con questi mezzi.
5158c2ecf20Sopenharmony_ci
5168c2ecf20Sopenharmony_ciAndrew Morton da questo consiglio agli aspiranti sviluppatori kernel
5178c2ecf20Sopenharmony_ci
5188c2ecf20Sopenharmony_ci::
5198c2ecf20Sopenharmony_ci
5208c2ecf20Sopenharmony_ci     Il primo progetto per un neofita del kernel dovrebbe essere
5218c2ecf20Sopenharmony_ci     sicuramente quello di "assicurarsi che il kernel funzioni alla
5228c2ecf20Sopenharmony_ci     perfezione sempre e su tutte le macchine sulle quali potete stendere
5238c2ecf20Sopenharmony_ci     la vostra mano".  Solitamente il modo per fare ciò è quello di
5248c2ecf20Sopenharmony_ci     collaborare con gli altri nel sistemare le cose (questo richiede
5258c2ecf20Sopenharmony_ci     persistenza!) ma va bene - è parte dello sviluppo kernel.
5268c2ecf20Sopenharmony_ci
5278c2ecf20Sopenharmony_ci(http://lwn.net/Articles/283982/).
5288c2ecf20Sopenharmony_ci
5298c2ecf20Sopenharmony_ciIn assenza di problemi ovvi da risolvere, si consiglia agli sviluppatori
5308c2ecf20Sopenharmony_cidi consultare, in generale, la lista di regressioni e di bachi aperti.
5318c2ecf20Sopenharmony_ciNon c'è mai carenza di problematiche bisognose di essere sistemate;
5328c2ecf20Sopenharmony_ciaccollandosi tali questioni gli sviluppatori accumuleranno esperienza con
5338c2ecf20Sopenharmony_cila procedura, ed allo stesso tempo, aumenteranno la loro rispettabilità
5348c2ecf20Sopenharmony_ciall'interno della comunità di sviluppo.
535