···1111Riepilogo generale1212------------------13131414-Il resto di questa sezione riguarda la sfera del processo di sviluppo del1515-kernel e quella sorta di frustrazioni che gli sviluppatori e i loro datori1616-di lavoro affrontano. Ci sono molte ragioni per le quali del codice per il1717-kernel debba essere incorporato nel kernel ufficiale, fra le quali:1414+Il resto di questa sezione riguarda il processo di sviluppo del kernel e1515+quella sorta di frustrazione che gli sviluppatori e i loro datori di lavoro1616+potrebbero dover affrontare. Ci sono molte ragioni per le quali del codice1717+per il kernel debba essere incorporato nel kernel ufficiale, fra le quali:1818disponibilità immediata agli utilizzatori, supporto della comunità in1919differenti modalità, e la capacità di influenzare la direzione dello sviluppo2020-kernel.2020+del kernel.2121Il codice che contribuisce al kernel Linux deve essere reso disponibile sotto2222una licenza GPL-compatibile.2323···2929qualcosa per il kernel sono invitati ad individuare e sistemare bachi come3030esercizio iniziale.31313232-La sezione :ref: `it_development_early_stage` copre i primi stadi della3232+La sezione :ref:`it_development_early_stage` copre i primi stadi della3333pianificazione di un progetto di sviluppo, con particolare enfasi sul3434coinvolgimento della comunità, il prima possibile.3535···4646in questa sezione dovrebbe essere d'aiuto nell'assicurare la migliore4747accoglienza possibile del vostro lavoro.48484949-La sezione :ref: `it_development_followthrough` copre ciò che accade dopo4949+La sezione :ref:`it_development_followthrough` copre ciò che accade dopo5050la pubblicazione delle modifiche; a questo punto il lavoro è lontano5151dall'essere concluso. Lavorare con i revisori è una parte cruciale del5252processo di sviluppo; questa sezione offre una serie di consigli su come···5454nell'affermare che il lavoro è concluso quando una modifica è incorporata nei5555sorgenti principali.56565757-La sezione :ref::`it_development_advancedtopics` introduce un paio di argomenti5858-"avanzati": gestire modifiche con git e controllare le modifiche pubblicate da5959-altri.5757+La sezione :ref:`it_development_advancedtopics` introduce un paio di argomenti5858+"avanzati": gestire le modifiche con git e controllare le modifiche pubblicate5959+da altri.60606161-La sezione :ref: `it_development_conclusion` chiude il documento con dei6161+La sezione :ref:`it_development_conclusion` chiude il documento con dei6262riferimenti ad altre fonti che forniscono ulteriori informazioni sullo sviluppo6363del kernel.6464···8080sistemi integrati, che usano Linux come componente di un prodotto integrato,8181vogliono che Linux sia capace ed adeguato agli obiettivi ed il più possibile8282alla mano. Fornitori ed altri produttori di software che basano i propri8383-prodotti su Linux hanno chiaro interesse verso capacità, prestazioni ed8383+prodotti su Linux hanno un chiaro interesse verso capacità, prestazioni ed8484affidabilità del kernel Linux. E gli utenti finali, anche, spesso vorrebbero8585cambiare Linux per renderlo più aderente alle proprie necessità.86868787Una delle caratteristiche più coinvolgenti di Linux è quella dell'accessibilità8888per gli sviluppatori; chiunque con le capacità richieste può migliorare8989Linux ed influenzarne la direzione di sviluppo. Prodotti non open-source non9090-possono offrire questo tipo di apertura, che è una caratteristica del softwere9090+possono offrire questo tipo di apertura, che è una caratteristica del software9191libero. Ma, anzi, il kernel è persino più aperto rispetto a molti altri9292progetti di software libero. Un classico ciclo di sviluppo trimestrale può9393coinvolgere 1000 sviluppatori che lavorano per più di 100 differenti aziende···104104105105Il processo di sviluppo del Kernel può, dall'altro lato, risultare106106intimidatorio e strano ai nuovi sviluppatori, ma ha dietro di se buone ragioni107107-e solide esperienze. Uno sviluppatore che non comprenda i modi della comunità107107+e solide esperienze. Uno sviluppatore che non comprende i modi della comunità108108del kernel (o, peggio, che cerchi di aggirarli o violarli) avrà un'esperienza109109-deludente nel proprio bagagliaio. La comunità di sviluppo, sebbene sia utile109109+deludente nel proprio bagaglio. La comunità di sviluppo, sebbene sia utile110110a coloro che cercano di imparare, ha poco tempo da dedicare a coloro che non111111ascoltano o coloro che non sono interessati al processo di sviluppo.112112···132132L'importanza d'avere il codice nei sorgenti principali133133------------------------------------------------------134134135135-Alcune aziende e sviluppatori ogni tanto si domandano perchè dovrebbero135135+Alcune aziende e sviluppatori ogni tanto si domandano perché dovrebbero136136preoccuparsi di apprendere come lavorare con la comunità del kernel e di137137inserire il loro codice nel ramo di sviluppo principale (per ramo principale138138s'intende quello mantenuto da Linus Torvalds e usato come base dai···144144Per dimostrare i costi di un codice "fuori dai sorgenti", eccovi145145alcuni aspetti rilevanti del processo di sviluppo kernel; la maggior parte146146di essi saranno approfonditi dettagliatamente più avanti in questo documento.147147-Pensate:147147+Considerate:148148149149- Il codice che è stato inserito nel ramo principale del kernel è disponibile150150 a tutti gli utilizzatori Linux. Sarà automaticamente presente in tutte le151151 distribuzioni che lo consentono. Non c'è bisogno di: driver per dischi,152152- scaricare file, o della scocciatura del dover supportare diverse versoni di152152+ scaricare file, o della scocciatura del dover supportare diverse versioni di153153 diverse distribuzioni; funziona già tutto, per gli sviluppatori e per gli154154 utilizzatori. L'inserimento nel ramo principale risolve un gran numero di155155 problemi di distribuzione e di supporto.···166166167167 Invece, il codice che si trova nel ramo principale non necessita di questo168168 tipo di lavoro poiché ad ogni sviluppatore che faccia una modifica alle169169- interfacce viene richiesto di sistemare anche il codice che utilizza che170170- utilizza quell'interfaccia. Quindi, il codice che è stato inserito nel171171- ramo principale ha dei costi di mantenimento significativamente più bassi.169169+ interfacce viene richiesto di sistemare anche il codice che utilizza170170+ quell'interfaccia. Quindi, il codice che è stato inserito nel ramo principale171171+ ha dei costi di mantenimento significativamente più bassi.172172173173- Oltre a ciò, spesso il codice che è all'interno del kernel sarà migliorato da174174 altri sviluppatori. Dare pieni poteri alla vostra comunità di utenti e ai···177177178178- Il codice kernel è soggetto a revisioni, sia prima che dopo l'inserimento179179 nel ramo principale. Non importa quanto forti fossero le abilità dello180180- sviluppatore originale, il processo di revisione trovà il modo di migliore180180+ sviluppatore originale, il processo di revisione troverà il modo di migliore181181 il codice. Spesso la revisione trova bachi importanti e problemi di182182 sicurezza. Questo è particolarmente vero per il codice che è stato183183- sviluppato in un ambiete chiuso; tale codice ottiene un forte beneficio183183+ sviluppato in un ambiente chiuso; tale codice ottiene un forte beneficio184184 dalle revisioni provenienti da sviluppatori esteri. Il codice185185 "fuori dai sorgenti", invece, è un codice di bassa qualità.186186···198198 non standard "fuori dai sorgenti" per un tempo indefinito, o (2) abbandonare199199 il codice e far migrare i vostri utenti alla versione "nei sorgenti".200200201201-- Contribuire al codice è l'azione fondamentale che fa funzione tutto il201201+- Contribuire al codice è l'azione fondamentale che fa funzionare tutto il202202 processo. Contribuendo attraverso il vostro codice potete aggiungere nuove203203 funzioni al kernel e fornire competenze ed esempi che saranno utili ad204204 altri sviluppatori. Se avete sviluppato del codice Linux (o state pensando···216216 sono molto nebbiose; parecchi detentori di copyright sul kernel credono che217217 molti moduli binari siano prodotti derivati del kernel e che, come risultato,218218 la loro diffusione sia una violazione della licenza generale di GNU (della219219- quale si parlerà più avanti). Il vostro ideatore non è un avvocato, e219219+ quale si parlerà più avanti). L'autore qui non è un avvocato, e220220 niente in questo documento può essere considerato come un consiglio legale.221221 Il vero stato legale dei moduli proprietari può essere determinato222222 esclusivamente da un giudice. Ma l'incertezza che perseguita quei moduli···236236 separatamente ogni volta che aggiornano il loro kernel.237237238238- Tutto ciò che è stato detto prima riguardo alla revisione del codice si239239- applica doppiamente al codice proprietario. Dato che questo codice non é239239+ applica doppiamente al codice proprietario. Dato che questo codice non è240240 del tutto disponibile, non può essere revisionato dalla comunità e avrà,241241 senza dubbio, seri problemi.242242···271271migliaia di proprietari.272272273273Una conseguenza di questa organizzazione della proprietà è che qualsiasi274274-tentativo di modifica della licenza del kernel è destinata ad quasi sicuro274274+tentativo di modifica della licenza del kernel è destinata ad un quasi sicuro275275fallimento. Esistono alcuni scenari pratici nei quali il consenso di tutti276276i detentori di copyright può essere ottenuto (o il loro codice verrà rimosso277277dal kernel). Quindi, in sostanza, non esiste la possibilità che si giunga ad