162306a36Sopenharmony_ci.. include:: ../disclaimer-ita.rst
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci:Original: :ref:`Documentation/process/howto.rst <process_howto>`
462306a36Sopenharmony_ci:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it>
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci.. _it_process_howto:
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciCome partecipare allo sviluppo del kernel Linux
962306a36Sopenharmony_ci===============================================
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciQuesto è il documento fulcro di quanto trattato sull'argomento.
1262306a36Sopenharmony_ciEsso contiene le istruzioni su come diventare uno sviluppatore
1362306a36Sopenharmony_cidel kernel Linux e spiega come lavorare con la comunità di
1462306a36Sopenharmony_cisviluppo kernel Linux. Il documento non tratterà alcun aspetto
1562306a36Sopenharmony_citecnico relativo alla programmazione del kernel, ma vi aiuterà
1662306a36Sopenharmony_ciindirizzandovi sulla corretta strada.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciSe qualsiasi cosa presente in questo documento diventasse obsoleta,
1962306a36Sopenharmony_civi preghiamo di inviare le correzioni agli amministratori di questo
2062306a36Sopenharmony_cifile, indicati in fondo al presente documento.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciIntroduzione
2362306a36Sopenharmony_ci------------
2462306a36Sopenharmony_ciDunque, volete imparare come diventare sviluppatori del kernel Linux?
2562306a36Sopenharmony_ciO vi è stato detto dal vostro capo, "Vai, scrivi un driver Linux per
2662306a36Sopenharmony_ciquesto dispositivo". Bene, l'obbiettivo di questo documento è quello
2762306a36Sopenharmony_cidi insegnarvi tutto ciò che dovete sapere per raggiungere il vostro
2862306a36Sopenharmony_ciscopo descrivendo il procedimento da seguire e consigliandovi
2962306a36Sopenharmony_cisu come lavorare con la comunità. Il documento cercherà, inoltre,
3062306a36Sopenharmony_cidi spiegare alcune delle ragioni per le quali la comunità lavora in un
3162306a36Sopenharmony_cimodo suo particolare.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciIl kernel è scritto prevalentemente nel linguaggio C con alcune parti
3462306a36Sopenharmony_cispecifiche dell'architettura scritte in linguaggio assembly.
3562306a36Sopenharmony_ciPer lo sviluppo kernel è richiesta una buona conoscenza del linguaggio C.
3662306a36Sopenharmony_ciL'assembly (di qualsiasi architettura) non è richiesto, a meno che non
3762306a36Sopenharmony_cipensiate di fare dello sviluppo di basso livello per un'architettura.
3862306a36Sopenharmony_ciSebbene essi non siano un buon sostituto ad un solido studio del
3962306a36Sopenharmony_cilinguaggio C o ad anni di esperienza, i seguenti libri sono, se non
4062306a36Sopenharmony_cialtro, utili riferimenti:
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci- "The C Programming Language" di Kernighan e Ritchie [Prentice Hall]
4362306a36Sopenharmony_ci- "Practical C Programming" di Steve Oualline [O'Reilly]
4462306a36Sopenharmony_ci- "C:  A Reference Manual" di Harbison and Steele [Prentice Hall]
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciIl kernel è stato scritto usando GNU C e la toolchain GNU.
4762306a36Sopenharmony_ciSebbene si attenga allo standard ISO C11, esso utilizza una serie di
4862306a36Sopenharmony_ciestensioni che non sono previste in questo standard. Il kernel è un
4962306a36Sopenharmony_ciambiente C indipendente, che non ha alcuna dipendenza dalle librerie
5062306a36Sopenharmony_ciC standard, così alcune parti del C standard non sono supportate.
5162306a36Sopenharmony_ciLe divisioni ``long long`` e numeri in virgola mobile non sono permessi.
5262306a36Sopenharmony_ciQualche volta è difficile comprendere gli assunti che il kernel ha
5362306a36Sopenharmony_ciriguardo gli strumenti e le estensioni in uso, e sfortunatamente non
5462306a36Sopenharmony_ciesiste alcuna indicazione definitiva. Per maggiori informazioni, controllate,
5562306a36Sopenharmony_cila pagina `info gcc`.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciTenete a mente che state cercando di apprendere come lavorare con la comunità
5862306a36Sopenharmony_cidi sviluppo già esistente. Questo è un gruppo eterogeneo di persone, con alti
5962306a36Sopenharmony_cistandard di codifica, di stile e di procedura. Questi standard sono stati
6062306a36Sopenharmony_cicreati nel corso del tempo basandosi su quanto hanno riscontrato funzionare al
6162306a36Sopenharmony_cimeglio per un squadra così grande e geograficamente sparsa. Cercate di
6262306a36Sopenharmony_ciimparare, in anticipo, il più possibile circa questi standard, poichè ben
6362306a36Sopenharmony_cispiegati; non aspettatevi che gli altri si adattino al vostro modo di fare
6462306a36Sopenharmony_cio a quello della vostra azienda.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciNote legali
6762306a36Sopenharmony_ci------------
6862306a36Sopenharmony_ciIl codice sorgente del kernel Linux è rilasciato sotto GPL. Siete pregati
6962306a36Sopenharmony_cidi visionare il file, COPYING, presente nella cartella principale dei
7062306a36Sopenharmony_cisorgente, per eventuali dettagli sulla licenza. Se avete ulteriori domande
7162306a36Sopenharmony_cisulla licenza, contattate un avvocato, non chiedete sulle liste di discussione
7262306a36Sopenharmony_cidel kernel Linux. Le persone presenti in queste liste non sono avvocati,
7362306a36Sopenharmony_cie non dovreste basarvi sulle loro dichiarazioni in materia giuridica.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciPer domande più frequenti e risposte sulla licenza GPL, guardare:
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci	https://www.gnu.org/licenses/gpl-faq.html
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciDocumentazione
8062306a36Sopenharmony_ci--------------
8162306a36Sopenharmony_ciI sorgenti del kernel Linux hanno una vasta base di documenti che vi
8262306a36Sopenharmony_ciinsegneranno come interagire con la comunità del kernel. Quando nuove
8362306a36Sopenharmony_cifunzionalità vengono aggiunte al kernel, si raccomanda di aggiungere anche i
8462306a36Sopenharmony_cirelativi file di documentatione che spiegano come usarele.
8562306a36Sopenharmony_ciQuando un cambiamento del kernel genera anche un cambiamento nell'interfaccia
8662306a36Sopenharmony_cicon lo spazio utente, è raccomandabile che inviate una notifica o una
8762306a36Sopenharmony_cicorrezione alle pagine *man* spiegando tale modifica agli amministratori di
8862306a36Sopenharmony_ciqueste pagine all'indirizzo mtk.manpages@gmail.com, aggiungendo
8962306a36Sopenharmony_ciin CC la lista linux-api@vger.kernel.org.
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciDi seguito una lista di file che sono presenti nei sorgente del kernel e che
9262306a36Sopenharmony_ciè richiesto che voi leggiate:
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/admin-guide/README.rst <it_readme>`
9562306a36Sopenharmony_ci    Questo file da una piccola anteprima del kernel Linux e descrive il
9662306a36Sopenharmony_ci    minimo necessario per configurare e generare il kernel. I novizi
9762306a36Sopenharmony_ci    del kernel dovrebbero iniziare da qui.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/changes.rst <it_changes>`
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci    Questo file fornisce una lista dei pacchetti software necessari
10262306a36Sopenharmony_ci    a compilare e far funzionare il kernel con successo.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/coding-style.rst <it_codingstyle>`
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci    Questo file descrive lo stile della codifica per il kernel Linux,
10762306a36Sopenharmony_ci    e parte delle motivazioni che ne sono alla base. Tutto il nuovo codice deve
10862306a36Sopenharmony_ci    seguire le linee guida in questo documento. Molti amministratori
10962306a36Sopenharmony_ci    accetteranno patch solo se queste osserveranno tali regole, e molte
11062306a36Sopenharmony_ci    persone revisioneranno il codice solo se scritto nello stile appropriato.
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>`
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci    Questo file descrive dettagliatamente come creare ed inviare una patch
11562306a36Sopenharmony_ci    con successo, includendo (ma non solo questo):
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci       - Contenuto delle email
11862306a36Sopenharmony_ci       - Formato delle email
11962306a36Sopenharmony_ci       - I destinatari delle email
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci    Seguire tali regole non garantirà il successo (tutte le patch sono soggette
12262306a36Sopenharmony_ci    a controlli realitivi a contenuto e stile), ma non seguirle lo precluderà
12362306a36Sopenharmony_ci    sempre.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci    Altre ottime descrizioni di come creare buone patch sono:
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci	"The Perfect Patch"
12862306a36Sopenharmony_ci		https://www.ozlabs.org/~akpm/stuff/tpp.txt
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci	"Linux kernel patch submission format"
13162306a36Sopenharmony_ci		https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/stable-api-nonsense.rst <it_stable_api_nonsense>`
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci    Questo file descrive la motivazioni sottostanti la conscia decisione di
13662306a36Sopenharmony_ci    non avere un API stabile all'interno del kernel, incluso cose come:
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci      - Sottosistemi shim-layers (per compatibilità?)
13962306a36Sopenharmony_ci      - Portabilità fra Sistemi Operativi dei driver.
14062306a36Sopenharmony_ci      - Attenuare i rapidi cambiamenti all'interno dei sorgenti del kernel
14162306a36Sopenharmony_ci        (o prevenirli)
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci    Questo documento è vitale per la comprensione della filosifia alla base
14462306a36Sopenharmony_ci    dello sviluppo di Linux ed è molto importante per le persone che arrivano
14562306a36Sopenharmony_ci    da esperienze con altri Sistemi Operativi.
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/admin-guide/security-bugs.rst <it_securitybugs>`
14862306a36Sopenharmony_ci    Se ritenete di aver trovato un problema di sicurezza nel kernel Linux,
14962306a36Sopenharmony_ci    seguite i passaggi scritti in questo documento per notificarlo agli
15062306a36Sopenharmony_ci    sviluppatori del kernel, ed aiutare la risoluzione del problema.
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/management-style.rst <it_managementstyle>`
15362306a36Sopenharmony_ci    Questo documento descrive come i manutentori del kernel Linux operano
15462306a36Sopenharmony_ci    e la filosofia comune alla base del loro metodo.  Questa è un'importante
15562306a36Sopenharmony_ci    lettura per tutti coloro che sono nuovi allo sviluppo del kernel (o per
15662306a36Sopenharmony_ci    chi è semplicemente curioso), poiché risolve molti dei più comuni
15762306a36Sopenharmony_ci    fraintendimenti e confusioni dovuti al particolare comportamento dei
15862306a36Sopenharmony_ci    manutentori del kernel.
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/stable-kernel-rules.rst <it_stable_kernel_rules>`
16162306a36Sopenharmony_ci    Questo file descrive le regole sulle quali vengono basati i rilasci del
16262306a36Sopenharmony_ci    kernel, e spiega cosa fare se si vuole che una modifica venga inserita
16362306a36Sopenharmony_ci    in uno di questi rilasci.
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/kernel-docs.rst <it_kernel_docs>`
16662306a36Sopenharmony_ci    Una lista di documenti pertinenti allo sviluppo del kernel.
16762306a36Sopenharmony_ci    Per favore consultate questa lista se non trovate ciò che cercate nella
16862306a36Sopenharmony_ci    documentazione interna del kernel.
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci  :ref:`Documentation/translations/it_IT/process/applying-patches.rst <it_applying_patches>`
17162306a36Sopenharmony_ci    Una buona introduzione che descrivere esattamente cos'è una patch e come
17262306a36Sopenharmony_ci    applicarla ai differenti rami di sviluppo del kernel.
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ciIl kernel inoltre ha un vasto numero di documenti che possono essere
17562306a36Sopenharmony_ciautomaticamente generati dal codice sorgente stesso o da file
17662306a36Sopenharmony_ciReStructuredText (ReST), come questo. Esso include una completa
17762306a36Sopenharmony_cidescrizione dell'API interna del kernel, e le regole su come gestire la
17862306a36Sopenharmony_cisincronizzazione (locking) correttamente
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciTutte queste tipologie di documenti possono essere generati in PDF o in
18162306a36Sopenharmony_ciHTML utilizzando::
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci	make pdfdocs
18462306a36Sopenharmony_ci	make htmldocs
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_cirispettivamente dalla cartella principale dei sorgenti del kernel.
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ciI documenti che impiegano ReST saranno generati nella cartella
18962306a36Sopenharmony_ciDocumentation/output.
19062306a36Sopenharmony_ciQuesti posso essere generati anche in formato LaTex e ePub con::
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci	make latexdocs
19362306a36Sopenharmony_ci	make epubdocs
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ciDiventare uno sviluppatore del kernel
19662306a36Sopenharmony_ci-------------------------------------
19762306a36Sopenharmony_ciSe non sapete nulla sullo sviluppo del kernel Linux, dovreste dare uno
19862306a36Sopenharmony_cisguardo al progetto *Linux KernelNewbies*:
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci	https://kernelnewbies.org
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ciEsso prevede un'utile lista di discussione dove potete porre più o meno ogni
20362306a36Sopenharmony_citipo di quesito relativo ai concetti fondamentali sullo sviluppo del kernel
20462306a36Sopenharmony_ci(assicuratevi di cercare negli archivi, prima di chiedere qualcosa alla
20562306a36Sopenharmony_ciquale è già stata fornita risposta in passato). Esistono inoltre, un canale IRC
20662306a36Sopenharmony_ciche potete usare per formulare domande in tempo reale, e molti documenti utili
20762306a36Sopenharmony_ciche vi faciliteranno nell'apprendimento dello sviluppo del kernel Linux.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ciIl sito internet contiene informazioni di base circa l'organizzazione del
21062306a36Sopenharmony_cicodice, sottosistemi e progetti attuali (sia interni che esterni a Linux).
21162306a36Sopenharmony_ciEsso descrive, inoltre, informazioni logistiche di base, riguardanti ad esempio
21262306a36Sopenharmony_cila compilazione del kernel e l'applicazione di una modifica.
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ciSe non sapete dove cominciare, ma volete cercare delle attività dalle quali
21562306a36Sopenharmony_cipartire per partecipare alla comunità di sviluppo, andate al progetto Linux
21662306a36Sopenharmony_ciKernel Janitor's.
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci	https://kernelnewbies.org/KernelJanitors
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ciÈ un buon posto da cui iniziare. Esso presenta una lista di problematiche
22162306a36Sopenharmony_cirelativamente semplici da sistemare e pulire all'interno della sorgente del
22262306a36Sopenharmony_cikernel Linux. Lavorando con gli sviluppatori incaricati di questo progetto,
22362306a36Sopenharmony_ciimparerete le basi per l'inserimento delle vostre modifiche all'interno dei
22462306a36Sopenharmony_cisorgenti del kernel Linux, e possibilmente, sarete indirizzati al lavoro
22562306a36Sopenharmony_cisuccessivo da svolgere, se non ne avrete ancora idea.
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ciPrima di apportare una qualsiasi modifica al codice del kernel Linux,
22862306a36Sopenharmony_ciè imperativo comprendere come tale codice funziona. A questo scopo, non c'è
22962306a36Sopenharmony_cinulla di meglio che leggerlo direttamente (la maggior parte dei bit più
23062306a36Sopenharmony_cicomplessi sono ben commentati), eventualmente anche con l'aiuto di strumenti
23162306a36Sopenharmony_cispecializzati. Uno degli strumenti che è particolarmente raccomandato è
23262306a36Sopenharmony_ciil progetto Linux Cross-Reference, che è in grado di presentare codice
23362306a36Sopenharmony_cisorgente in un formato autoreferenziale ed indicizzato. Un eccellente ed
23462306a36Sopenharmony_ciaggiornata fonte di consultazione del codice del kernel la potete trovare qui:
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci	https://elixir.bootlin.com/
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ciIl processo di sviluppo
24062306a36Sopenharmony_ci-----------------------
24162306a36Sopenharmony_ciIl processo di sviluppo del kernel Linux si compone di pochi "rami" principali
24262306a36Sopenharmony_cie di molti altri rami per specifici sottosistemi. Questi rami sono:
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci  - I sorgenti kernel 4.x
24562306a36Sopenharmony_ci  - I sorgenti stabili del kernel 4.x.y -stable
24662306a36Sopenharmony_ci  - Sorgenti dei sottosistemi del kernel e le loro modifiche
24762306a36Sopenharmony_ci  - Il kernel 4.x -next per test d'integrazione
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ciI sorgenti kernel 4.x
25062306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ciI kernel 4.x sono amministrati da Linus Torvald, e possono essere trovati
25362306a36Sopenharmony_cisu https://kernel.org nella cartella pub/linux/kernel/v4.x/. Il processo
25462306a36Sopenharmony_cidi sviluppo è il seguente:
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ci  - Non appena un nuovo kernel viene rilasciato si apre una finestra di due
25762306a36Sopenharmony_ci    settimane. Durante questo periodo i manutentori possono proporre a Linus
25862306a36Sopenharmony_ci    dei grossi cambiamenti; solitamente i cambiamenti che sono già stati
25962306a36Sopenharmony_ci    inseriti nel ramo -next del kernel per alcune settimane. Il modo migliore
26062306a36Sopenharmony_ci    per sottoporre dei cambiamenti è attraverso git (lo strumento usato per
26162306a36Sopenharmony_ci    gestire i sorgenti del kernel, più informazioni sul sito
26262306a36Sopenharmony_ci    https://git-scm.com/) ma anche delle patch vanno bene.
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci  - Al termine delle due settimane un kernel -rc1 viene rilasciato e
26562306a36Sopenharmony_ci    l'obbiettivo ora è quello di renderlo il più solido possibile. A questo
26662306a36Sopenharmony_ci    punto la maggior parte delle patch dovrebbero correggere un'eventuale
26762306a36Sopenharmony_ci    regressione. I bachi che sono sempre esistiti non sono considerabili come
26862306a36Sopenharmony_ci    regressioni, quindi inviate questo tipo di cambiamenti solo se sono
26962306a36Sopenharmony_ci    importanti. Notate che un intero driver (o filesystem) potrebbe essere
27062306a36Sopenharmony_ci    accettato dopo la -rc1 poiché non esistono rischi di una possibile
27162306a36Sopenharmony_ci    regressione con tale cambiamento, fintanto che quest'ultimo è
27262306a36Sopenharmony_ci    auto-contenuto e non influisce su aree esterne al codice che è stato
27362306a36Sopenharmony_ci    aggiunto. git può essere utilizzato per inviare le patch a Linus dopo che
27462306a36Sopenharmony_ci    la -rc1 è stata rilasciata, ma è anche necessario inviare le patch ad
27562306a36Sopenharmony_ci    una lista di discussione pubblica per un'ulteriore revisione.
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci  - Una nuova -rc viene rilasciata ogni volta che Linus reputa che gli attuali
27862306a36Sopenharmony_ci    sorgenti siano in uno stato di salute ragionevolmente adeguato ai test.
27962306a36Sopenharmony_ci    L'obiettivo è quello di rilasciare una nuova -rc ogni settimana.
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci  - Il processo continua fino a che il kernel è considerato "pronto"; tale
28262306a36Sopenharmony_ci    processo dovrebbe durare circa in 6 settimane.
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ciÈ utile menzionare quanto scritto da Andrew Morton sulla lista di discussione
28562306a36Sopenharmony_cikernel-linux in merito ai rilasci del kernel:
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci	*"Nessuno sa quando un kernel verrà rilasciato, poichè questo è
28862306a36Sopenharmony_ci	legato allo stato dei bachi e non ad una cronologia preventiva."*
28962306a36Sopenharmony_ci
29062306a36Sopenharmony_ciI sorgenti stabili del kernel 4.x.y -stable
29162306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ciI kernel con versioni in 3-parti sono "kernel stabili". Essi contengono
29462306a36Sopenharmony_cicorrezioni critiche relativamente piccole nell'ambito della sicurezza
29562306a36Sopenharmony_cioppure significative regressioni scoperte in un dato 4.x kernel.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ciQuesto è il ramo raccomandato per gli utenti che vogliono un kernel recente
29862306a36Sopenharmony_cie stabile e non sono interessati a dare il proprio contributo alla verifica
29962306a36Sopenharmony_cidelle versioni di sviluppo o sperimentali.
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ciSe non è disponibile alcun kernel 4.x.y., quello più aggiornato e stabile
30262306a36Sopenharmony_cisarà il kernel 4.x con la numerazione più alta.
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_ci4.x.y sono amministrati dal gruppo "stable" <stable@vger.kernel.org>, e sono
30562306a36Sopenharmony_cirilasciati a seconda delle esigenze. Il normale periodo di rilascio è
30662306a36Sopenharmony_ciapprossimativamente di due settimane, ma può essere più lungo se non si
30762306a36Sopenharmony_civerificano problematiche urgenti. Un problema relativo alla sicurezza, invece,
30862306a36Sopenharmony_cipuò determinare un rilascio immediato.
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ciIl file Documentation/process/stable-kernel-rules.rst (nei sorgenti) documenta
31162306a36Sopenharmony_ciquali tipologie di modifiche sono accettate per i sorgenti -stable, e come
31262306a36Sopenharmony_ciavviene il processo di rilascio.
31362306a36Sopenharmony_ci
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ciSorgenti dei sottosistemi del kernel e le loro patch
31662306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_ciI manutentori dei diversi sottosistemi del kernel --- ed anche molti
31962306a36Sopenharmony_cisviluppatori di sottosistemi --- mostrano il loro attuale stato di sviluppo
32062306a36Sopenharmony_cinei loro repositori. In questo modo, altri possono vedere cosa succede nelle
32162306a36Sopenharmony_cidiverse parti del kernel. In aree dove lo sviluppo è rapido, potrebbe essere
32262306a36Sopenharmony_cichiesto ad uno sviluppatore di basare le proprie modifiche su questi repositori
32362306a36Sopenharmony_ciin modo da evitare i conflitti fra le sottomissioni ed altri lavori in corso
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ciLa maggior parte di questi repositori sono git, ma esistono anche altri SCM
32662306a36Sopenharmony_ciin uso, o file di patch pubblicate come una serie quilt.
32762306a36Sopenharmony_ciGli indirizzi dei repositori di sottosistema sono indicati nel file
32862306a36Sopenharmony_ciMAINTAINERS.  Molti di questi posso essere trovati su  https://git.kernel.org/.
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ciPrima che una modifica venga inclusa in questi sottosistemi, sarà soggetta ad
33162306a36Sopenharmony_ciuna revisione che inizialmente avviene tramite liste di discussione (vedere la
33262306a36Sopenharmony_cisezione dedicata qui sotto). Per molti sottosistemi del kernel, tale processo
33362306a36Sopenharmony_cidi revisione è monitorato con lo strumento patchwork.
33462306a36Sopenharmony_ciPatchwork offre un'interfaccia web che mostra le patch pubblicate, inclusi i
33562306a36Sopenharmony_cicommenti o le revisioni fatte, e gli amministratori possono indicare le patch
33662306a36Sopenharmony_cicome "in revisione", "accettate", o "rifiutate". Diversi siti Patchwork sono
33762306a36Sopenharmony_cielencati al sito https://patchwork.kernel.org/.
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ciIl kernel 4.x -next per test d'integrazione
34062306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_ciPrima che gli aggiornamenti dei sottosistemi siano accorpati nel ramo
34362306a36Sopenharmony_ciprincipale 4.x, sarà necessario un test d'integrazione.
34462306a36Sopenharmony_ciA tale scopo, esiste un repositorio speciale di test nel quale virtualmente
34562306a36Sopenharmony_citutti i rami dei sottosistemi vengono inclusi su base quotidiana:
34662306a36Sopenharmony_ci
34762306a36Sopenharmony_ci	https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ciIn questo modo, i kernel -next offrono uno sguardo riassuntivo su quello che
35062306a36Sopenharmony_cici si aspetterà essere nel kernel principale nel successivo periodo
35162306a36Sopenharmony_cid'incorporazione.
35262306a36Sopenharmony_ciColoro che vorranno fare dei test d'esecuzione del kernel -next sono più che
35362306a36Sopenharmony_cibenvenuti.
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ciRiportare Bug
35762306a36Sopenharmony_ci-------------
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_ciIl file 'Documentation/admin-guide/reporting-issues.rst' nella
36062306a36Sopenharmony_cicartella principale del kernel spiega come segnalare un baco nel
36162306a36Sopenharmony_cikernel, e fornisce dettagli su quali informazioni sono necessarie agli
36262306a36Sopenharmony_cisviluppatori del kernel per poter studiare il problema.
36362306a36Sopenharmony_ci
36462306a36Sopenharmony_ciGestire i rapporti sui bug
36562306a36Sopenharmony_ci--------------------------
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ciUno dei modi migliori per mettere in pratica le vostre capacità di hacking è
36862306a36Sopenharmony_ciquello di riparare bachi riportati da altre persone. Non solo aiuterete a far
36962306a36Sopenharmony_cidiventare il kernel più stabile, ma imparerete a riparare problemi veri dal
37062306a36Sopenharmony_cimondo ed accrescerete le vostre competenze, e gli altri sviluppatori saranno
37162306a36Sopenharmony_cial corrente della vostra presenza. Riparare bachi è una delle migliori vie per
37262306a36Sopenharmony_ciacquisire meriti tra gli altri sviluppatori, perchè non a molte persone piace
37362306a36Sopenharmony_ciperdere tempo a sistemare i bachi di altri.
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_ciPer lavorare sui bachi già segnalati, per prima cosa cercate il
37662306a36Sopenharmony_cisottosistema che vi interessa. Poi, verificate nel file MAINTAINERS
37762306a36Sopenharmony_cidove vengono collezionati solitamente i bachi per quel sottosistema;
37862306a36Sopenharmony_cispesso sarà una lista di discussione, raramente un bugtracker. Cercate
37962306a36Sopenharmony_cibachi nell'archivio e aiutate dove credete di poterlo fare. Potete
38062306a36Sopenharmony_cianche consultare https://bugzilla.kernel.org; però, solo una manciata di
38162306a36Sopenharmony_cisottosistemi lo usano attivamente, ciò nonostante i bachi che
38262306a36Sopenharmony_cicoinvolgono l'intero kernel sono sempre riportati lì.
38362306a36Sopenharmony_ci
38462306a36Sopenharmony_ciListe di discussione
38562306a36Sopenharmony_ci--------------------
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_ciCome descritto in molti dei documenti qui sopra, la maggior parte degli
38862306a36Sopenharmony_cisviluppatori del kernel partecipano alla lista di discussione Linux Kernel.
38962306a36Sopenharmony_ciI dettagli su come iscriversi e disiscriversi dalla lista possono essere
39062306a36Sopenharmony_citrovati al sito:
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ci	http://vger.kernel.org/vger-lists.html#linux-kernel
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_ciCi sono diversi archivi della lista di discussione. Usate un qualsiasi motore
39562306a36Sopenharmony_cidi ricerca per trovarli. Per esempio:
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ci	https://lore.kernel.org/lkml/
39862306a36Sopenharmony_ci
39962306a36Sopenharmony_ciÉ caldamente consigliata una ricerca in questi archivi sul tema che volete
40062306a36Sopenharmony_cisollevare, prima di pubblicarlo sulla lista. Molte cose sono già state
40162306a36Sopenharmony_cidiscusse in dettaglio e registrate negli archivi della lista di discussione.
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_ciMolti dei sottosistemi del kernel hanno anche una loro lista di discussione
40462306a36Sopenharmony_cidedicata.  Guardate nel file MAINTAINERS per avere una lista delle liste di
40562306a36Sopenharmony_cidiscussione e il loro uso.
40662306a36Sopenharmony_ci
40762306a36Sopenharmony_ciMolte di queste liste sono gestite su kernel.org. Per informazioni consultate
40862306a36Sopenharmony_cila seguente pagina:
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_ci	http://vger.kernel.org/vger-lists.html
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_ciPer favore ricordatevi della buona educazione quando utilizzate queste liste.
41362306a36Sopenharmony_ciSebbene sia un pò dozzinale, il seguente URL contiene alcune semplici linee
41462306a36Sopenharmony_ciguida per interagire con la lista (o con qualsiasi altra lista):
41562306a36Sopenharmony_ci
41662306a36Sopenharmony_ci	http://www.albion.com/netiquette/
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_ciSe diverse persone rispondo alla vostra mail, la lista dei riceventi (copia
41962306a36Sopenharmony_ciconoscenza) potrebbe diventare abbastanza lunga. Non cancellate nessuno dalla
42062306a36Sopenharmony_cilista di CC: senza un buon motivo, e non rispondete solo all'indirizzo
42162306a36Sopenharmony_cidella lista di discussione. Fateci l'abitudine perché capita spesso di
42262306a36Sopenharmony_ciricevere la stessa email due volte: una dal mittente ed una dalla lista; e non
42362306a36Sopenharmony_cicercate di modificarla aggiungendo intestazioni stravaganti, agli altri non
42462306a36Sopenharmony_cipiacerà.
42562306a36Sopenharmony_ci
42662306a36Sopenharmony_ciRicordate di rimanere sempre in argomento e di mantenere le attribuzioni
42762306a36Sopenharmony_cidelle vostre risposte invariate; mantenete il "John Kernelhacker wrote ...:"
42862306a36Sopenharmony_ciin cima alla vostra replica e aggiungete le vostre risposte fra i singoli
42962306a36Sopenharmony_ciblocchi citati, non scrivete all'inizio dell'email.
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ciSe aggiungete patch alla vostra mail, assicuratevi che siano del tutto
43262306a36Sopenharmony_cileggibili come indicato in Documentation/process/submitting-patches.rst.
43362306a36Sopenharmony_ciGli sviluppatori kernel non vogliono avere a che fare con allegati o patch
43462306a36Sopenharmony_cicompresse; vogliono invece poter commentare le righe dei vostri cambiamenti,
43562306a36Sopenharmony_ciil che può funzionare solo in questo modo.
43662306a36Sopenharmony_ciAssicuratevi di utilizzare un gestore di mail che non alterì gli spazi ed i
43762306a36Sopenharmony_cicaratteri. Un ottimo primo test è quello di inviare a voi stessi una mail e
43862306a36Sopenharmony_cicercare di sottoporre la vostra stessa patch. Se non funziona, sistemate il
43962306a36Sopenharmony_civostro programma di posta, o cambiatelo, finché non funziona.
44062306a36Sopenharmony_ci
44162306a36Sopenharmony_ciEd infine, per favore ricordatevi di mostrare rispetto per gli altri
44262306a36Sopenharmony_cisottoscriventi.
44362306a36Sopenharmony_ci
44462306a36Sopenharmony_ciLavorare con la comunità
44562306a36Sopenharmony_ci------------------------
44662306a36Sopenharmony_ci
44762306a36Sopenharmony_ciL'obiettivo di questa comunità è quello di fornire il miglior kernel possibile.
44862306a36Sopenharmony_ciQuando inviate una modifica che volete integrare, sarà valutata esclusivamente
44962306a36Sopenharmony_cidal punto di vista tecnico. Quindi, cosa dovreste aspettarvi?
45062306a36Sopenharmony_ci
45162306a36Sopenharmony_ci  - critiche
45262306a36Sopenharmony_ci  - commenti
45362306a36Sopenharmony_ci  - richieste di cambiamento
45462306a36Sopenharmony_ci  - richieste di spiegazioni
45562306a36Sopenharmony_ci  - nulla
45662306a36Sopenharmony_ci
45762306a36Sopenharmony_ciRicordatevi che questo fa parte dell'integrazione della vostra modifica
45862306a36Sopenharmony_ciall'interno del kernel.  Dovete essere in grado di accettare le critiche,
45962306a36Sopenharmony_civalutarle a livello tecnico ed eventualmente rielaborare nuovamente le vostre
46062306a36Sopenharmony_cimodifiche o fornire delle chiare e concise motivazioni per le quali le
46162306a36Sopenharmony_cimodifiche suggerite non dovrebbero essere fatte.
46262306a36Sopenharmony_ciSe non riceverete risposte, aspettate qualche giorno e riprovate ancora,
46362306a36Sopenharmony_ciqualche volta le cose si perdono nell'enorme mucchio di email.
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_ciCosa non dovreste fare?
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ci  - aspettarvi che la vostra modifica venga accettata senza problemi
46862306a36Sopenharmony_ci  - mettervi sulla difensiva
46962306a36Sopenharmony_ci  - ignorare i commenti
47062306a36Sopenharmony_ci  - sottomettere nuovamente la modifica senza fare nessuno dei cambiamenti
47162306a36Sopenharmony_ci    richiesti
47262306a36Sopenharmony_ci
47362306a36Sopenharmony_ciIn una comunità che è alla ricerca delle migliori soluzioni tecniche possibili,
47462306a36Sopenharmony_cici saranno sempre opinioni differenti sull'utilità di una modifica.
47562306a36Sopenharmony_ciSiate cooperativi e vogliate adattare la vostra idea in modo che sia inserita
47662306a36Sopenharmony_cinel kernel.  O almeno vogliate dimostrare che la vostra idea vale.
47762306a36Sopenharmony_ciRicordatevi, sbagliare è accettato fintanto che siate disposti a lavorare verso
47862306a36Sopenharmony_ciuna soluzione che è corretta.
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ciÈ normale che le risposte alla vostra prima modifica possa essere
48162306a36Sopenharmony_cisemplicemente una lista con dozzine di cose che dovreste correggere.
48262306a36Sopenharmony_ciQuesto **non** implica che la vostra patch non sarà accettata, e questo
48362306a36Sopenharmony_ci**non** è contro di voi personalmente.
48462306a36Sopenharmony_ciSemplicemente correggete tutte le questioni sollevate contro la vostra modifica
48562306a36Sopenharmony_cied inviatela nuovamente.
48662306a36Sopenharmony_ci
48762306a36Sopenharmony_ciDifferenze tra la comunità del kernel e le strutture aziendali
48862306a36Sopenharmony_ci--------------------------------------------------------------
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_ciLa comunità del kernel funziona diversamente rispetto a molti ambienti di
49162306a36Sopenharmony_cisviluppo aziendali.  Qui di seguito una lista di cose che potete provare a
49262306a36Sopenharmony_cifare per evitare problemi:
49362306a36Sopenharmony_ci
49462306a36Sopenharmony_ci  Cose da dire riguardanti le modifiche da voi proposte:
49562306a36Sopenharmony_ci
49662306a36Sopenharmony_ci  - "Questo risolve più problematiche."
49762306a36Sopenharmony_ci  - "Questo elimina 2000 stringhe di codice."
49862306a36Sopenharmony_ci  - "Qui una modifica che spiega cosa sto cercando di fare."
49962306a36Sopenharmony_ci  - "L'ho testato su 5 diverse architetture.."
50062306a36Sopenharmony_ci  - "Qui una serie di piccole modifiche che.."
50162306a36Sopenharmony_ci  - "Questo aumenta le prestazioni di macchine standard..."
50262306a36Sopenharmony_ci
50362306a36Sopenharmony_ci Cose che dovreste evitare di dire:
50462306a36Sopenharmony_ci
50562306a36Sopenharmony_ci    - "Lo abbiamo fatto in questo modo in AIX/ptx/Solaris, di conseguenza
50662306a36Sopenharmony_ci       deve per forza essere giusto..."
50762306a36Sopenharmony_ci    - "Ho fatto questo per 20 anni, quindi.."
50862306a36Sopenharmony_ci    - "Questo è richiesto dalla mia Azienda per far soldi"
50962306a36Sopenharmony_ci    - "Questo è per la linea di prodotti della nostra Azienda"
51062306a36Sopenharmony_ci    - "Ecco il mio documento di design di 1000 pagine che descrive ciò che ho
51162306a36Sopenharmony_ci       in mente"
51262306a36Sopenharmony_ci    - "Ci ho lavorato per 6 mesi..."
51362306a36Sopenharmony_ci    - "Ecco una patch da 5000 righe che.."
51462306a36Sopenharmony_ci    - "Ho riscritto il pasticcio attuale, ed ecco qua.."
51562306a36Sopenharmony_ci    - "Ho una scadenza, e questa modifica ha bisogno di essere approvata ora"
51662306a36Sopenharmony_ci
51762306a36Sopenharmony_ciUn'altra cosa nella quale la comunità del kernel si differenzia dai più
51862306a36Sopenharmony_ciclassici ambienti di ingegneria del software è la natura "senza volto" delle
51962306a36Sopenharmony_ciinterazioni umane. Uno dei benefici dell'uso delle email e di irc come forma
52062306a36Sopenharmony_ciprimordiale di comunicazione è l'assenza di discriminazione basata su genere e
52162306a36Sopenharmony_cirazza. L'ambienti di lavoro Linux accetta donne e minoranze perchè tutto quello
52262306a36Sopenharmony_ciche sei è un indirizzo email.  Aiuta anche l'aspetto internazionale nel
52362306a36Sopenharmony_cilivellare il terreno di gioco perchè non è possibile indovinare il genere
52462306a36Sopenharmony_cibasandosi sul nome di una persona. Un uomo può chiamarsi Andrea ed una donna
52562306a36Sopenharmony_cipotrebbe chiamarsi Pat. Gran parte delle donne che hanno lavorato al kernel
52662306a36Sopenharmony_ciLinux e che hanno espresso una personale opinione hanno avuto esperienze
52762306a36Sopenharmony_cipositive.
52862306a36Sopenharmony_ci
52962306a36Sopenharmony_ciLa lingua potrebbe essere un ostacolo per quelle persone che non si trovano
53062306a36Sopenharmony_cia loro agio con l'inglese.  Una buona padronanza del linguaggio può essere
53162306a36Sopenharmony_cinecessaria per esporre le proprie idee in maniera appropiata all'interno
53262306a36Sopenharmony_cidelle liste di discussione, quindi è consigliabile che rileggiate le vostre
53362306a36Sopenharmony_ciemail prima di inviarle in modo da essere certi che abbiano senso in inglese.
53462306a36Sopenharmony_ci
53562306a36Sopenharmony_ci
53662306a36Sopenharmony_ciSpezzare le vostre modifiche
53762306a36Sopenharmony_ci----------------------------
53862306a36Sopenharmony_ci
53962306a36Sopenharmony_ciLa comunità del kernel Linux non accetta con piacere grossi pezzi di codice
54062306a36Sopenharmony_cibuttati lì tutti in una volta. Le modifiche necessitano di essere
54162306a36Sopenharmony_ciadeguatamente presentate, discusse, e suddivise in parti più piccole ed
54262306a36Sopenharmony_ciindipendenti.  Questo è praticamente l'esatto opposto di quello che le
54362306a36Sopenharmony_ciaziende fanno solitamente.  La vostra proposta dovrebbe, inoltre, essere
54462306a36Sopenharmony_cipresentata prestissimo nel processo di sviluppo, così che possiate ricevere
54562306a36Sopenharmony_ciun riscontro su quello che state facendo. Lasciate che la comunità
54662306a36Sopenharmony_cisenta che state lavorando con loro, e che non li stiate sfruttando come
54762306a36Sopenharmony_cidiscarica per le vostre aggiunte.  In ogni caso, non inviate 50 email nello
54862306a36Sopenharmony_cistesso momento in una lista di discussione, il più delle volte la vostra serie
54962306a36Sopenharmony_cidi modifiche dovrebbe essere più piccola.
55062306a36Sopenharmony_ci
55162306a36Sopenharmony_ciI motivi per i quali dovreste frammentare le cose sono i seguenti:
55262306a36Sopenharmony_ci
55362306a36Sopenharmony_ci1) Piccole modifiche aumentano le probabilità che vengano accettate,
55462306a36Sopenharmony_ci   altrimenti richiederebbe troppo tempo o sforzo nel verificarne
55562306a36Sopenharmony_ci   la correttezza.  Una modifica di 5 righe può essere accettata da un
55662306a36Sopenharmony_ci   manutentore con a mala pena una seconda occhiata. Invece, una modifica da
55762306a36Sopenharmony_ci   500 linee può richiedere ore di rilettura per verificarne la correttezza
55862306a36Sopenharmony_ci   (il tempo necessario è esponenzialmente proporzionale alla dimensione della
55962306a36Sopenharmony_ci   modifica, o giù di lì)
56062306a36Sopenharmony_ci
56162306a36Sopenharmony_ci   Piccole modifiche sono inoltre molto facili da debuggare quando qualcosa
56262306a36Sopenharmony_ci   non va. È molto più facile annullare le modifiche una per una che
56362306a36Sopenharmony_ci   dissezionare una patch molto grande dopo la sua sottomissione (e rompere
56462306a36Sopenharmony_ci   qualcosa).
56562306a36Sopenharmony_ci
56662306a36Sopenharmony_ci2) È importante non solo inviare piccole modifiche, ma anche riscriverle e
56762306a36Sopenharmony_ci   semplificarle (o più semplicemente ordinarle) prima di sottoporle.
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_ciQui un'analogia dello sviluppatore kernel Al Viro:
57062306a36Sopenharmony_ci
57162306a36Sopenharmony_ci	*"Pensate ad un insegnante di matematica che corregge il compito
57262306a36Sopenharmony_ci	di uno studente (di matematica). L'insegnante non vuole vedere le
57362306a36Sopenharmony_ci	prove e gli errori commessi dallo studente prima che arrivi alla
57462306a36Sopenharmony_ci	soluzione. Vuole vedere la risposta più pulita ed elegante
57562306a36Sopenharmony_ci	possibile.  Un buono studente lo sa, e non presenterebbe mai le
57662306a36Sopenharmony_ci	proprie bozze prima prima della soluzione finale"*
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ci	*"Lo stesso vale per lo sviluppo del kernel. I manutentori ed i
57962306a36Sopenharmony_ci	revisori non vogliono vedere il procedimento che sta dietro al
58062306a36Sopenharmony_ci	problema che uno sta risolvendo. Vogliono vedere una soluzione
58162306a36Sopenharmony_ci	semplice ed elegante."*
58262306a36Sopenharmony_ci
58362306a36Sopenharmony_ciPuò essere una vera sfida il saper mantenere l'equilibrio fra una presentazione
58462306a36Sopenharmony_cielegante della vostra soluzione, lavorare insieme ad una comunità e dibattere
58562306a36Sopenharmony_cisu un lavoro incompleto.  Pertanto è bene entrare presto nel processo di
58662306a36Sopenharmony_cirevisione per migliorare il vostro lavoro, ma anche per riuscire a tenere le
58762306a36Sopenharmony_civostre modifiche in pezzettini che potrebbero essere già accettate, nonostante
58862306a36Sopenharmony_cila vostra intera attività non lo sia ancora.
58962306a36Sopenharmony_ci
59062306a36Sopenharmony_ciIn fine, rendetevi conto che non è accettabile inviare delle modifiche
59162306a36Sopenharmony_ciincomplete con la promessa che saranno "sistemate dopo".
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_ci
59462306a36Sopenharmony_ciGiustificare le vostre modifiche
59562306a36Sopenharmony_ci--------------------------------
59662306a36Sopenharmony_ci
59762306a36Sopenharmony_ciInsieme alla frammentazione delle vostre modifiche, è altrettanto importante
59862306a36Sopenharmony_cipermettere alla comunità Linux di capire perché dovrebbero accettarle.
59962306a36Sopenharmony_ciNuove funzionalità devono essere motivate come necessarie ed utili.
60062306a36Sopenharmony_ci
60162306a36Sopenharmony_ci
60262306a36Sopenharmony_ciDocumentare le vostre modifiche
60362306a36Sopenharmony_ci-------------------------------
60462306a36Sopenharmony_ci
60562306a36Sopenharmony_ciQuando inviate le vostre modifiche, fate particolare attenzione a quello che
60662306a36Sopenharmony_ciscrivete nella vostra email.  Questa diventerà il *ChangeLog* per la modifica,
60762306a36Sopenharmony_cie sarà visibile a tutti per sempre.  Dovrebbe descrivere la modifica nella sua
60862306a36Sopenharmony_ciinterezza, contenendo:
60962306a36Sopenharmony_ci
61062306a36Sopenharmony_ci - perchè la modifica è necessaria
61162306a36Sopenharmony_ci - l'approccio d'insieme alla patch
61262306a36Sopenharmony_ci - dettagli supplementari
61362306a36Sopenharmony_ci - risultati dei test
61462306a36Sopenharmony_ci
61562306a36Sopenharmony_ciPer maggiori dettagli su come tutto ciò dovrebbe apparire, riferitevi alla
61662306a36Sopenharmony_cisezione ChangeLog del documento:
61762306a36Sopenharmony_ci
61862306a36Sopenharmony_ci "The Perfect Patch"
61962306a36Sopenharmony_ci      http://www.ozlabs.org/~akpm/stuff/tpp.txt
62062306a36Sopenharmony_ci
62162306a36Sopenharmony_ciA volte tutto questo è difficile da realizzare. Il perfezionamento di queste
62262306a36Sopenharmony_cipratiche può richiedere anni (eventualmente). È un processo continuo di
62362306a36Sopenharmony_cimiglioramento che richiede molta pazienza e determinazione. Ma non mollate,
62462306a36Sopenharmony_cisi può fare. Molti lo hanno fatto prima, ed ognuno ha dovuto iniziare dove
62562306a36Sopenharmony_cisiete voi ora.
62662306a36Sopenharmony_ci
62762306a36Sopenharmony_ci
62862306a36Sopenharmony_ci
62962306a36Sopenharmony_ci
63062306a36Sopenharmony_ci----------
63162306a36Sopenharmony_ci
63262306a36Sopenharmony_ciGrazie a Paolo Ciarrocchi che ha permesso che la sezione "Development Process"
63362306a36Sopenharmony_ci(https://lwn.net/Articles/94386/) fosse basata sui testi da lui scritti, ed a
63462306a36Sopenharmony_ciRandy Dunlap e Gerrit Huizenga per la lista di cose che dovreste e non
63562306a36Sopenharmony_cidovreste dire. Grazie anche a Pat Mochel, Hanna Linder, Randy Dunlap,
63662306a36Sopenharmony_ciKay Sievers, Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton,
63762306a36Sopenharmony_ciAndi Kleen, Vadim Lobanov, Jesper Juhl, Adrian Bunk, Keri Harris, Frans Pop,
63862306a36Sopenharmony_ciDavid A. Wheeler, Junio Hamano, Michael Kerrisk, e Alex Shepard per le
63962306a36Sopenharmony_ciloro revisioni, commenti e contributi.  Senza il loro aiuto, questo documento
64062306a36Sopenharmony_cinon sarebbe stato possibile.
64162306a36Sopenharmony_ci
64262306a36Sopenharmony_ciManutentore: Greg Kroah-Hartman <greg@kroah.com>
643