18c2ecf20Sopenharmony_ci.. include:: ../disclaimer-ita.rst 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci:Original: :ref:`Documentation/process/1.Intro.rst <development_process_intro>` 48c2ecf20Sopenharmony_ci:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it> 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci.. _it_development_intro: 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ciIntroduzione 98c2ecf20Sopenharmony_ci============ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciRiepilogo generale 128c2ecf20Sopenharmony_ci------------------ 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciIl resto di questa sezione riguarda il processo di sviluppo del kernel e 158c2ecf20Sopenharmony_ciquella sorta di frustrazione che gli sviluppatori e i loro datori di lavoro 168c2ecf20Sopenharmony_cipotrebbero dover affrontare. Ci sono molte ragioni per le quali del codice 178c2ecf20Sopenharmony_ciper il kernel debba essere incorporato nel kernel ufficiale, fra le quali: 188c2ecf20Sopenharmony_cidisponibilità immediata agli utilizzatori, supporto della comunità in 198c2ecf20Sopenharmony_cidifferenti modalità, e la capacità di influenzare la direzione dello sviluppo 208c2ecf20Sopenharmony_cidel kernel. 218c2ecf20Sopenharmony_ciIl codice che contribuisce al kernel Linux deve essere reso disponibile sotto 228c2ecf20Sopenharmony_ciuna licenza GPL-compatibile. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciLa sezione :ref:`it_development_process` introduce il processo di sviluppo, 258c2ecf20Sopenharmony_ciil ciclo di rilascio del kernel, ed i meccanismi della finestra 268c2ecf20Sopenharmony_cid'incorporazione. Il capitolo copre le varie fasi di una modifica: sviluppo, 278c2ecf20Sopenharmony_cirevisione e ciclo d'incorporazione. Ci sono alcuni dibattiti su strumenti e 288c2ecf20Sopenharmony_ciliste di discussione. Gli sviluppatori che sono in attesa di poter sviluppare 298c2ecf20Sopenharmony_ciqualcosa per il kernel sono invitati ad individuare e sistemare bachi come 308c2ecf20Sopenharmony_ciesercizio iniziale. 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciLa sezione :ref:`it_development_early_stage` copre i primi stadi della 338c2ecf20Sopenharmony_cipianificazione di un progetto di sviluppo, con particolare enfasi sul 348c2ecf20Sopenharmony_cicoinvolgimento della comunità, il prima possibile. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ciLa sezione :ref:`it_development_coding` riguarda il processo di scrittura 378c2ecf20Sopenharmony_cidel codice. Qui, sono esposte le diverse insidie che sono state già affrontate 388c2ecf20Sopenharmony_cida altri sviluppatori. Il capitolo copre anche alcuni dei requisiti per le 398c2ecf20Sopenharmony_cimodifiche, ed esiste un'introduzione ad alcuni strumenti che possono aiutarvi 408c2ecf20Sopenharmony_cinell'assicurarvi che le modifiche per il kernel siano corrette. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciLa sezione :ref:`it_development_posting` parla del processo di pubblicazione 438c2ecf20Sopenharmony_cidelle modifiche per la revisione. Per essere prese in considerazione dalla 448c2ecf20Sopenharmony_cicomunità di sviluppo, le modifiche devono essere propriamente formattate ed 458c2ecf20Sopenharmony_ciesposte, e devono essere inviate nel posto giusto. Seguire i consigli presenti 468c2ecf20Sopenharmony_ciin questa sezione dovrebbe essere d'aiuto nell'assicurare la migliore 478c2ecf20Sopenharmony_ciaccoglienza possibile del vostro lavoro. 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ciLa sezione :ref:`it_development_followthrough` copre ciò che accade dopo 508c2ecf20Sopenharmony_cila pubblicazione delle modifiche; a questo punto il lavoro è lontano 518c2ecf20Sopenharmony_cidall'essere concluso. Lavorare con i revisori è una parte cruciale del 528c2ecf20Sopenharmony_ciprocesso di sviluppo; questa sezione offre una serie di consigli su come 538c2ecf20Sopenharmony_cievitare problemi in questa importante fase. Gli sviluppatori sono diffidenti 548c2ecf20Sopenharmony_cinell'affermare che il lavoro è concluso quando una modifica è incorporata nei 558c2ecf20Sopenharmony_cisorgenti principali. 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ciLa sezione :ref:`it_development_advancedtopics` introduce un paio di argomenti 588c2ecf20Sopenharmony_ci"avanzati": gestire le modifiche con git e controllare le modifiche pubblicate 598c2ecf20Sopenharmony_cida altri. 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ciLa sezione :ref:`it_development_conclusion` chiude il documento con dei 628c2ecf20Sopenharmony_ciriferimenti ad altre fonti che forniscono ulteriori informazioni sullo sviluppo 638c2ecf20Sopenharmony_cidel kernel. 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciDi cosa parla questo documento 668c2ecf20Sopenharmony_ci------------------------------ 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ciIl kernel Linux, ha oltre 8 milioni di linee di codice e ben oltre 1000 698c2ecf20Sopenharmony_cicontributori ad ogni rilascio; è uno dei più vasti e più attivi software 708c2ecf20Sopenharmony_ciliberi progettati mai esistiti. Sin dal sul modesto inizio nel 1991, 718c2ecf20Sopenharmony_ciquesto kernel si è evoluto nel miglior componente per sistemi operativi 728c2ecf20Sopenharmony_ciche fanno funzionare piccoli riproduttori musicali, PC, grandi super computer 738c2ecf20Sopenharmony_cie tutte le altre tipologie di sistemi fra questi estremi. È una soluzione 748c2ecf20Sopenharmony_cirobusta, efficiente ed adattabile a praticamente qualsiasi situazione. 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciCon la crescita di Linux è arrivato anche un aumento di sviluppatori 778c2ecf20Sopenharmony_ci(ed aziende) desiderosi di partecipare a questo sviluppo. I produttori di 788c2ecf20Sopenharmony_cihardware vogliono assicurarsi che il loro prodotti siano supportati da Linux, 798c2ecf20Sopenharmony_cirendendo questi prodotti attrattivi agli utenti Linux. I produttori di 808c2ecf20Sopenharmony_cisistemi integrati, che usano Linux come componente di un prodotto integrato, 818c2ecf20Sopenharmony_civogliono che Linux sia capace ed adeguato agli obiettivi ed il più possibile 828c2ecf20Sopenharmony_cialla mano. Fornitori ed altri produttori di software che basano i propri 838c2ecf20Sopenharmony_ciprodotti su Linux hanno un chiaro interesse verso capacità, prestazioni ed 848c2ecf20Sopenharmony_ciaffidabilità del kernel Linux. E gli utenti finali, anche, spesso vorrebbero 858c2ecf20Sopenharmony_cicambiare Linux per renderlo più aderente alle proprie necessità. 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ciUna delle caratteristiche più coinvolgenti di Linux è quella dell'accessibilità 888c2ecf20Sopenharmony_ciper gli sviluppatori; chiunque con le capacità richieste può migliorare 898c2ecf20Sopenharmony_ciLinux ed influenzarne la direzione di sviluppo. Prodotti non open-source non 908c2ecf20Sopenharmony_cipossono offrire questo tipo di apertura, che è una caratteristica del software 918c2ecf20Sopenharmony_cilibero. Ma, anzi, il kernel è persino più aperto rispetto a molti altri 928c2ecf20Sopenharmony_ciprogetti di software libero. Un classico ciclo di sviluppo trimestrale può 938c2ecf20Sopenharmony_cicoinvolgere 1000 sviluppatori che lavorano per più di 100 differenti aziende 948c2ecf20Sopenharmony_ci(o per nessuna azienda). 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ciLavorare con la comunità di sviluppo del kernel non è particolarmente 978c2ecf20Sopenharmony_cidifficile. Ma, ciononostante, diversi potenziali contributori hanno trovato 988c2ecf20Sopenharmony_cidelle difficoltà quando hanno cercato di lavorare sul kernel. La comunità del 998c2ecf20Sopenharmony_cikernel utilizza un proprio modo di operare che gli permette di funzionare 1008c2ecf20Sopenharmony_ciagevolmente (e genera un prodotto di alta qualità) in un ambiente dove migliaia 1018c2ecf20Sopenharmony_cidi stringhe di codice sono modificate ogni giorni. Quindi non deve sorprendere 1028c2ecf20Sopenharmony_ciche il processo di sviluppo del kernel differisca notevolmente dai metodi di 1038c2ecf20Sopenharmony_cisviluppo privati. 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ciIl processo di sviluppo del Kernel può, dall'altro lato, risultare 1068c2ecf20Sopenharmony_ciintimidatorio e strano ai nuovi sviluppatori, ma ha dietro di se buone ragioni 1078c2ecf20Sopenharmony_cie solide esperienze. Uno sviluppatore che non comprende i modi della comunità 1088c2ecf20Sopenharmony_cidel kernel (o, peggio, che cerchi di aggirarli o violarli) avrà un'esperienza 1098c2ecf20Sopenharmony_cideludente nel proprio bagaglio. La comunità di sviluppo, sebbene sia utile 1108c2ecf20Sopenharmony_cia coloro che cercano di imparare, ha poco tempo da dedicare a coloro che non 1118c2ecf20Sopenharmony_ciascoltano o coloro che non sono interessati al processo di sviluppo. 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ciSi spera che coloro che leggono questo documento saranno in grado di evitare 1148c2ecf20Sopenharmony_ciqueste esperienze spiacevoli. C'è molto materiale qui, ma lo sforzo della 1158c2ecf20Sopenharmony_cilettura sarà ripagato in breve tempo. La comunità di sviluppo ha sempre 1168c2ecf20Sopenharmony_cibisogno di sviluppatori che vogliano aiutare a rendere il kernel migliore; 1178c2ecf20Sopenharmony_ciil testo seguente potrebbe esservi d'aiuto - o essere d'aiuto ai vostri 1188c2ecf20Sopenharmony_cicollaboratori- per entrare a far parte della nostra comunità. 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ciCrediti 1218c2ecf20Sopenharmony_ci------- 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ciQuesto documento è stato scritto da Jonathan Corbet, corbet@lwn.net. 1248c2ecf20Sopenharmony_ciÈ stato migliorato da Johannes Berg, James Berry, Alex Chiang, Roland 1258c2ecf20Sopenharmony_ciDreier, Randy Dunlap, Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh, 1268c2ecf20Sopenharmony_ciAmanda McPherson, Andrew Morton, Andrew Price, Tsugikazu Shibata e Jochen Voß. 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ciQuesto lavoro è stato supportato dalla Linux Foundation; un ringraziamento 1298c2ecf20Sopenharmony_cispeciale ad Amanda McPherson, che ha visto il valore di questo lavoro e lo ha 1308c2ecf20Sopenharmony_cireso possibile. 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ciL'importanza d'avere il codice nei sorgenti principali 1338c2ecf20Sopenharmony_ci------------------------------------------------------ 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ciAlcune aziende e sviluppatori ogni tanto si domandano perché dovrebbero 1368c2ecf20Sopenharmony_cipreoccuparsi di apprendere come lavorare con la comunità del kernel e di 1378c2ecf20Sopenharmony_ciinserire il loro codice nel ramo di sviluppo principale (per ramo principale 1388c2ecf20Sopenharmony_cis'intende quello mantenuto da Linus Torvalds e usato come base dai 1398c2ecf20Sopenharmony_cidistributori Linux). Nel breve termine, contribuire al codice può sembrare 1408c2ecf20Sopenharmony_ciun costo inutile; può sembra più facile tenere separato il proprio codice e 1418c2ecf20Sopenharmony_cisupportare direttamente i suoi utilizzatori. La verità è che il tenere il 1428c2ecf20Sopenharmony_cicodice separato ("fuori dai sorgenti", *"out-of-tree"*) è un falso risparmio. 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ciPer dimostrare i costi di un codice "fuori dai sorgenti", eccovi 1458c2ecf20Sopenharmony_cialcuni aspetti rilevanti del processo di sviluppo kernel; la maggior parte 1468c2ecf20Sopenharmony_cidi essi saranno approfonditi dettagliatamente più avanti in questo documento. 1478c2ecf20Sopenharmony_ciConsiderate: 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci- Il codice che è stato inserito nel ramo principale del kernel è disponibile 1508c2ecf20Sopenharmony_ci a tutti gli utilizzatori Linux. Sarà automaticamente presente in tutte le 1518c2ecf20Sopenharmony_ci distribuzioni che lo consentono. Non c'è bisogno di: driver per dischi, 1528c2ecf20Sopenharmony_ci scaricare file, o della scocciatura del dover supportare diverse versioni di 1538c2ecf20Sopenharmony_ci diverse distribuzioni; funziona già tutto, per gli sviluppatori e per gli 1548c2ecf20Sopenharmony_ci utilizzatori. L'inserimento nel ramo principale risolve un gran numero di 1558c2ecf20Sopenharmony_ci problemi di distribuzione e di supporto. 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci- Nonostante gli sviluppatori kernel si sforzino di tenere stabile 1588c2ecf20Sopenharmony_ci l'interfaccia dello spazio utente, quella interna al kernel è in continuo 1598c2ecf20Sopenharmony_ci cambiamento. La mancanza di un'interfaccia interna è deliberatamente una 1608c2ecf20Sopenharmony_ci decisione di progettazione; ciò permette che i miglioramenti fondamentali 1618c2ecf20Sopenharmony_ci vengano fatti in un qualsiasi momento e che risultino fatti con un codice di 1628c2ecf20Sopenharmony_ci alta qualità. Ma una delle conseguenze di questa politica è che qualsiasi 1638c2ecf20Sopenharmony_ci codice "fuori dai sorgenti" richiede costante manutenzione per renderlo 1648c2ecf20Sopenharmony_ci funzionante coi kernel più recenti. Tenere un codice "fuori dai sorgenti" 1658c2ecf20Sopenharmony_ci richiede una mole di lavoro significativa solo per farlo funzionare. 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci Invece, il codice che si trova nel ramo principale non necessita di questo 1688c2ecf20Sopenharmony_ci tipo di lavoro poiché ad ogni sviluppatore che faccia una modifica alle 1698c2ecf20Sopenharmony_ci interfacce viene richiesto di sistemare anche il codice che utilizza 1708c2ecf20Sopenharmony_ci quell'interfaccia. Quindi, il codice che è stato inserito nel ramo principale 1718c2ecf20Sopenharmony_ci ha dei costi di mantenimento significativamente più bassi. 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci- Oltre a ciò, spesso il codice che è all'interno del kernel sarà migliorato da 1748c2ecf20Sopenharmony_ci altri sviluppatori. Dare pieni poteri alla vostra comunità di utenti e ai 1758c2ecf20Sopenharmony_ci clienti può portare a sorprendenti risultati che migliorano i vostri 1768c2ecf20Sopenharmony_ci prodotti. 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci- Il codice kernel è soggetto a revisioni, sia prima che dopo l'inserimento 1798c2ecf20Sopenharmony_ci nel ramo principale. Non importa quanto forti fossero le abilità dello 1808c2ecf20Sopenharmony_ci sviluppatore originale, il processo di revisione troverà il modo di migliore 1818c2ecf20Sopenharmony_ci il codice. Spesso la revisione trova bachi importanti e problemi di 1828c2ecf20Sopenharmony_ci sicurezza. Questo è particolarmente vero per il codice che è stato 1838c2ecf20Sopenharmony_ci sviluppato in un ambiente chiuso; tale codice ottiene un forte beneficio 1848c2ecf20Sopenharmony_ci dalle revisioni provenienti da sviluppatori esteri. Il codice 1858c2ecf20Sopenharmony_ci "fuori dai sorgenti", invece, è un codice di bassa qualità. 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ci- La partecipazione al processo di sviluppo costituisce la vostra via per 1888c2ecf20Sopenharmony_ci influenzare la direzione di sviluppo del kernel. Gli utilizzatori che 1898c2ecf20Sopenharmony_ci "reclamano da bordo campo" sono ascoltati, ma gli sviluppatori attivi 1908c2ecf20Sopenharmony_ci hanno una voce più forte - e la capacità di implementare modifiche che 1918c2ecf20Sopenharmony_ci renderanno il kernel più funzionale alle loro necessità. 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci- Quando il codice è gestito separatamente, esiste sempre la possibilità che 1948c2ecf20Sopenharmony_ci terze parti contribuiscano con una differente implementazione che fornisce 1958c2ecf20Sopenharmony_ci le stesse funzionalità. Se dovesse accadere, l'inserimento del codice 1968c2ecf20Sopenharmony_ci diventerà molto più difficile - fino all'impossibilità. Poi, dovrete far 1978c2ecf20Sopenharmony_ci fronte a delle alternative poco piacevoli, come: (1) mantenere un elemento 1988c2ecf20Sopenharmony_ci non standard "fuori dai sorgenti" per un tempo indefinito, o (2) abbandonare 1998c2ecf20Sopenharmony_ci il codice e far migrare i vostri utenti alla versione "nei sorgenti". 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ci- Contribuire al codice è l'azione fondamentale che fa funzionare tutto il 2028c2ecf20Sopenharmony_ci processo. Contribuendo attraverso il vostro codice potete aggiungere nuove 2038c2ecf20Sopenharmony_ci funzioni al kernel e fornire competenze ed esempi che saranno utili ad 2048c2ecf20Sopenharmony_ci altri sviluppatori. Se avete sviluppato del codice Linux (o state pensando 2058c2ecf20Sopenharmony_ci di farlo), avete chiaramente interesse nel far proseguire il successo di 2068c2ecf20Sopenharmony_ci questa piattaforma. Contribuire al codice è une delle migliori vie per 2078c2ecf20Sopenharmony_ci aiutarne il successo. 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ciIl ragionamento sopra citato si applica ad ogni codice "fuori dai sorgenti" 2108c2ecf20Sopenharmony_cidal kernel, incluso il codice proprietario distribuito solamente in formato 2118c2ecf20Sopenharmony_cibinario. Ci sono, comunque, dei fattori aggiuntivi che dovrebbero essere 2128c2ecf20Sopenharmony_citenuti in conto prima di prendere in considerazione qualsiasi tipo di 2138c2ecf20Sopenharmony_cidistribuzione binaria di codice kernel. Questo include che: 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci- Le questioni legali legate alla distribuzione di moduli kernel proprietari 2168c2ecf20Sopenharmony_ci sono molto nebbiose; parecchi detentori di copyright sul kernel credono che 2178c2ecf20Sopenharmony_ci molti moduli binari siano prodotti derivati del kernel e che, come risultato, 2188c2ecf20Sopenharmony_ci la loro diffusione sia una violazione della licenza generale di GNU (della 2198c2ecf20Sopenharmony_ci quale si parlerà più avanti). L'autore qui non è un avvocato, e 2208c2ecf20Sopenharmony_ci niente in questo documento può essere considerato come un consiglio legale. 2218c2ecf20Sopenharmony_ci Il vero stato legale dei moduli proprietari può essere determinato 2228c2ecf20Sopenharmony_ci esclusivamente da un giudice. Ma l'incertezza che perseguita quei moduli 2238c2ecf20Sopenharmony_ci è lì comunque. 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci- I moduli binari aumentano di molto la difficoltà di fare debugging del 2268c2ecf20Sopenharmony_ci kernel, al punto che la maggior parte degli sviluppatori del kernel non 2278c2ecf20Sopenharmony_ci vorranno nemmeno tentare. Quindi la diffusione di moduli esclusivamente 2288c2ecf20Sopenharmony_ci binari renderà difficile ai vostri utilizzatori trovare un supporto dalla 2298c2ecf20Sopenharmony_ci comunità. 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci- Il supporto è anche difficile per i distributori di moduli binari che devono 2328c2ecf20Sopenharmony_ci fornire una versione del modulo per ogni distribuzione e per ogni versione 2338c2ecf20Sopenharmony_ci del kernel che vogliono supportate. Per fornire una copertura ragionevole e 2348c2ecf20Sopenharmony_ci comprensiva, può essere richiesto di produrre dozzine di singoli moduli. 2358c2ecf20Sopenharmony_ci E inoltre i vostri utilizzatori dovranno aggiornare il vostro modulo 2368c2ecf20Sopenharmony_ci separatamente ogni volta che aggiornano il loro kernel. 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci- Tutto ciò che è stato detto prima riguardo alla revisione del codice si 2398c2ecf20Sopenharmony_ci applica doppiamente al codice proprietario. Dato che questo codice non è 2408c2ecf20Sopenharmony_ci del tutto disponibile, non può essere revisionato dalla comunità e avrà, 2418c2ecf20Sopenharmony_ci senza dubbio, seri problemi. 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ciI produttori di sistemi integrati, in particolare, potrebbero esser tentati 2448c2ecf20Sopenharmony_cidall'evitare molto di ciò che è stato detto in questa sezione, credendo che 2458c2ecf20Sopenharmony_cistiano distribuendo un prodotto finito che utilizza una versione del kernel 2468c2ecf20Sopenharmony_ciimmutabile e che non richiede un ulteriore sviluppo dopo il rilascio. Questa 2478c2ecf20Sopenharmony_ciidea non comprende il valore di una vasta revisione del codice e il valore 2488c2ecf20Sopenharmony_cidel permettere ai propri utenti di aggiungere funzionalità al vostro prodotto. 2498c2ecf20Sopenharmony_ciMa anche questi prodotti, hanno una vita commerciale limitata, dopo la quale 2508c2ecf20Sopenharmony_cideve essere rilasciata una nuova versione. A quel punto, i produttori il cui 2518c2ecf20Sopenharmony_cicodice è nel ramo principale di sviluppo avranno un codice ben mantenuto e 2528c2ecf20Sopenharmony_cisaranno in una posizione migliore per ottenere velocemente un nuovo prodotto 2538c2ecf20Sopenharmony_cipronto per essere distribuito. 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ciLicenza 2578c2ecf20Sopenharmony_ci------- 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ciIL codice Linux utilizza diverse licenze, ma il codice completo deve essere 2608c2ecf20Sopenharmony_cicompatibile con la seconda versione della licenza GNU General Public License 2618c2ecf20Sopenharmony_ci(GPLv2), che è la licenza che copre la distribuzione del kernel. 2628c2ecf20Sopenharmony_ciNella pratica, ciò significa che tutti i contributi al codice sono coperti 2638c2ecf20Sopenharmony_cianche'essi dalla GPLv2 (con, opzionalmente, una dicitura che permette la 2648c2ecf20Sopenharmony_cipossibilità di distribuirlo con licenze più recenti di GPL) o dalla licenza 2658c2ecf20Sopenharmony_cithree-clause BSD. Qualsiasi contributo che non è coperto da una licenza 2668c2ecf20Sopenharmony_cicompatibile non verrà accettata nel kernel. 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ciPer il codice sottomesso al kernel non è necessario (o richiesto) la 2698c2ecf20Sopenharmony_ciconcessione del Copyright. Tutto il codice inserito nel ramo principale del 2708c2ecf20Sopenharmony_cikernel conserva la sua proprietà originale; ne risulta che ora il kernel abbia 2718c2ecf20Sopenharmony_cimigliaia di proprietari. 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ciUna conseguenza di questa organizzazione della proprietà è che qualsiasi 2748c2ecf20Sopenharmony_citentativo di modifica della licenza del kernel è destinata ad un quasi sicuro 2758c2ecf20Sopenharmony_cifallimento. Esistono alcuni scenari pratici nei quali il consenso di tutti 2768c2ecf20Sopenharmony_cii detentori di copyright può essere ottenuto (o il loro codice verrà rimosso 2778c2ecf20Sopenharmony_cidal kernel). Quindi, in sostanza, non esiste la possibilità che si giunga ad 2788c2ecf20Sopenharmony_ciuna versione 3 della licenza GPL nel prossimo futuro. 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ciÈ imperativo che tutto il codice che contribuisce al kernel sia legittimamente 2818c2ecf20Sopenharmony_cisoftware libero. Per questa ragione, un codice proveniente da un contributore 2828c2ecf20Sopenharmony_cianonimo (o sotto pseudonimo) non verrà accettato. È richiesto a tutti i 2838c2ecf20Sopenharmony_cicontributori di firmare il proprio codice, attestando così che quest'ultimo 2848c2ecf20Sopenharmony_cipuò essere distribuito insieme al kernel sotto la licenza GPL. Il codice che 2858c2ecf20Sopenharmony_cinon è stato licenziato come software libero dal proprio creatore, o che 2868c2ecf20Sopenharmony_cipotrebbe creare problemi di copyright per il kernel (come il codice derivante 2878c2ecf20Sopenharmony_cida processi di ingegneria inversa senza le opportune tutele), non può essere 2888c2ecf20Sopenharmony_cidiffuso. 2898c2ecf20Sopenharmony_ci 2908c2ecf20Sopenharmony_ciDomande relative a questioni legate al copyright sono frequenti nelle liste 2918c2ecf20Sopenharmony_cidi discussione dedicate allo sviluppo di Linux. Tali quesiti, normalmente, 2928c2ecf20Sopenharmony_cinon riceveranno alcuna risposta, ma una cosa deve essere tenuta presente: 2938c2ecf20Sopenharmony_cile persone che risponderanno a quelle domande non sono avvocati e non possono 2948c2ecf20Sopenharmony_cifornire supporti legali. Se avete questioni legali relative ai sorgenti 2958c2ecf20Sopenharmony_cidel codice Linux, non esiste alternativa che quella di parlare con un 2968c2ecf20Sopenharmony_ciavvocato esperto nel settore. Fare affidamento sulle risposte ottenute da 2978c2ecf20Sopenharmony_ciuna lista di discussione tecnica è rischioso. 298