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