1*4882a593Smuzhiyun.. include:: ../disclaimer-ita.rst 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun:Original: :ref:`Documentation/process/1.Intro.rst <development_process_intro>` 4*4882a593Smuzhiyun:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun.. _it_development_intro: 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunIntroduzione 9*4882a593Smuzhiyun============ 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunRiepilogo generale 12*4882a593Smuzhiyun------------------ 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunIl resto di questa sezione riguarda il processo di sviluppo del kernel e 15*4882a593Smuzhiyunquella sorta di frustrazione che gli sviluppatori e i loro datori di lavoro 16*4882a593Smuzhiyunpotrebbero dover affrontare. Ci sono molte ragioni per le quali del codice 17*4882a593Smuzhiyunper il kernel debba essere incorporato nel kernel ufficiale, fra le quali: 18*4882a593Smuzhiyundisponibilità immediata agli utilizzatori, supporto della comunità in 19*4882a593Smuzhiyundifferenti modalità, e la capacità di influenzare la direzione dello sviluppo 20*4882a593Smuzhiyundel kernel. 21*4882a593SmuzhiyunIl codice che contribuisce al kernel Linux deve essere reso disponibile sotto 22*4882a593Smuzhiyununa licenza GPL-compatibile. 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunLa sezione :ref:`it_development_process` introduce il processo di sviluppo, 25*4882a593Smuzhiyunil ciclo di rilascio del kernel, ed i meccanismi della finestra 26*4882a593Smuzhiyund'incorporazione. Il capitolo copre le varie fasi di una modifica: sviluppo, 27*4882a593Smuzhiyunrevisione e ciclo d'incorporazione. Ci sono alcuni dibattiti su strumenti e 28*4882a593Smuzhiyunliste di discussione. Gli sviluppatori che sono in attesa di poter sviluppare 29*4882a593Smuzhiyunqualcosa per il kernel sono invitati ad individuare e sistemare bachi come 30*4882a593Smuzhiyunesercizio iniziale. 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunLa sezione :ref:`it_development_early_stage` copre i primi stadi della 33*4882a593Smuzhiyunpianificazione di un progetto di sviluppo, con particolare enfasi sul 34*4882a593Smuzhiyuncoinvolgimento della comunità, il prima possibile. 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunLa sezione :ref:`it_development_coding` riguarda il processo di scrittura 37*4882a593Smuzhiyundel codice. Qui, sono esposte le diverse insidie che sono state già affrontate 38*4882a593Smuzhiyunda altri sviluppatori. Il capitolo copre anche alcuni dei requisiti per le 39*4882a593Smuzhiyunmodifiche, ed esiste un'introduzione ad alcuni strumenti che possono aiutarvi 40*4882a593Smuzhiyunnell'assicurarvi che le modifiche per il kernel siano corrette. 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunLa sezione :ref:`it_development_posting` parla del processo di pubblicazione 43*4882a593Smuzhiyundelle modifiche per la revisione. Per essere prese in considerazione dalla 44*4882a593Smuzhiyuncomunità di sviluppo, le modifiche devono essere propriamente formattate ed 45*4882a593Smuzhiyunesposte, e devono essere inviate nel posto giusto. Seguire i consigli presenti 46*4882a593Smuzhiyunin questa sezione dovrebbe essere d'aiuto nell'assicurare la migliore 47*4882a593Smuzhiyunaccoglienza possibile del vostro lavoro. 48*4882a593Smuzhiyun 49*4882a593SmuzhiyunLa sezione :ref:`it_development_followthrough` copre ciò che accade dopo 50*4882a593Smuzhiyunla pubblicazione delle modifiche; a questo punto il lavoro è lontano 51*4882a593Smuzhiyundall'essere concluso. Lavorare con i revisori è una parte cruciale del 52*4882a593Smuzhiyunprocesso di sviluppo; questa sezione offre una serie di consigli su come 53*4882a593Smuzhiyunevitare problemi in questa importante fase. Gli sviluppatori sono diffidenti 54*4882a593Smuzhiyunnell'affermare che il lavoro è concluso quando una modifica è incorporata nei 55*4882a593Smuzhiyunsorgenti principali. 56*4882a593Smuzhiyun 57*4882a593SmuzhiyunLa sezione :ref:`it_development_advancedtopics` introduce un paio di argomenti 58*4882a593Smuzhiyun"avanzati": gestire le modifiche con git e controllare le modifiche pubblicate 59*4882a593Smuzhiyunda altri. 60*4882a593Smuzhiyun 61*4882a593SmuzhiyunLa sezione :ref:`it_development_conclusion` chiude il documento con dei 62*4882a593Smuzhiyunriferimenti ad altre fonti che forniscono ulteriori informazioni sullo sviluppo 63*4882a593Smuzhiyundel kernel. 64*4882a593Smuzhiyun 65*4882a593SmuzhiyunDi cosa parla questo documento 66*4882a593Smuzhiyun------------------------------ 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunIl kernel Linux, ha oltre 8 milioni di linee di codice e ben oltre 1000 69*4882a593Smuzhiyuncontributori ad ogni rilascio; è uno dei più vasti e più attivi software 70*4882a593Smuzhiyunliberi progettati mai esistiti. Sin dal sul modesto inizio nel 1991, 71*4882a593Smuzhiyunquesto kernel si è evoluto nel miglior componente per sistemi operativi 72*4882a593Smuzhiyunche fanno funzionare piccoli riproduttori musicali, PC, grandi super computer 73*4882a593Smuzhiyune tutte le altre tipologie di sistemi fra questi estremi. È una soluzione 74*4882a593Smuzhiyunrobusta, efficiente ed adattabile a praticamente qualsiasi situazione. 75*4882a593Smuzhiyun 76*4882a593SmuzhiyunCon la crescita di Linux è arrivato anche un aumento di sviluppatori 77*4882a593Smuzhiyun(ed aziende) desiderosi di partecipare a questo sviluppo. I produttori di 78*4882a593Smuzhiyunhardware vogliono assicurarsi che il loro prodotti siano supportati da Linux, 79*4882a593Smuzhiyunrendendo questi prodotti attrattivi agli utenti Linux. I produttori di 80*4882a593Smuzhiyunsistemi integrati, che usano Linux come componente di un prodotto integrato, 81*4882a593Smuzhiyunvogliono che Linux sia capace ed adeguato agli obiettivi ed il più possibile 82*4882a593Smuzhiyunalla mano. Fornitori ed altri produttori di software che basano i propri 83*4882a593Smuzhiyunprodotti su Linux hanno un chiaro interesse verso capacità, prestazioni ed 84*4882a593Smuzhiyunaffidabilità del kernel Linux. E gli utenti finali, anche, spesso vorrebbero 85*4882a593Smuzhiyuncambiare Linux per renderlo più aderente alle proprie necessità. 86*4882a593Smuzhiyun 87*4882a593SmuzhiyunUna delle caratteristiche più coinvolgenti di Linux è quella dell'accessibilità 88*4882a593Smuzhiyunper gli sviluppatori; chiunque con le capacità richieste può migliorare 89*4882a593SmuzhiyunLinux ed influenzarne la direzione di sviluppo. Prodotti non open-source non 90*4882a593Smuzhiyunpossono offrire questo tipo di apertura, che è una caratteristica del software 91*4882a593Smuzhiyunlibero. Ma, anzi, il kernel è persino più aperto rispetto a molti altri 92*4882a593Smuzhiyunprogetti di software libero. Un classico ciclo di sviluppo trimestrale può 93*4882a593Smuzhiyuncoinvolgere 1000 sviluppatori che lavorano per più di 100 differenti aziende 94*4882a593Smuzhiyun(o per nessuna azienda). 95*4882a593Smuzhiyun 96*4882a593SmuzhiyunLavorare con la comunità di sviluppo del kernel non è particolarmente 97*4882a593Smuzhiyundifficile. Ma, ciononostante, diversi potenziali contributori hanno trovato 98*4882a593Smuzhiyundelle difficoltà quando hanno cercato di lavorare sul kernel. La comunità del 99*4882a593Smuzhiyunkernel utilizza un proprio modo di operare che gli permette di funzionare 100*4882a593Smuzhiyunagevolmente (e genera un prodotto di alta qualità) in un ambiente dove migliaia 101*4882a593Smuzhiyundi stringhe di codice sono modificate ogni giorni. Quindi non deve sorprendere 102*4882a593Smuzhiyunche il processo di sviluppo del kernel differisca notevolmente dai metodi di 103*4882a593Smuzhiyunsviluppo privati. 104*4882a593Smuzhiyun 105*4882a593SmuzhiyunIl processo di sviluppo del Kernel può, dall'altro lato, risultare 106*4882a593Smuzhiyunintimidatorio e strano ai nuovi sviluppatori, ma ha dietro di se buone ragioni 107*4882a593Smuzhiyune solide esperienze. Uno sviluppatore che non comprende i modi della comunità 108*4882a593Smuzhiyundel kernel (o, peggio, che cerchi di aggirarli o violarli) avrà un'esperienza 109*4882a593Smuzhiyundeludente nel proprio bagaglio. La comunità di sviluppo, sebbene sia utile 110*4882a593Smuzhiyuna coloro che cercano di imparare, ha poco tempo da dedicare a coloro che non 111*4882a593Smuzhiyunascoltano o coloro che non sono interessati al processo di sviluppo. 112*4882a593Smuzhiyun 113*4882a593SmuzhiyunSi spera che coloro che leggono questo documento saranno in grado di evitare 114*4882a593Smuzhiyunqueste esperienze spiacevoli. C'è molto materiale qui, ma lo sforzo della 115*4882a593Smuzhiyunlettura sarà ripagato in breve tempo. La comunità di sviluppo ha sempre 116*4882a593Smuzhiyunbisogno di sviluppatori che vogliano aiutare a rendere il kernel migliore; 117*4882a593Smuzhiyunil testo seguente potrebbe esservi d'aiuto - o essere d'aiuto ai vostri 118*4882a593Smuzhiyuncollaboratori- per entrare a far parte della nostra comunità. 119*4882a593Smuzhiyun 120*4882a593SmuzhiyunCrediti 121*4882a593Smuzhiyun------- 122*4882a593Smuzhiyun 123*4882a593SmuzhiyunQuesto documento è stato scritto da Jonathan Corbet, corbet@lwn.net. 124*4882a593SmuzhiyunÈ stato migliorato da Johannes Berg, James Berry, Alex Chiang, Roland 125*4882a593SmuzhiyunDreier, Randy Dunlap, Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh, 126*4882a593SmuzhiyunAmanda McPherson, Andrew Morton, Andrew Price, Tsugikazu Shibata e Jochen Voß. 127*4882a593Smuzhiyun 128*4882a593SmuzhiyunQuesto lavoro è stato supportato dalla Linux Foundation; un ringraziamento 129*4882a593Smuzhiyunspeciale ad Amanda McPherson, che ha visto il valore di questo lavoro e lo ha 130*4882a593Smuzhiyunreso possibile. 131*4882a593Smuzhiyun 132*4882a593SmuzhiyunL'importanza d'avere il codice nei sorgenti principali 133*4882a593Smuzhiyun------------------------------------------------------ 134*4882a593Smuzhiyun 135*4882a593SmuzhiyunAlcune aziende e sviluppatori ogni tanto si domandano perché dovrebbero 136*4882a593Smuzhiyunpreoccuparsi di apprendere come lavorare con la comunità del kernel e di 137*4882a593Smuzhiyuninserire il loro codice nel ramo di sviluppo principale (per ramo principale 138*4882a593Smuzhiyuns'intende quello mantenuto da Linus Torvalds e usato come base dai 139*4882a593Smuzhiyundistributori Linux). Nel breve termine, contribuire al codice può sembrare 140*4882a593Smuzhiyunun costo inutile; può sembra più facile tenere separato il proprio codice e 141*4882a593Smuzhiyunsupportare direttamente i suoi utilizzatori. La verità è che il tenere il 142*4882a593Smuzhiyuncodice separato ("fuori dai sorgenti", *"out-of-tree"*) è un falso risparmio. 143*4882a593Smuzhiyun 144*4882a593SmuzhiyunPer dimostrare i costi di un codice "fuori dai sorgenti", eccovi 145*4882a593Smuzhiyunalcuni aspetti rilevanti del processo di sviluppo kernel; la maggior parte 146*4882a593Smuzhiyundi essi saranno approfonditi dettagliatamente più avanti in questo documento. 147*4882a593SmuzhiyunConsiderate: 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun- Il codice che è stato inserito nel ramo principale del kernel è disponibile 150*4882a593Smuzhiyun a tutti gli utilizzatori Linux. Sarà automaticamente presente in tutte le 151*4882a593Smuzhiyun distribuzioni che lo consentono. Non c'è bisogno di: driver per dischi, 152*4882a593Smuzhiyun scaricare file, o della scocciatura del dover supportare diverse versioni di 153*4882a593Smuzhiyun diverse distribuzioni; funziona già tutto, per gli sviluppatori e per gli 154*4882a593Smuzhiyun utilizzatori. L'inserimento nel ramo principale risolve un gran numero di 155*4882a593Smuzhiyun problemi di distribuzione e di supporto. 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun- Nonostante gli sviluppatori kernel si sforzino di tenere stabile 158*4882a593Smuzhiyun l'interfaccia dello spazio utente, quella interna al kernel è in continuo 159*4882a593Smuzhiyun cambiamento. La mancanza di un'interfaccia interna è deliberatamente una 160*4882a593Smuzhiyun decisione di progettazione; ciò permette che i miglioramenti fondamentali 161*4882a593Smuzhiyun vengano fatti in un qualsiasi momento e che risultino fatti con un codice di 162*4882a593Smuzhiyun alta qualità. Ma una delle conseguenze di questa politica è che qualsiasi 163*4882a593Smuzhiyun codice "fuori dai sorgenti" richiede costante manutenzione per renderlo 164*4882a593Smuzhiyun funzionante coi kernel più recenti. Tenere un codice "fuori dai sorgenti" 165*4882a593Smuzhiyun richiede una mole di lavoro significativa solo per farlo funzionare. 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun Invece, il codice che si trova nel ramo principale non necessita di questo 168*4882a593Smuzhiyun tipo di lavoro poiché ad ogni sviluppatore che faccia una modifica alle 169*4882a593Smuzhiyun interfacce viene richiesto di sistemare anche il codice che utilizza 170*4882a593Smuzhiyun quell'interfaccia. Quindi, il codice che è stato inserito nel ramo principale 171*4882a593Smuzhiyun ha dei costi di mantenimento significativamente più bassi. 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun- Oltre a ciò, spesso il codice che è all'interno del kernel sarà migliorato da 174*4882a593Smuzhiyun altri sviluppatori. Dare pieni poteri alla vostra comunità di utenti e ai 175*4882a593Smuzhiyun clienti può portare a sorprendenti risultati che migliorano i vostri 176*4882a593Smuzhiyun prodotti. 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun- Il codice kernel è soggetto a revisioni, sia prima che dopo l'inserimento 179*4882a593Smuzhiyun nel ramo principale. Non importa quanto forti fossero le abilità dello 180*4882a593Smuzhiyun sviluppatore originale, il processo di revisione troverà il modo di migliore 181*4882a593Smuzhiyun il codice. Spesso la revisione trova bachi importanti e problemi di 182*4882a593Smuzhiyun sicurezza. Questo è particolarmente vero per il codice che è stato 183*4882a593Smuzhiyun sviluppato in un ambiente chiuso; tale codice ottiene un forte beneficio 184*4882a593Smuzhiyun dalle revisioni provenienti da sviluppatori esteri. Il codice 185*4882a593Smuzhiyun "fuori dai sorgenti", invece, è un codice di bassa qualità. 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun- La partecipazione al processo di sviluppo costituisce la vostra via per 188*4882a593Smuzhiyun influenzare la direzione di sviluppo del kernel. Gli utilizzatori che 189*4882a593Smuzhiyun "reclamano da bordo campo" sono ascoltati, ma gli sviluppatori attivi 190*4882a593Smuzhiyun hanno una voce più forte - e la capacità di implementare modifiche che 191*4882a593Smuzhiyun renderanno il kernel più funzionale alle loro necessità. 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun- Quando il codice è gestito separatamente, esiste sempre la possibilità che 194*4882a593Smuzhiyun terze parti contribuiscano con una differente implementazione che fornisce 195*4882a593Smuzhiyun le stesse funzionalità. Se dovesse accadere, l'inserimento del codice 196*4882a593Smuzhiyun diventerà molto più difficile - fino all'impossibilità. Poi, dovrete far 197*4882a593Smuzhiyun fronte a delle alternative poco piacevoli, come: (1) mantenere un elemento 198*4882a593Smuzhiyun non standard "fuori dai sorgenti" per un tempo indefinito, o (2) abbandonare 199*4882a593Smuzhiyun il codice e far migrare i vostri utenti alla versione "nei sorgenti". 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun- Contribuire al codice è l'azione fondamentale che fa funzionare tutto il 202*4882a593Smuzhiyun processo. Contribuendo attraverso il vostro codice potete aggiungere nuove 203*4882a593Smuzhiyun funzioni al kernel e fornire competenze ed esempi che saranno utili ad 204*4882a593Smuzhiyun altri sviluppatori. Se avete sviluppato del codice Linux (o state pensando 205*4882a593Smuzhiyun di farlo), avete chiaramente interesse nel far proseguire il successo di 206*4882a593Smuzhiyun questa piattaforma. Contribuire al codice è une delle migliori vie per 207*4882a593Smuzhiyun aiutarne il successo. 208*4882a593Smuzhiyun 209*4882a593SmuzhiyunIl ragionamento sopra citato si applica ad ogni codice "fuori dai sorgenti" 210*4882a593Smuzhiyundal kernel, incluso il codice proprietario distribuito solamente in formato 211*4882a593Smuzhiyunbinario. Ci sono, comunque, dei fattori aggiuntivi che dovrebbero essere 212*4882a593Smuzhiyuntenuti in conto prima di prendere in considerazione qualsiasi tipo di 213*4882a593Smuzhiyundistribuzione binaria di codice kernel. Questo include che: 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun- Le questioni legali legate alla distribuzione di moduli kernel proprietari 216*4882a593Smuzhiyun sono molto nebbiose; parecchi detentori di copyright sul kernel credono che 217*4882a593Smuzhiyun molti moduli binari siano prodotti derivati del kernel e che, come risultato, 218*4882a593Smuzhiyun la loro diffusione sia una violazione della licenza generale di GNU (della 219*4882a593Smuzhiyun quale si parlerà più avanti). L'autore qui non è un avvocato, e 220*4882a593Smuzhiyun niente in questo documento può essere considerato come un consiglio legale. 221*4882a593Smuzhiyun Il vero stato legale dei moduli proprietari può essere determinato 222*4882a593Smuzhiyun esclusivamente da un giudice. Ma l'incertezza che perseguita quei moduli 223*4882a593Smuzhiyun è lì comunque. 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun- I moduli binari aumentano di molto la difficoltà di fare debugging del 226*4882a593Smuzhiyun kernel, al punto che la maggior parte degli sviluppatori del kernel non 227*4882a593Smuzhiyun vorranno nemmeno tentare. Quindi la diffusione di moduli esclusivamente 228*4882a593Smuzhiyun binari renderà difficile ai vostri utilizzatori trovare un supporto dalla 229*4882a593Smuzhiyun comunità. 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun- Il supporto è anche difficile per i distributori di moduli binari che devono 232*4882a593Smuzhiyun fornire una versione del modulo per ogni distribuzione e per ogni versione 233*4882a593Smuzhiyun del kernel che vogliono supportate. Per fornire una copertura ragionevole e 234*4882a593Smuzhiyun comprensiva, può essere richiesto di produrre dozzine di singoli moduli. 235*4882a593Smuzhiyun E inoltre i vostri utilizzatori dovranno aggiornare il vostro modulo 236*4882a593Smuzhiyun separatamente ogni volta che aggiornano il loro kernel. 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun- Tutto ciò che è stato detto prima riguardo alla revisione del codice si 239*4882a593Smuzhiyun applica doppiamente al codice proprietario. Dato che questo codice non è 240*4882a593Smuzhiyun del tutto disponibile, non può essere revisionato dalla comunità e avrà, 241*4882a593Smuzhiyun senza dubbio, seri problemi. 242*4882a593Smuzhiyun 243*4882a593SmuzhiyunI produttori di sistemi integrati, in particolare, potrebbero esser tentati 244*4882a593Smuzhiyundall'evitare molto di ciò che è stato detto in questa sezione, credendo che 245*4882a593Smuzhiyunstiano distribuendo un prodotto finito che utilizza una versione del kernel 246*4882a593Smuzhiyunimmutabile e che non richiede un ulteriore sviluppo dopo il rilascio. Questa 247*4882a593Smuzhiyunidea non comprende il valore di una vasta revisione del codice e il valore 248*4882a593Smuzhiyundel permettere ai propri utenti di aggiungere funzionalità al vostro prodotto. 249*4882a593SmuzhiyunMa anche questi prodotti, hanno una vita commerciale limitata, dopo la quale 250*4882a593Smuzhiyundeve essere rilasciata una nuova versione. A quel punto, i produttori il cui 251*4882a593Smuzhiyuncodice è nel ramo principale di sviluppo avranno un codice ben mantenuto e 252*4882a593Smuzhiyunsaranno in una posizione migliore per ottenere velocemente un nuovo prodotto 253*4882a593Smuzhiyunpronto per essere distribuito. 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun 256*4882a593SmuzhiyunLicenza 257*4882a593Smuzhiyun------- 258*4882a593Smuzhiyun 259*4882a593SmuzhiyunIL codice Linux utilizza diverse licenze, ma il codice completo deve essere 260*4882a593Smuzhiyuncompatibile con la seconda versione della licenza GNU General Public License 261*4882a593Smuzhiyun(GPLv2), che è la licenza che copre la distribuzione del kernel. 262*4882a593SmuzhiyunNella pratica, ciò significa che tutti i contributi al codice sono coperti 263*4882a593Smuzhiyunanche'essi dalla GPLv2 (con, opzionalmente, una dicitura che permette la 264*4882a593Smuzhiyunpossibilità di distribuirlo con licenze più recenti di GPL) o dalla licenza 265*4882a593Smuzhiyunthree-clause BSD. Qualsiasi contributo che non è coperto da una licenza 266*4882a593Smuzhiyuncompatibile non verrà accettata nel kernel. 267*4882a593Smuzhiyun 268*4882a593SmuzhiyunPer il codice sottomesso al kernel non è necessario (o richiesto) la 269*4882a593Smuzhiyunconcessione del Copyright. Tutto il codice inserito nel ramo principale del 270*4882a593Smuzhiyunkernel conserva la sua proprietà originale; ne risulta che ora il kernel abbia 271*4882a593Smuzhiyunmigliaia di proprietari. 272*4882a593Smuzhiyun 273*4882a593SmuzhiyunUna conseguenza di questa organizzazione della proprietà è che qualsiasi 274*4882a593Smuzhiyuntentativo di modifica della licenza del kernel è destinata ad un quasi sicuro 275*4882a593Smuzhiyunfallimento. Esistono alcuni scenari pratici nei quali il consenso di tutti 276*4882a593Smuzhiyuni detentori di copyright può essere ottenuto (o il loro codice verrà rimosso 277*4882a593Smuzhiyundal kernel). Quindi, in sostanza, non esiste la possibilità che si giunga ad 278*4882a593Smuzhiyununa versione 3 della licenza GPL nel prossimo futuro. 279*4882a593Smuzhiyun 280*4882a593SmuzhiyunÈ imperativo che tutto il codice che contribuisce al kernel sia legittimamente 281*4882a593Smuzhiyunsoftware libero. Per questa ragione, un codice proveniente da un contributore 282*4882a593Smuzhiyunanonimo (o sotto pseudonimo) non verrà accettato. È richiesto a tutti i 283*4882a593Smuzhiyuncontributori di firmare il proprio codice, attestando così che quest'ultimo 284*4882a593Smuzhiyunpuò essere distribuito insieme al kernel sotto la licenza GPL. Il codice che 285*4882a593Smuzhiyunnon è stato licenziato come software libero dal proprio creatore, o che 286*4882a593Smuzhiyunpotrebbe creare problemi di copyright per il kernel (come il codice derivante 287*4882a593Smuzhiyunda processi di ingegneria inversa senza le opportune tutele), non può essere 288*4882a593Smuzhiyundiffuso. 289*4882a593Smuzhiyun 290*4882a593SmuzhiyunDomande relative a questioni legate al copyright sono frequenti nelle liste 291*4882a593Smuzhiyundi discussione dedicate allo sviluppo di Linux. Tali quesiti, normalmente, 292*4882a593Smuzhiyunnon riceveranno alcuna risposta, ma una cosa deve essere tenuta presente: 293*4882a593Smuzhiyunle persone che risponderanno a quelle domande non sono avvocati e non possono 294*4882a593Smuzhiyunfornire supporti legali. Se avete questioni legali relative ai sorgenti 295*4882a593Smuzhiyundel codice Linux, non esiste alternativa che quella di parlare con un 296*4882a593Smuzhiyunavvocato esperto nel settore. Fare affidamento sulle risposte ottenute da 297*4882a593Smuzhiyununa lista di discussione tecnica è rischioso. 298