1edba5eecSFederico Vaga.. include:: ../disclaimer-ita.rst 2edba5eecSFederico Vaga 3edba5eecSFederico Vaga:Original: :ref:`Documentation/process/howto.rst <process_howto>` 4edba5eecSFederico Vaga:Translator: Alessia Mantegazza <amantegazza@vaga.pv.it> 5edba5eecSFederico Vaga 6edba5eecSFederico Vaga.. _it_process_howto: 7edba5eecSFederico Vaga 8edba5eecSFederico VagaCome partecipare allo sviluppo del kernel Linux 9edba5eecSFederico Vaga=============================================== 10edba5eecSFederico Vaga 11edba5eecSFederico VagaQuesto è il documento fulcro di quanto trattato sull'argomento. 12edba5eecSFederico VagaEsso contiene le istruzioni su come diventare uno sviluppatore 13edba5eecSFederico Vagadel kernel Linux e spiega come lavorare con la comunità di 14edba5eecSFederico Vagasviluppo kernel Linux. Il documento non tratterà alcun aspetto 15edba5eecSFederico Vagatecnico relativo alla programmazione del kernel, ma vi aiuterà 16edba5eecSFederico Vagaindirizzandovi sulla corretta strada. 17edba5eecSFederico Vaga 18edba5eecSFederico VagaSe qualsiasi cosa presente in questo documento diventasse obsoleta, 19edba5eecSFederico Vagavi preghiamo di inviare le correzioni agli amministratori di questo 20edba5eecSFederico Vagafile, indicati in fondo al presente documento. 21edba5eecSFederico Vaga 22edba5eecSFederico VagaIntroduzione 23edba5eecSFederico Vaga------------ 24edba5eecSFederico VagaDunque, volete imparare come diventare sviluppatori del kernel Linux? 25edba5eecSFederico VagaO vi è stato detto dal vostro capo, "Vai, scrivi un driver Linux per 26edba5eecSFederico Vagaquesto dispositivo". Bene, l'obbiettivo di questo documento è quello 27edba5eecSFederico Vagadi insegnarvi tutto ciò che dovete sapere per raggiungere il vostro 28edba5eecSFederico Vagascopo descrivendo il procedimento da seguire e consigliandovi 29edba5eecSFederico Vagasu come lavorare con la comunità. Il documento cercherà, inoltre, 30edba5eecSFederico Vagadi spiegare alcune delle ragioni per le quali la comunità lavora in un 31edba5eecSFederico Vagamodo suo particolare. 32edba5eecSFederico Vaga 33edba5eecSFederico VagaIl kernel è scritto prevalentemente nel linguaggio C con alcune parti 34edba5eecSFederico Vagaspecifiche dell'architettura scritte in linguaggio assembly. 35edba5eecSFederico VagaPer lo sviluppo kernel è richiesta una buona conoscenza del linguaggio C. 36edba5eecSFederico VagaL'assembly (di qualsiasi architettura) non è richiesto, a meno che non 37edba5eecSFederico Vagapensiate di fare dello sviluppo di basso livello per un'architettura. 38edba5eecSFederico VagaSebbene essi non siano un buon sostituto ad un solido studio del 39edba5eecSFederico Vagalinguaggio C o ad anni di esperienza, i seguenti libri sono, se non 40edba5eecSFederico Vagaaltro, utili riferimenti: 41edba5eecSFederico Vaga 42edba5eecSFederico Vaga- "The C Programming Language" di Kernighan e Ritchie [Prentice Hall] 43edba5eecSFederico Vaga- "Practical C Programming" di Steve Oualline [O'Reilly] 44edba5eecSFederico Vaga- "C: A Reference Manual" di Harbison and Steele [Prentice Hall] 45edba5eecSFederico Vaga 46edba5eecSFederico VagaIl kernel è stato scritto usando GNU C e la toolchain GNU. 47*2f3f53d6SAkira YokosawaSebbene si attenga allo standard ISO C11, esso utilizza una serie di 48edba5eecSFederico Vagaestensioni che non sono previste in questo standard. Il kernel è un 49edba5eecSFederico Vagaambiente C indipendente, che non ha alcuna dipendenza dalle librerie 50edba5eecSFederico VagaC standard, così alcune parti del C standard non sono supportate. 51edba5eecSFederico VagaLe divisioni ``long long`` e numeri in virgola mobile non sono permessi. 52edba5eecSFederico VagaQualche volta è difficile comprendere gli assunti che il kernel ha 53edba5eecSFederico Vagariguardo gli strumenti e le estensioni in uso, e sfortunatamente non 54edba5eecSFederico Vagaesiste alcuna indicazione definitiva. Per maggiori informazioni, controllate, 55edba5eecSFederico Vagala pagina `info gcc`. 56edba5eecSFederico Vaga 57edba5eecSFederico VagaTenete a mente che state cercando di apprendere come lavorare con la comunità 58edba5eecSFederico Vagadi sviluppo già esistente. Questo è un gruppo eterogeneo di persone, con alti 59edba5eecSFederico Vagastandard di codifica, di stile e di procedura. Questi standard sono stati 60edba5eecSFederico Vagacreati nel corso del tempo basandosi su quanto hanno riscontrato funzionare al 61edba5eecSFederico Vagameglio per un squadra così grande e geograficamente sparsa. Cercate di 62edba5eecSFederico Vagaimparare, in anticipo, il più possibile circa questi standard, poichè ben 63edba5eecSFederico Vagaspiegati; non aspettatevi che gli altri si adattino al vostro modo di fare 64edba5eecSFederico Vagao a quello della vostra azienda. 65edba5eecSFederico Vaga 66edba5eecSFederico VagaNote legali 67edba5eecSFederico Vaga------------ 68edba5eecSFederico VagaIl codice sorgente del kernel Linux è rilasciato sotto GPL. Siete pregati 69edba5eecSFederico Vagadi visionare il file, COPYING, presente nella cartella principale dei 70edba5eecSFederico Vagasorgente, per eventuali dettagli sulla licenza. Se avete ulteriori domande 71edba5eecSFederico Vagasulla licenza, contattate un avvocato, non chiedete sulle liste di discussione 72edba5eecSFederico Vagadel kernel Linux. Le persone presenti in queste liste non sono avvocati, 73edba5eecSFederico Vagae non dovreste basarvi sulle loro dichiarazioni in materia giuridica. 74edba5eecSFederico Vaga 75edba5eecSFederico VagaPer domande più frequenti e risposte sulla licenza GPL, guardare: 76edba5eecSFederico Vaga 77edba5eecSFederico Vaga https://www.gnu.org/licenses/gpl-faq.html 78edba5eecSFederico Vaga 79edba5eecSFederico VagaDocumentazione 80edba5eecSFederico Vaga-------------- 81edba5eecSFederico VagaI sorgenti del kernel Linux hanno una vasta base di documenti che vi 82edba5eecSFederico Vagainsegneranno come interagire con la comunità del kernel. Quando nuove 83edba5eecSFederico Vagafunzionalità vengono aggiunte al kernel, si raccomanda di aggiungere anche i 84edba5eecSFederico Vagarelativi file di documentatione che spiegano come usarele. 85edba5eecSFederico VagaQuando un cambiamento del kernel genera anche un cambiamento nell'interfaccia 86edba5eecSFederico Vagacon lo spazio utente, è raccomandabile che inviate una notifica o una 87edba5eecSFederico Vagacorrezione alle pagine *man* spiegando tale modifica agli amministratori di 88edba5eecSFederico Vagaqueste pagine all'indirizzo mtk.manpages@gmail.com, aggiungendo 89edba5eecSFederico Vagain CC la lista linux-api@vger.kernel.org. 90edba5eecSFederico Vaga 91edba5eecSFederico VagaDi seguito una lista di file che sono presenti nei sorgente del kernel e che 92edba5eecSFederico Vagaè richiesto che voi leggiate: 93edba5eecSFederico Vaga 94edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/admin-guide/README.rst <it_readme>` 95edba5eecSFederico Vaga Questo file da una piccola anteprima del kernel Linux e descrive il 96edba5eecSFederico Vaga minimo necessario per configurare e generare il kernel. I novizi 97edba5eecSFederico Vaga del kernel dovrebbero iniziare da qui. 98edba5eecSFederico Vaga 99edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/process/changes.rst <it_changes>` 100edba5eecSFederico Vaga 101edba5eecSFederico Vaga Questo file fornisce una lista dei pacchetti software necessari 102edba5eecSFederico Vaga a compilare e far funzionare il kernel con successo. 103edba5eecSFederico Vaga 104edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/process/coding-style.rst <it_codingstyle>` 105edba5eecSFederico Vaga 106edba5eecSFederico Vaga Questo file descrive lo stile della codifica per il kernel Linux, 107edba5eecSFederico Vaga e parte delle motivazioni che ne sono alla base. Tutto il nuovo codice deve 108edba5eecSFederico Vaga seguire le linee guida in questo documento. Molti amministratori 109edba5eecSFederico Vaga accetteranno patch solo se queste osserveranno tali regole, e molte 110edba5eecSFederico Vaga persone revisioneranno il codice solo se scritto nello stile appropriato. 111edba5eecSFederico Vaga 11226f200c9SLukas Bulwahn :ref:`Documentation/translations/it_IT/process/submitting-patches.rst <it_submittingpatches>` 113edba5eecSFederico Vaga 114edba5eecSFederico Vaga Questo file descrive dettagliatamente come creare ed inviare una patch 115edba5eecSFederico Vaga con successo, includendo (ma non solo questo): 116edba5eecSFederico Vaga 117edba5eecSFederico Vaga - Contenuto delle email 118edba5eecSFederico Vaga - Formato delle email 119edba5eecSFederico Vaga - I destinatari delle email 120edba5eecSFederico Vaga 121edba5eecSFederico Vaga Seguire tali regole non garantirà il successo (tutte le patch sono soggette 122edba5eecSFederico Vaga a controlli realitivi a contenuto e stile), ma non seguirle lo precluderà 123edba5eecSFederico Vaga sempre. 124edba5eecSFederico Vaga 125edba5eecSFederico Vaga Altre ottime descrizioni di come creare buone patch sono: 126edba5eecSFederico Vaga 127edba5eecSFederico Vaga "The Perfect Patch" 128edba5eecSFederico Vaga https://www.ozlabs.org/~akpm/stuff/tpp.txt 129edba5eecSFederico Vaga 130edba5eecSFederico Vaga "Linux kernel patch submission format" 1315aff7c46SJacob Huisman https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html 132edba5eecSFederico Vaga 133165915c1SFederico Vaga :ref:`Documentation/translations/it_IT/process/stable-api-nonsense.rst <it_stable_api_nonsense>` 134edba5eecSFederico Vaga 135edba5eecSFederico Vaga Questo file descrive la motivazioni sottostanti la conscia decisione di 136edba5eecSFederico Vaga non avere un API stabile all'interno del kernel, incluso cose come: 137edba5eecSFederico Vaga 138edba5eecSFederico Vaga - Sottosistemi shim-layers (per compatibilità?) 139edba5eecSFederico Vaga - Portabilità fra Sistemi Operativi dei driver. 140edba5eecSFederico Vaga - Attenuare i rapidi cambiamenti all'interno dei sorgenti del kernel 141edba5eecSFederico Vaga (o prevenirli) 142edba5eecSFederico Vaga 143edba5eecSFederico Vaga Questo documento è vitale per la comprensione della filosifia alla base 144edba5eecSFederico Vaga dello sviluppo di Linux ed è molto importante per le persone che arrivano 145edba5eecSFederico Vaga da esperienze con altri Sistemi Operativi. 146edba5eecSFederico Vaga 147edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/admin-guide/security-bugs.rst <it_securitybugs>` 148edba5eecSFederico Vaga Se ritenete di aver trovato un problema di sicurezza nel kernel Linux, 149edba5eecSFederico Vaga seguite i passaggi scritti in questo documento per notificarlo agli 150edba5eecSFederico Vaga sviluppatori del kernel, ed aiutare la risoluzione del problema. 151edba5eecSFederico Vaga 152edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/process/management-style.rst <it_managementstyle>` 153edba5eecSFederico Vaga Questo documento descrive come i manutentori del kernel Linux operano 154edba5eecSFederico Vaga e la filosofia comune alla base del loro metodo. Questa è un'importante 155edba5eecSFederico Vaga lettura per tutti coloro che sono nuovi allo sviluppo del kernel (o per 156edba5eecSFederico Vaga chi è semplicemente curioso), poiché risolve molti dei più comuni 157edba5eecSFederico Vaga fraintendimenti e confusioni dovuti al particolare comportamento dei 158edba5eecSFederico Vaga manutentori del kernel. 159edba5eecSFederico Vaga 160edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/process/stable-kernel-rules.rst <it_stable_kernel_rules>` 161edba5eecSFederico Vaga Questo file descrive le regole sulle quali vengono basati i rilasci del 162edba5eecSFederico Vaga kernel, e spiega cosa fare se si vuole che una modifica venga inserita 163edba5eecSFederico Vaga in uno di questi rilasci. 164edba5eecSFederico Vaga 165edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/process/kernel-docs.rst <it_kernel_docs>` 166edba5eecSFederico Vaga Una lista di documenti pertinenti allo sviluppo del kernel. 167edba5eecSFederico Vaga Per favore consultate questa lista se non trovate ciò che cercate nella 168edba5eecSFederico Vaga documentazione interna del kernel. 169edba5eecSFederico Vaga 170edba5eecSFederico Vaga :ref:`Documentation/translations/it_IT/process/applying-patches.rst <it_applying_patches>` 171edba5eecSFederico Vaga Una buona introduzione che descrivere esattamente cos'è una patch e come 172edba5eecSFederico Vaga applicarla ai differenti rami di sviluppo del kernel. 173edba5eecSFederico Vaga 174edba5eecSFederico VagaIl kernel inoltre ha un vasto numero di documenti che possono essere 175edba5eecSFederico Vagaautomaticamente generati dal codice sorgente stesso o da file 176edba5eecSFederico VagaReStructuredText (ReST), come questo. Esso include una completa 177edba5eecSFederico Vagadescrizione dell'API interna del kernel, e le regole su come gestire la 178edba5eecSFederico Vagasincronizzazione (locking) correttamente 179edba5eecSFederico Vaga 180edba5eecSFederico VagaTutte queste tipologie di documenti possono essere generati in PDF o in 181edba5eecSFederico VagaHTML utilizzando:: 182edba5eecSFederico Vaga 183edba5eecSFederico Vaga make pdfdocs 184edba5eecSFederico Vaga make htmldocs 185edba5eecSFederico Vaga 186edba5eecSFederico Vagarispettivamente dalla cartella principale dei sorgenti del kernel. 187edba5eecSFederico Vaga 188edba5eecSFederico VagaI documenti che impiegano ReST saranno generati nella cartella 189edba5eecSFederico VagaDocumentation/output. 190edba5eecSFederico VagaQuesti posso essere generati anche in formato LaTex e ePub con:: 191edba5eecSFederico Vaga 192edba5eecSFederico Vaga make latexdocs 193edba5eecSFederico Vaga make epubdocs 194edba5eecSFederico Vaga 195edba5eecSFederico VagaDiventare uno sviluppatore del kernel 196edba5eecSFederico Vaga------------------------------------- 197edba5eecSFederico VagaSe non sapete nulla sullo sviluppo del kernel Linux, dovreste dare uno 198edba5eecSFederico Vagasguardo al progetto *Linux KernelNewbies*: 199edba5eecSFederico Vaga 200edba5eecSFederico Vaga https://kernelnewbies.org 201edba5eecSFederico Vaga 202edba5eecSFederico VagaEsso prevede un'utile lista di discussione dove potete porre più o meno ogni 203edba5eecSFederico Vagatipo di quesito relativo ai concetti fondamentali sullo sviluppo del kernel 204edba5eecSFederico Vaga(assicuratevi di cercare negli archivi, prima di chiedere qualcosa alla 205edba5eecSFederico Vagaquale è già stata fornita risposta in passato). Esistono inoltre, un canale IRC 206edba5eecSFederico Vagache potete usare per formulare domande in tempo reale, e molti documenti utili 207edba5eecSFederico Vagache vi faciliteranno nell'apprendimento dello sviluppo del kernel Linux. 208edba5eecSFederico Vaga 209edba5eecSFederico VagaIl sito internet contiene informazioni di base circa l'organizzazione del 210edba5eecSFederico Vagacodice, sottosistemi e progetti attuali (sia interni che esterni a Linux). 211edba5eecSFederico VagaEsso descrive, inoltre, informazioni logistiche di base, riguardanti ad esempio 212edba5eecSFederico Vagala compilazione del kernel e l'applicazione di una modifica. 213edba5eecSFederico Vaga 214edba5eecSFederico VagaSe non sapete dove cominciare, ma volete cercare delle attività dalle quali 215edba5eecSFederico Vagapartire per partecipare alla comunità di sviluppo, andate al progetto Linux 216edba5eecSFederico VagaKernel Janitor's. 217edba5eecSFederico Vaga 218edba5eecSFederico Vaga https://kernelnewbies.org/KernelJanitors 219edba5eecSFederico Vaga 220edba5eecSFederico VagaÈ un buon posto da cui iniziare. Esso presenta una lista di problematiche 221edba5eecSFederico Vagarelativamente semplici da sistemare e pulire all'interno della sorgente del 222edba5eecSFederico Vagakernel Linux. Lavorando con gli sviluppatori incaricati di questo progetto, 223edba5eecSFederico Vagaimparerete le basi per l'inserimento delle vostre modifiche all'interno dei 224edba5eecSFederico Vagasorgenti del kernel Linux, e possibilmente, sarete indirizzati al lavoro 225edba5eecSFederico Vagasuccessivo da svolgere, se non ne avrete ancora idea. 226edba5eecSFederico Vaga 227edba5eecSFederico VagaPrima di apportare una qualsiasi modifica al codice del kernel Linux, 228edba5eecSFederico Vagaè imperativo comprendere come tale codice funziona. A questo scopo, non c'è 229edba5eecSFederico Vaganulla di meglio che leggerlo direttamente (la maggior parte dei bit più 230edba5eecSFederico Vagacomplessi sono ben commentati), eventualmente anche con l'aiuto di strumenti 231edba5eecSFederico Vagaspecializzati. Uno degli strumenti che è particolarmente raccomandato è 232edba5eecSFederico Vagail progetto Linux Cross-Reference, che è in grado di presentare codice 233edba5eecSFederico Vagasorgente in un formato autoreferenziale ed indicizzato. Un eccellente ed 234edba5eecSFederico Vagaaggiornata fonte di consultazione del codice del kernel la potete trovare qui: 235edba5eecSFederico Vaga 23619c1d46dSJonathan Neuschäfer https://elixir.bootlin.com/ 237edba5eecSFederico Vaga 238edba5eecSFederico Vaga 239edba5eecSFederico VagaIl processo di sviluppo 240edba5eecSFederico Vaga----------------------- 241edba5eecSFederico VagaIl processo di sviluppo del kernel Linux si compone di pochi "rami" principali 242edba5eecSFederico Vagae di molti altri rami per specifici sottosistemi. Questi rami sono: 243edba5eecSFederico Vaga 244edba5eecSFederico Vaga - I sorgenti kernel 4.x 245edba5eecSFederico Vaga - I sorgenti stabili del kernel 4.x.y -stable 246edba5eecSFederico Vaga - Sorgenti dei sottosistemi del kernel e le loro modifiche 247edba5eecSFederico Vaga - Il kernel 4.x -next per test d'integrazione 248edba5eecSFederico Vaga 249edba5eecSFederico VagaI sorgenti kernel 4.x 250edba5eecSFederico Vaga~~~~~~~~~~~~~~~~~~~~~ 251edba5eecSFederico Vaga 252edba5eecSFederico VagaI kernel 4.x sono amministrati da Linus Torvald, e possono essere trovati 253edba5eecSFederico Vagasu https://kernel.org nella cartella pub/linux/kernel/v4.x/. Il processo 254edba5eecSFederico Vagadi sviluppo è il seguente: 255edba5eecSFederico Vaga 256edba5eecSFederico Vaga - Non appena un nuovo kernel viene rilasciato si apre una finestra di due 257edba5eecSFederico Vaga settimane. Durante questo periodo i manutentori possono proporre a Linus 258edba5eecSFederico Vaga dei grossi cambiamenti; solitamente i cambiamenti che sono già stati 259edba5eecSFederico Vaga inseriti nel ramo -next del kernel per alcune settimane. Il modo migliore 260edba5eecSFederico Vaga per sottoporre dei cambiamenti è attraverso git (lo strumento usato per 261edba5eecSFederico Vaga gestire i sorgenti del kernel, più informazioni sul sito 262edba5eecSFederico Vaga https://git-scm.com/) ma anche delle patch vanno bene. 263edba5eecSFederico Vaga 264edba5eecSFederico Vaga - Al termine delle due settimane un kernel -rc1 viene rilasciato e 265edba5eecSFederico Vaga l'obbiettivo ora è quello di renderlo il più solido possibile. A questo 266edba5eecSFederico Vaga punto la maggior parte delle patch dovrebbero correggere un'eventuale 267edba5eecSFederico Vaga regressione. I bachi che sono sempre esistiti non sono considerabili come 268edba5eecSFederico Vaga regressioni, quindi inviate questo tipo di cambiamenti solo se sono 269edba5eecSFederico Vaga importanti. Notate che un intero driver (o filesystem) potrebbe essere 270edba5eecSFederico Vaga accettato dopo la -rc1 poiché non esistono rischi di una possibile 271edba5eecSFederico Vaga regressione con tale cambiamento, fintanto che quest'ultimo è 272edba5eecSFederico Vaga auto-contenuto e non influisce su aree esterne al codice che è stato 273edba5eecSFederico Vaga aggiunto. git può essere utilizzato per inviare le patch a Linus dopo che 274edba5eecSFederico Vaga la -rc1 è stata rilasciata, ma è anche necessario inviare le patch ad 275edba5eecSFederico Vaga una lista di discussione pubblica per un'ulteriore revisione. 276edba5eecSFederico Vaga 277edba5eecSFederico Vaga - Una nuova -rc viene rilasciata ogni volta che Linus reputa che gli attuali 278edba5eecSFederico Vaga sorgenti siano in uno stato di salute ragionevolmente adeguato ai test. 279edba5eecSFederico Vaga L'obiettivo è quello di rilasciare una nuova -rc ogni settimana. 280edba5eecSFederico Vaga 281edba5eecSFederico Vaga - Il processo continua fino a che il kernel è considerato "pronto"; tale 282edba5eecSFederico Vaga processo dovrebbe durare circa in 6 settimane. 283edba5eecSFederico Vaga 284edba5eecSFederico VagaÈ utile menzionare quanto scritto da Andrew Morton sulla lista di discussione 285edba5eecSFederico Vagakernel-linux in merito ai rilasci del kernel: 286edba5eecSFederico Vaga 287edba5eecSFederico Vaga *"Nessuno sa quando un kernel verrà rilasciato, poichè questo è 288edba5eecSFederico Vaga legato allo stato dei bachi e non ad una cronologia preventiva."* 289edba5eecSFederico Vaga 290edba5eecSFederico VagaI sorgenti stabili del kernel 4.x.y -stable 291edba5eecSFederico Vaga~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292edba5eecSFederico Vaga 293edba5eecSFederico VagaI kernel con versioni in 3-parti sono "kernel stabili". Essi contengono 294edba5eecSFederico Vagacorrezioni critiche relativamente piccole nell'ambito della sicurezza 295edba5eecSFederico Vagaoppure significative regressioni scoperte in un dato 4.x kernel. 296edba5eecSFederico Vaga 297edba5eecSFederico VagaQuesto è il ramo raccomandato per gli utenti che vogliono un kernel recente 298edba5eecSFederico Vagae stabile e non sono interessati a dare il proprio contributo alla verifica 299edba5eecSFederico Vagadelle versioni di sviluppo o sperimentali. 300edba5eecSFederico Vaga 301edba5eecSFederico VagaSe non è disponibile alcun kernel 4.x.y., quello più aggiornato e stabile 302edba5eecSFederico Vagasarà il kernel 4.x con la numerazione più alta. 303edba5eecSFederico Vaga 304edba5eecSFederico Vaga4.x.y sono amministrati dal gruppo "stable" <stable@vger.kernel.org>, e sono 305edba5eecSFederico Vagarilasciati a seconda delle esigenze. Il normale periodo di rilascio è 306edba5eecSFederico Vagaapprossimativamente di due settimane, ma può essere più lungo se non si 307edba5eecSFederico Vagaverificano problematiche urgenti. Un problema relativo alla sicurezza, invece, 308edba5eecSFederico Vagapuò determinare un rilascio immediato. 309edba5eecSFederico Vaga 310edba5eecSFederico VagaIl file Documentation/process/stable-kernel-rules.rst (nei sorgenti) documenta 311edba5eecSFederico Vagaquali tipologie di modifiche sono accettate per i sorgenti -stable, e come 312edba5eecSFederico Vagaavviene il processo di rilascio. 313edba5eecSFederico Vaga 314edba5eecSFederico Vaga 315edba5eecSFederico VagaSorgenti dei sottosistemi del kernel e le loro patch 316edba5eecSFederico Vaga~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317edba5eecSFederico Vaga 318edba5eecSFederico VagaI manutentori dei diversi sottosistemi del kernel --- ed anche molti 319edba5eecSFederico Vagasviluppatori di sottosistemi --- mostrano il loro attuale stato di sviluppo 320edba5eecSFederico Vaganei loro repositori. In questo modo, altri possono vedere cosa succede nelle 321edba5eecSFederico Vagadiverse parti del kernel. In aree dove lo sviluppo è rapido, potrebbe essere 322edba5eecSFederico Vagachiesto ad uno sviluppatore di basare le proprie modifiche su questi repositori 323edba5eecSFederico Vagain modo da evitare i conflitti fra le sottomissioni ed altri lavori in corso 324edba5eecSFederico Vaga 325edba5eecSFederico VagaLa maggior parte di questi repositori sono git, ma esistono anche altri SCM 326edba5eecSFederico Vagain uso, o file di patch pubblicate come una serie quilt. 327edba5eecSFederico VagaGli indirizzi dei repositori di sottosistema sono indicati nel file 328edba5eecSFederico VagaMAINTAINERS. Molti di questi posso essere trovati su https://git.kernel.org/. 329edba5eecSFederico Vaga 330edba5eecSFederico VagaPrima che una modifica venga inclusa in questi sottosistemi, sarà soggetta ad 331edba5eecSFederico Vagauna revisione che inizialmente avviene tramite liste di discussione (vedere la 332edba5eecSFederico Vagasezione dedicata qui sotto). Per molti sottosistemi del kernel, tale processo 333edba5eecSFederico Vagadi revisione è monitorato con lo strumento patchwork. 334edba5eecSFederico VagaPatchwork offre un'interfaccia web che mostra le patch pubblicate, inclusi i 335edba5eecSFederico Vagacommenti o le revisioni fatte, e gli amministratori possono indicare le patch 336edba5eecSFederico Vagacome "in revisione", "accettate", o "rifiutate". Diversi siti Patchwork sono 337edba5eecSFederico Vagaelencati al sito https://patchwork.kernel.org/. 338edba5eecSFederico Vaga 339edba5eecSFederico VagaIl kernel 4.x -next per test d'integrazione 340edba5eecSFederico Vaga~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341edba5eecSFederico Vaga 342edba5eecSFederico VagaPrima che gli aggiornamenti dei sottosistemi siano accorpati nel ramo 343edba5eecSFederico Vagaprincipale 4.x, sarà necessario un test d'integrazione. 344edba5eecSFederico VagaA tale scopo, esiste un repositorio speciale di test nel quale virtualmente 345edba5eecSFederico Vagatutti i rami dei sottosistemi vengono inclusi su base quotidiana: 346edba5eecSFederico Vaga 347edba5eecSFederico Vaga https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git 348edba5eecSFederico Vaga 349edba5eecSFederico VagaIn questo modo, i kernel -next offrono uno sguardo riassuntivo su quello che 350edba5eecSFederico Vagaci si aspetterà essere nel kernel principale nel successivo periodo 351edba5eecSFederico Vagad'incorporazione. 352edba5eecSFederico VagaColoro che vorranno fare dei test d'esecuzione del kernel -next sono più che 353edba5eecSFederico Vagabenvenuti. 354edba5eecSFederico Vaga 355edba5eecSFederico Vaga 356edba5eecSFederico VagaRiportare Bug 357edba5eecSFederico Vaga------------- 358edba5eecSFederico Vaga 359511aaf2bSFederico VagaIl file 'Documentation/admin-guide/reporting-issues.rst' nella 360511aaf2bSFederico Vagacartella principale del kernel spiega come segnalare un baco nel 361511aaf2bSFederico Vagakernel, e fornisce dettagli su quali informazioni sono necessarie agli 362511aaf2bSFederico Vagasviluppatori del kernel per poter studiare il problema. 363edba5eecSFederico Vaga 364edba5eecSFederico VagaGestire i rapporti sui bug 365edba5eecSFederico Vaga-------------------------- 366edba5eecSFederico Vaga 367edba5eecSFederico VagaUno dei modi migliori per mettere in pratica le vostre capacità di hacking è 368edba5eecSFederico Vagaquello di riparare bachi riportati da altre persone. Non solo aiuterete a far 369edba5eecSFederico Vagadiventare il kernel più stabile, ma imparerete a riparare problemi veri dal 370edba5eecSFederico Vagamondo ed accrescerete le vostre competenze, e gli altri sviluppatori saranno 371edba5eecSFederico Vagaal corrente della vostra presenza. Riparare bachi è una delle migliori vie per 372edba5eecSFederico Vagaacquisire meriti tra gli altri sviluppatori, perchè non a molte persone piace 373edba5eecSFederico Vagaperdere tempo a sistemare i bachi di altri. 374edba5eecSFederico Vaga 375511aaf2bSFederico VagaPer lavorare sui bachi già segnalati, per prima cosa cercate il 376511aaf2bSFederico Vagasottosistema che vi interessa. Poi, verificate nel file MAINTAINERS 377511aaf2bSFederico Vagadove vengono collezionati solitamente i bachi per quel sottosistema; 378511aaf2bSFederico Vagaspesso sarà una lista di discussione, raramente un bugtracker. Cercate 379511aaf2bSFederico Vagabachi nell'archivio e aiutate dove credete di poterlo fare. Potete 380511aaf2bSFederico Vagaanche consultare https://bugzilla.kernel.org; però, solo una manciata di 381511aaf2bSFederico Vagasottosistemi lo usano attivamente, ciò nonostante i bachi che 382511aaf2bSFederico Vagacoinvolgono l'intero kernel sono sempre riportati lì. 383edba5eecSFederico Vaga 384edba5eecSFederico VagaListe di discussione 385edba5eecSFederico Vaga-------------------- 386edba5eecSFederico Vaga 387edba5eecSFederico VagaCome descritto in molti dei documenti qui sopra, la maggior parte degli 388edba5eecSFederico Vagasviluppatori del kernel partecipano alla lista di discussione Linux Kernel. 389edba5eecSFederico VagaI dettagli su come iscriversi e disiscriversi dalla lista possono essere 390edba5eecSFederico Vagatrovati al sito: 391edba5eecSFederico Vaga 392edba5eecSFederico Vaga http://vger.kernel.org/vger-lists.html#linux-kernel 393edba5eecSFederico Vaga 394edba5eecSFederico VagaCi sono diversi archivi della lista di discussione. Usate un qualsiasi motore 395edba5eecSFederico Vagadi ricerca per trovarli. Per esempio: 396edba5eecSFederico Vaga 3977cc39531SAkira Yokosawa https://lore.kernel.org/lkml/ 398edba5eecSFederico Vaga 399edba5eecSFederico VagaÉ caldamente consigliata una ricerca in questi archivi sul tema che volete 400edba5eecSFederico Vagasollevare, prima di pubblicarlo sulla lista. Molte cose sono già state 401edba5eecSFederico Vagadiscusse in dettaglio e registrate negli archivi della lista di discussione. 402edba5eecSFederico Vaga 403edba5eecSFederico VagaMolti dei sottosistemi del kernel hanno anche una loro lista di discussione 404edba5eecSFederico Vagadedicata. Guardate nel file MAINTAINERS per avere una lista delle liste di 405edba5eecSFederico Vagadiscussione e il loro uso. 406edba5eecSFederico Vaga 407edba5eecSFederico VagaMolte di queste liste sono gestite su kernel.org. Per informazioni consultate 408edba5eecSFederico Vagala seguente pagina: 409edba5eecSFederico Vaga 410edba5eecSFederico Vaga http://vger.kernel.org/vger-lists.html 411edba5eecSFederico Vaga 412edba5eecSFederico VagaPer favore ricordatevi della buona educazione quando utilizzate queste liste. 413edba5eecSFederico VagaSebbene sia un pò dozzinale, il seguente URL contiene alcune semplici linee 414edba5eecSFederico Vagaguida per interagire con la lista (o con qualsiasi altra lista): 415edba5eecSFederico Vaga 416edba5eecSFederico Vaga http://www.albion.com/netiquette/ 417edba5eecSFederico Vaga 418edba5eecSFederico VagaSe diverse persone rispondo alla vostra mail, la lista dei riceventi (copia 419edba5eecSFederico Vagaconoscenza) potrebbe diventare abbastanza lunga. Non cancellate nessuno dalla 420edba5eecSFederico Vagalista di CC: senza un buon motivo, e non rispondete solo all'indirizzo 421edba5eecSFederico Vagadella lista di discussione. Fateci l'abitudine perché capita spesso di 422edba5eecSFederico Vagaricevere la stessa email due volte: una dal mittente ed una dalla lista; e non 423edba5eecSFederico Vagacercate di modificarla aggiungendo intestazioni stravaganti, agli altri non 424edba5eecSFederico Vagapiacerà. 425edba5eecSFederico Vaga 426edba5eecSFederico VagaRicordate di rimanere sempre in argomento e di mantenere le attribuzioni 427edba5eecSFederico Vagadelle vostre risposte invariate; mantenete il "John Kernelhacker wrote ...:" 428edba5eecSFederico Vagain cima alla vostra replica e aggiungete le vostre risposte fra i singoli 429edba5eecSFederico Vagablocchi citati, non scrivete all'inizio dell'email. 430edba5eecSFederico Vaga 431edba5eecSFederico VagaSe aggiungete patch alla vostra mail, assicuratevi che siano del tutto 432edba5eecSFederico Vagaleggibili come indicato in Documentation/process/submitting-patches.rst. 433edba5eecSFederico VagaGli sviluppatori kernel non vogliono avere a che fare con allegati o patch 434edba5eecSFederico Vagacompresse; vogliono invece poter commentare le righe dei vostri cambiamenti, 435edba5eecSFederico Vagail che può funzionare solo in questo modo. 436edba5eecSFederico VagaAssicuratevi di utilizzare un gestore di mail che non alterì gli spazi ed i 437edba5eecSFederico Vagacaratteri. Un ottimo primo test è quello di inviare a voi stessi una mail e 438edba5eecSFederico Vagacercare di sottoporre la vostra stessa patch. Se non funziona, sistemate il 439edba5eecSFederico Vagavostro programma di posta, o cambiatelo, finché non funziona. 440edba5eecSFederico Vaga 441edba5eecSFederico VagaEd infine, per favore ricordatevi di mostrare rispetto per gli altri 442edba5eecSFederico Vagasottoscriventi. 443edba5eecSFederico Vaga 444edba5eecSFederico VagaLavorare con la comunità 445edba5eecSFederico Vaga------------------------ 446edba5eecSFederico Vaga 447edba5eecSFederico VagaL'obiettivo di questa comunità è quello di fornire il miglior kernel possibile. 448edba5eecSFederico VagaQuando inviate una modifica che volete integrare, sarà valutata esclusivamente 449edba5eecSFederico Vagadal punto di vista tecnico. Quindi, cosa dovreste aspettarvi? 450edba5eecSFederico Vaga 451edba5eecSFederico Vaga - critiche 452edba5eecSFederico Vaga - commenti 453edba5eecSFederico Vaga - richieste di cambiamento 454edba5eecSFederico Vaga - richieste di spiegazioni 455edba5eecSFederico Vaga - nulla 456edba5eecSFederico Vaga 457edba5eecSFederico VagaRicordatevi che questo fa parte dell'integrazione della vostra modifica 458edba5eecSFederico Vagaall'interno del kernel. Dovete essere in grado di accettare le critiche, 459edba5eecSFederico Vagavalutarle a livello tecnico ed eventualmente rielaborare nuovamente le vostre 460edba5eecSFederico Vagamodifiche o fornire delle chiare e concise motivazioni per le quali le 461edba5eecSFederico Vagamodifiche suggerite non dovrebbero essere fatte. 462edba5eecSFederico VagaSe non riceverete risposte, aspettate qualche giorno e riprovate ancora, 463edba5eecSFederico Vagaqualche volta le cose si perdono nell'enorme mucchio di email. 464edba5eecSFederico Vaga 465edba5eecSFederico VagaCosa non dovreste fare? 466edba5eecSFederico Vaga 467edba5eecSFederico Vaga - aspettarvi che la vostra modifica venga accettata senza problemi 468edba5eecSFederico Vaga - mettervi sulla difensiva 469edba5eecSFederico Vaga - ignorare i commenti 470edba5eecSFederico Vaga - sottomettere nuovamente la modifica senza fare nessuno dei cambiamenti 471edba5eecSFederico Vaga richiesti 472edba5eecSFederico Vaga 473edba5eecSFederico VagaIn una comunità che è alla ricerca delle migliori soluzioni tecniche possibili, 474edba5eecSFederico Vagaci saranno sempre opinioni differenti sull'utilità di una modifica. 475edba5eecSFederico VagaSiate cooperativi e vogliate adattare la vostra idea in modo che sia inserita 476edba5eecSFederico Vaganel kernel. O almeno vogliate dimostrare che la vostra idea vale. 477edba5eecSFederico VagaRicordatevi, sbagliare è accettato fintanto che siate disposti a lavorare verso 478edba5eecSFederico Vagauna soluzione che è corretta. 479edba5eecSFederico Vaga 480edba5eecSFederico VagaÈ normale che le risposte alla vostra prima modifica possa essere 481edba5eecSFederico Vagasemplicemente una lista con dozzine di cose che dovreste correggere. 482edba5eecSFederico VagaQuesto **non** implica che la vostra patch non sarà accettata, e questo 483edba5eecSFederico Vaga**non** è contro di voi personalmente. 484edba5eecSFederico VagaSemplicemente correggete tutte le questioni sollevate contro la vostra modifica 485edba5eecSFederico Vagaed inviatela nuovamente. 486edba5eecSFederico Vaga 487edba5eecSFederico VagaDifferenze tra la comunità del kernel e le strutture aziendali 488edba5eecSFederico Vaga-------------------------------------------------------------- 489edba5eecSFederico Vaga 490edba5eecSFederico VagaLa comunità del kernel funziona diversamente rispetto a molti ambienti di 491edba5eecSFederico Vagasviluppo aziendali. Qui di seguito una lista di cose che potete provare a 492edba5eecSFederico Vagafare per evitare problemi: 493edba5eecSFederico Vaga 494edba5eecSFederico Vaga Cose da dire riguardanti le modifiche da voi proposte: 495edba5eecSFederico Vaga 496edba5eecSFederico Vaga - "Questo risolve più problematiche." 497edba5eecSFederico Vaga - "Questo elimina 2000 stringhe di codice." 498edba5eecSFederico Vaga - "Qui una modifica che spiega cosa sto cercando di fare." 499edba5eecSFederico Vaga - "L'ho testato su 5 diverse architetture.." 500edba5eecSFederico Vaga - "Qui una serie di piccole modifiche che.." 501edba5eecSFederico Vaga - "Questo aumenta le prestazioni di macchine standard..." 502edba5eecSFederico Vaga 503edba5eecSFederico Vaga Cose che dovreste evitare di dire: 504edba5eecSFederico Vaga 505edba5eecSFederico Vaga - "Lo abbiamo fatto in questo modo in AIX/ptx/Solaris, di conseguenza 506edba5eecSFederico Vaga deve per forza essere giusto..." 507edba5eecSFederico Vaga - "Ho fatto questo per 20 anni, quindi.." 508edba5eecSFederico Vaga - "Questo è richiesto dalla mia Azienda per far soldi" 509edba5eecSFederico Vaga - "Questo è per la linea di prodotti della nostra Azienda" 510edba5eecSFederico Vaga - "Ecco il mio documento di design di 1000 pagine che descrive ciò che ho 511edba5eecSFederico Vaga in mente" 512edba5eecSFederico Vaga - "Ci ho lavorato per 6 mesi..." 513edba5eecSFederico Vaga - "Ecco una patch da 5000 righe che.." 514edba5eecSFederico Vaga - "Ho riscritto il pasticcio attuale, ed ecco qua.." 515edba5eecSFederico Vaga - "Ho una scadenza, e questa modifica ha bisogno di essere approvata ora" 516edba5eecSFederico Vaga 517edba5eecSFederico VagaUn'altra cosa nella quale la comunità del kernel si differenzia dai più 518edba5eecSFederico Vagaclassici ambienti di ingegneria del software è la natura "senza volto" delle 519edba5eecSFederico Vagainterazioni umane. Uno dei benefici dell'uso delle email e di irc come forma 520edba5eecSFederico Vagaprimordiale di comunicazione è l'assenza di discriminazione basata su genere e 521edba5eecSFederico Vagarazza. L'ambienti di lavoro Linux accetta donne e minoranze perchè tutto quello 522edba5eecSFederico Vagache sei è un indirizzo email. Aiuta anche l'aspetto internazionale nel 523edba5eecSFederico Vagalivellare il terreno di gioco perchè non è possibile indovinare il genere 524edba5eecSFederico Vagabasandosi sul nome di una persona. Un uomo può chiamarsi Andrea ed una donna 525edba5eecSFederico Vagapotrebbe chiamarsi Pat. Gran parte delle donne che hanno lavorato al kernel 526edba5eecSFederico VagaLinux e che hanno espresso una personale opinione hanno avuto esperienze 527edba5eecSFederico Vagapositive. 528edba5eecSFederico Vaga 529edba5eecSFederico VagaLa lingua potrebbe essere un ostacolo per quelle persone che non si trovano 530edba5eecSFederico Vagaa loro agio con l'inglese. Una buona padronanza del linguaggio può essere 531edba5eecSFederico Vaganecessaria per esporre le proprie idee in maniera appropiata all'interno 532edba5eecSFederico Vagadelle liste di discussione, quindi è consigliabile che rileggiate le vostre 533edba5eecSFederico Vagaemail prima di inviarle in modo da essere certi che abbiano senso in inglese. 534edba5eecSFederico Vaga 535edba5eecSFederico Vaga 536edba5eecSFederico VagaSpezzare le vostre modifiche 537edba5eecSFederico Vaga---------------------------- 538edba5eecSFederico Vaga 539edba5eecSFederico VagaLa comunità del kernel Linux non accetta con piacere grossi pezzi di codice 540edba5eecSFederico Vagabuttati lì tutti in una volta. Le modifiche necessitano di essere 541edba5eecSFederico Vagaadeguatamente presentate, discusse, e suddivise in parti più piccole ed 542edba5eecSFederico Vagaindipendenti. Questo è praticamente l'esatto opposto di quello che le 543edba5eecSFederico Vagaaziende fanno solitamente. La vostra proposta dovrebbe, inoltre, essere 544edba5eecSFederico Vagapresentata prestissimo nel processo di sviluppo, così che possiate ricevere 545edba5eecSFederico Vagaun riscontro su quello che state facendo. Lasciate che la comunità 546edba5eecSFederico Vagasenta che state lavorando con loro, e che non li stiate sfruttando come 547edba5eecSFederico Vagadiscarica per le vostre aggiunte. In ogni caso, non inviate 50 email nello 548edba5eecSFederico Vagastesso momento in una lista di discussione, il più delle volte la vostra serie 549edba5eecSFederico Vagadi modifiche dovrebbe essere più piccola. 550edba5eecSFederico Vaga 551edba5eecSFederico VagaI motivi per i quali dovreste frammentare le cose sono i seguenti: 552edba5eecSFederico Vaga 553edba5eecSFederico Vaga1) Piccole modifiche aumentano le probabilità che vengano accettate, 554edba5eecSFederico Vaga altrimenti richiederebbe troppo tempo o sforzo nel verificarne 555edba5eecSFederico Vaga la correttezza. Una modifica di 5 righe può essere accettata da un 556edba5eecSFederico Vaga manutentore con a mala pena una seconda occhiata. Invece, una modifica da 557edba5eecSFederico Vaga 500 linee può richiedere ore di rilettura per verificarne la correttezza 558edba5eecSFederico Vaga (il tempo necessario è esponenzialmente proporzionale alla dimensione della 559edba5eecSFederico Vaga modifica, o giù di lì) 560edba5eecSFederico Vaga 561edba5eecSFederico Vaga Piccole modifiche sono inoltre molto facili da debuggare quando qualcosa 562edba5eecSFederico Vaga non va. È molto più facile annullare le modifiche una per una che 563edba5eecSFederico Vaga dissezionare una patch molto grande dopo la sua sottomissione (e rompere 564edba5eecSFederico Vaga qualcosa). 565edba5eecSFederico Vaga 566edba5eecSFederico Vaga2) È importante non solo inviare piccole modifiche, ma anche riscriverle e 567edba5eecSFederico Vaga semplificarle (o più semplicemente ordinarle) prima di sottoporle. 568edba5eecSFederico Vaga 569edba5eecSFederico VagaQui un'analogia dello sviluppatore kernel Al Viro: 570edba5eecSFederico Vaga 571edba5eecSFederico Vaga *"Pensate ad un insegnante di matematica che corregge il compito 572edba5eecSFederico Vaga di uno studente (di matematica). L'insegnante non vuole vedere le 573edba5eecSFederico Vaga prove e gli errori commessi dallo studente prima che arrivi alla 574edba5eecSFederico Vaga soluzione. Vuole vedere la risposta più pulita ed elegante 575edba5eecSFederico Vaga possibile. Un buono studente lo sa, e non presenterebbe mai le 576edba5eecSFederico Vaga proprie bozze prima prima della soluzione finale"* 577edba5eecSFederico Vaga 578edba5eecSFederico Vaga *"Lo stesso vale per lo sviluppo del kernel. I manutentori ed i 579edba5eecSFederico Vaga revisori non vogliono vedere il procedimento che sta dietro al 580edba5eecSFederico Vaga problema che uno sta risolvendo. Vogliono vedere una soluzione 581edba5eecSFederico Vaga semplice ed elegante."* 582edba5eecSFederico Vaga 583edba5eecSFederico VagaPuò essere una vera sfida il saper mantenere l'equilibrio fra una presentazione 584edba5eecSFederico Vagaelegante della vostra soluzione, lavorare insieme ad una comunità e dibattere 585edba5eecSFederico Vagasu un lavoro incompleto. Pertanto è bene entrare presto nel processo di 586edba5eecSFederico Vagarevisione per migliorare il vostro lavoro, ma anche per riuscire a tenere le 587edba5eecSFederico Vagavostre modifiche in pezzettini che potrebbero essere già accettate, nonostante 588edba5eecSFederico Vagala vostra intera attività non lo sia ancora. 589edba5eecSFederico Vaga 590edba5eecSFederico VagaIn fine, rendetevi conto che non è accettabile inviare delle modifiche 591edba5eecSFederico Vagaincomplete con la promessa che saranno "sistemate dopo". 592edba5eecSFederico Vaga 593edba5eecSFederico Vaga 594edba5eecSFederico VagaGiustificare le vostre modifiche 595edba5eecSFederico Vaga-------------------------------- 596edba5eecSFederico Vaga 597edba5eecSFederico VagaInsieme alla frammentazione delle vostre modifiche, è altrettanto importante 598edba5eecSFederico Vagapermettere alla comunità Linux di capire perché dovrebbero accettarle. 599edba5eecSFederico VagaNuove funzionalità devono essere motivate come necessarie ed utili. 600edba5eecSFederico Vaga 601edba5eecSFederico Vaga 602edba5eecSFederico VagaDocumentare le vostre modifiche 603edba5eecSFederico Vaga------------------------------- 604edba5eecSFederico Vaga 605edba5eecSFederico VagaQuando inviate le vostre modifiche, fate particolare attenzione a quello che 606edba5eecSFederico Vagascrivete nella vostra email. Questa diventerà il *ChangeLog* per la modifica, 607edba5eecSFederico Vagae sarà visibile a tutti per sempre. Dovrebbe descrivere la modifica nella sua 608edba5eecSFederico Vagainterezza, contenendo: 609edba5eecSFederico Vaga 610edba5eecSFederico Vaga - perchè la modifica è necessaria 611edba5eecSFederico Vaga - l'approccio d'insieme alla patch 612edba5eecSFederico Vaga - dettagli supplementari 613edba5eecSFederico Vaga - risultati dei test 614edba5eecSFederico Vaga 615edba5eecSFederico VagaPer maggiori dettagli su come tutto ciò dovrebbe apparire, riferitevi alla 616edba5eecSFederico Vagasezione ChangeLog del documento: 617edba5eecSFederico Vaga 618edba5eecSFederico Vaga "The Perfect Patch" 619edba5eecSFederico Vaga http://www.ozlabs.org/~akpm/stuff/tpp.txt 620edba5eecSFederico Vaga 621edba5eecSFederico VagaA volte tutto questo è difficile da realizzare. Il perfezionamento di queste 622edba5eecSFederico Vagapratiche può richiedere anni (eventualmente). È un processo continuo di 623edba5eecSFederico Vagamiglioramento che richiede molta pazienza e determinazione. Ma non mollate, 624edba5eecSFederico Vagasi può fare. Molti lo hanno fatto prima, ed ognuno ha dovuto iniziare dove 625edba5eecSFederico Vagasiete voi ora. 626edba5eecSFederico Vaga 627edba5eecSFederico Vaga 628edba5eecSFederico Vaga 629edba5eecSFederico Vaga 630edba5eecSFederico Vaga---------- 631edba5eecSFederico Vaga 632edba5eecSFederico VagaGrazie a Paolo Ciarrocchi che ha permesso che la sezione "Development Process" 633edba5eecSFederico Vaga(https://lwn.net/Articles/94386/) fosse basata sui testi da lui scritti, ed a 634edba5eecSFederico VagaRandy Dunlap e Gerrit Huizenga per la lista di cose che dovreste e non 635edba5eecSFederico Vagadovreste dire. Grazie anche a Pat Mochel, Hanna Linder, Randy Dunlap, 636edba5eecSFederico VagaKay Sievers, Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton, 637edba5eecSFederico VagaAndi Kleen, Vadim Lobanov, Jesper Juhl, Adrian Bunk, Keri Harris, Frans Pop, 638edba5eecSFederico VagaDavid A. Wheeler, Junio Hamano, Michael Kerrisk, e Alex Shepard per le 639edba5eecSFederico Vagaloro revisioni, commenti e contributi. Senza il loro aiuto, questo documento 640edba5eecSFederico Vaganon sarebbe stato possibile. 641edba5eecSFederico Vaga 642edba5eecSFederico VagaManutentore: Greg Kroah-Hartman <greg@kroah.com> 643