Patch

Pezzo di software fatto per aggiornare, migliorare o aggiustare un programma
(Reindirizzamento da Patch (informatica))
Disambiguazione – Se stai cercando altri significati, vedi Patch (disambigua).

Patch (in inglese "pezza", "toppa"), in informatica, indica una porzione di software progettata per aggiornare o migliorare un programma[1]. Ciò include la risoluzione di vulnerabilità di sicurezza[1] e altri bug generici: tali patch vengono anche chiamate fix o bugfix[2]

Il termine è solitamente associato a un piccolo aggiornamento. Per questo, update più consistenti, possono prendere nomi differenti. Ad esempio da Microsoft Windows NT tali corposi aggiornamenti prendono il nome di service pack[3], altre volte possono essere chiamati software updates.

Storia modifica

 
Un nastro perforato per l'Harvard Mark I, 1943, uno dei primi computer digitali. Si possono notare le "pezze" materiali utilizzate per correggere le perforazioni errate.

Storicamente le patch venivano distribuite per i nastri o le schede perforate, le quali dovevano essere tagliate in corrispondenza del punto da modificare e a quel punto veniva inserita la pezza (patch in inglese). Successivamente le patch venivano distribuite su floppy disk, poi su CD-ROM e infine scaricando il contenuto dell'aggiornamento via Internet.

Esistono programmi che si fanno carico della gestione dei vari update, per aiutare l'utente a mantenere aggiornato l'applicativo automatizzandone il processo. Alcuni programmi possono aggiornare se stessi tramite internet. Spesso i security update vengono applicati con questo sistema.

Descrizione modifica

Le patch per il software proprietario solitamente sono file eseguibili e non codice sorgente. La loro esecuzione apporta le modifiche o sostituisce gli stessi file binari. Mediante esse vengono anche migliorate l'usabilità e le prestazioni dell'applicazione. Una nuova patch può però introdurre problematiche che necessitano una regressione della versione software dell'applicativo (software regression). Il rilascio di patch per un certo sistema in un dato momento solitamente avviene a seguito di una pianificazione denominata patch management. Il rilascio di una patch percorre varie fasi ed è attentamente valutato il rischio potenziale che una patch può introdurre in un sistema, che non sempre è inferiore al mantenerlo immutato.

Le patch possono anche essere rilasciate sotto forma di codice sorgente, solitamente consistono in file di testo contenenti le differenze, diffs, le quali poi vengono elaborate dai gestori di versione (CVS), che generano in automatico la patch. In questo caso l'utente è tenuto a compilare i nuovi sorgenti. Tale soluzione viene solitamente adottata nel caso di software open source, ne è un ottimo esempio il kernel linux.

Tipologie modifica

Patch di sicurezza modifica

Una patch di sicurezza è un aggiornamento finalizzato alla correzione di vulnerabilità. Le patch di sicurezza sono il sistema primario di correzione delle vulnerabilità software.

Per i sistemi operativi vi sono team specializzati nello sviluppo e nella pubblicazione di patch di sicurezza, i quali periodicamente le pubblicano. Nel caso di Microsoft Windows gli aggiornamenti di sicurezza vengono rilasciati una volta al mese.

Patch non ufficiali modifica

Una patch non ufficiale viene rilasciata da terze parti senza scopi commerciali su software commerciale. Lo scopo è simile a quello di una patch ufficiale. Alcuni esempi sono gli aggiornamenti di sicurezza rilasciati da terze parti quando la patch ufficiale si attarda ad essere rilasciata[4][5], o le patch a videogiochi non più supportati (abandonware[6][7]), create dalla comunità per migliorarne la compatibilità coi nuovi sistemi e driver.

Secondariamente per patch non ufficiale si possono intendere particolari tipi di crack il cui scopo è rimuovere, a livello del codice assemblato, le protezioni di un programma in modo da permetterne (illegalmente) l'uso senza le necessarie licenze.

Hot patching modifica

L'hot patching si riferisce all'applicazione di patch a run time, senza dover fermare il sistema o il programma per riavviarlo. Questo genere di patch viene applicata a sistemi che non possono essere interrotti a causa dei conseguenti problemi legati all'interruzione di un servizio.

Applicazione modifica

Le dimensioni di una patch possono generalmente variare da alcuni kilobyte a qualche gigabyte (soprattutto nel caso dei videogiochi, in cui gli aggiornamenti possono contenere anche contenuti multimediali come audio, video, immagini e modelli 3D). Le patch di solito hanno dimensioni ridotte rispetto all'intero programma e quindi impiegano molto meno tempo per essere installate.

Nel caso dei sistemi operativi o dei server le patch possono risolvere importanti buchi di sicurezza o risolvere problemi critici che coinvolgono i driver[8]. Per facilitare tali operazioni, spesso delicate e complesse, vengono implementati applicativi per l'installazione automatica o semi-automatica delle patch. L'automatizzazione assoluta dell'installazione di aggiornamenti può essere disattivata e spesso non viene utilizzata per paura che le compagnie di sviluppo ottengano pieno controllo sul software installato nella propria macchina.

L'installazione completamente automatica di aggiornamenti però viene molto spesso utilizzata su sistemi Microsoft Windows, anche se utenti cauti, in particolare amministratori di sistema, tendono a disattivare tale funzionalità.

Applicare patch al firmware può risultare molto complicato, poiché implica l'installazione parziale o totale di una nuova immagine, invece di applicare solo le differenze dalla versione precedente. La patch consiste solitamente in una immagine firmware binaria con un programma che sostituisce quella attualmente presente sull'hardware. Per esempio l'aggiornamento del firmware UEFI di una motherboard è un'operazione molto delicata, poiché un'interruzione del processo (assenza alimentazione o spegnimento volontario) potrebbe rendere inutilizzabile la scheda. Per evitare ciò spesso si mettono dei checkpoint per prevenire seri danni, ad esempio punti di backup dai quali si può ripristinare lo stato della scheda.

Nella descrizione di un aggiornamento correttivo (patch o fix changelog) compare spesso l'espressione addresses an issue o updates an issue[9] traducibile in "risolve un problema" (lett. "affronta una questione" o "aggiorna una questione").

Videogiochi modifica

Nei videogiochi le patch possono essere pubblicate per migliorare o risolvere bug, ma anche per modificare contenuti multimediali o regole e algoritmi del gioco. Spesso questi ultimi vengono applicati per ribilanciare abilità o sistemare exploits che possono avvantaggiare o svantaggiare i giocatori.

 
esempio di patch nei videogiochi di calcio

Microsoft Update Catalog modifica

Microsoft mette a disposizione uno strumento alternativo a Windows Update: Catalogo di Microsoft Update. Su questo catalogo, in forma di portale web, si possono cercare e scaricare, con varie chiavi di ricerca, tutti gli aggiornamenti, patch, service pack, convenience pack, anniversary update, ecc. pubblicati. Una comodità è data dal fatto che i singoli eseguibili possono essere archiviati come file qualsiasi.

Quando si accede all'indirizzo internet il catalogo si configura in automatico per il sistema operativo in uso.

Note modifica

  1. ^ a b Microsoft issues biggest software patch on record, in Reuters, 14 ottobre 2009. URL consultato il 14 ottobre 2009 (archiviato dall'url originale il 16 ottobre 2009).
  2. ^ What is a Bug Fix? Definition from Techopedia, su techopedia.com. URL consultato il 29 luglio 2015.
  3. ^ Service Pack and Update Center, su windows.microsoft.com. URL consultato il 1º giugno 2015.
  4. ^ Mike Barwise, Unofficial patch for Windows URI problem, su h-online.com, The H Security, 16 ottobre 2007. URL consultato il 29 gennaio 2012.
  5. ^ Another unofficial IE patch offered to counter critical flaw, su computerweekly.com, Computer Weekly, 30 marzo 2006. URL consultato il 9 luglio 2013.
    «Another unofficial patch has been released to counter a critical flaw in Microsoft’s Internet Explorer browser.»
  6. ^ Howard Wen, Keeping the Myths Alive, su linuxdevcenter.com, 10 giugno 2004. URL consultato il 22 dicembre 2012.
    «[...]fans of the Myth trilogy have taken this idea a step further: they have official access to the source code for the Myth games. Organized under the name MythDevelopers, this all-volunteer group of programmers, artists, and other talented people devote their time to improving and supporting further development of the Myth game series.»
  7. ^ John Bell, Opening the Source of Art, su timreview.ca, Technology Innovation Management Review, 1º ottobre 2009. URL consultato il 30 dicembre 2012 (archiviato dall'url originale il 30 marzo 2014).
    «[...]that no further patches to the title would be forthcoming. The community was predictably upset. Instead of giving up on the game, users decided that if Activision wasn't going to fix the bugs, they would. They wanted to save the game by getting Activision to open the source so it could be kept alive beyond the point where Activision lost interest. With some help from members of the development team that were active on fan forums, they were eventually able to convince Activision to release Call to Power II's source code in October of 2003.»
  8. ^ Ashok Liu, Computercare's Laptop Repair Workbook: The 300 Cases of Classic Notebook Computers Troubleshooting and Repair, AuthorHouse, 2012, p. 591, ISBN 978-1-4772-0540-2. URL consultato l'8 gennaio 2015.
    «Uninstall High Definition Audio driver patch KB835221 & KB888111 [...]»
  9. ^ Nel software "issue" è situazione anomala ma meno grave di "bug" che è difetto funzionale critico.

Voci correlate modifica

Altri progetti modifica

Collegamenti esterni modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica