Sistemi Operativi: la guerra della copia
- 16 Ago '06
- 162 visite
- Segui i commenti

Nella guerra al miglior sistema operativo, si sa, ci si scopiazza a vicenda le migliori idee, cercando poi di migliorarle. Dati di fatto mettono al primo posto tra i copioni la grande Microsoft, che da tempo copia idee per “innovare” Windows, il sistema operativo di casa. Ma la pratica di copiare le caratteristiche altrui e cercare di migliorarle non è necessariamente deprecabile, a patto di non dedicarsi unicamente alla riproduzione, ma di contribuire nell’innovazione. Da questa guerra della copia, infatti, a trarne beneficio sono gli utenti, che si trovano ad usare prodotti migliorati proprio grazie alla sfida tra i vari concorrenti. Anche Apple ha spesso copiato concetti altrui, apportando comunque grossi miglioramenti nell’usabilità, della quale è indiscussa campionessa. Tra le tante copie, citiamo una delle ultime, che fa parte del parco di innovazioni della prossima release di Mac OS X: Spaces. Spaces non è altro che l’ennesima implementanzione del concetto di Virtual Desktop, da decenni presente in svariati Window/Desktop Manager sviluppati per X11 e quindi per tutti (o quasi) i sistemi Unix like, Linux (soprattutto) compreso. Anche nel mondo Open Source ci sono molti rifacimenti, migliorie e scopiazzature di idee già presenti altrove, come anche ci sono molte innovazioni. Insomma la cosa si ripete ovunque, quindi vince chi fa la migliore implementazione delle idee comuni e chi ha più idee innovative dalla sua, il tutto unito a stabilità, velocità e usabilità.
Oggetto di recenti discussioni è Time Machine, un’altra nuova feature del prossimo venturo Mac OS X Leopard. Time Machine è insieme un sistema di backup automatizzato e un gestore del versioning dei file introdotto in Leopard a livello di filesystem. Anche questi due concetti non sono affatto la scoperta del secolo. Sistemi che effettuano backup automatici esistono da una vita e il versioning dei file a livello di filesystem non è certo un’invenzione di Apple. Già il filesystem Files-11 del sistema operativo OpenVMS aveva il supporto per il versioning dei file. Addirittura Windows XP possiede tale potenzialità, anche se di default il versioning è applicato soltanto ai file critici per il funzionamento del sistema. Il sistema è stato poi ampliato e migliorato in Windows Server 2003; in Windows Vista il sistema sarà integrato sotto il nome di Previous Version ed effettuerà il versioning anche di tutti i file utente, permettendo di ripristinare una “previous version” dal pannello delle proprietà del file. Per Linux, oltre a qualche filesystem specifico il cui sviluppo è praticamente occasionale, abbiamo un interessante progetto: VVFS. Esso introduce il supporto per il controllo di versione a livello di Virtual File System, del resto l’unica cosa intelligente da fare, vista la varietà di filesystem che è possibile usare (e che viene usata) con il sistema operativo libero. Come ben vedete anche qui la storia è vecchia, ma come già detto, in questi casi ciò che conta è l’implementazione e Apple anche stavolta ha saputo prendere un vecchio concetto e conformarlo al proprio stile. Con Time Machine non solo abbiamo backup automatizzati e la possiblità, dal Finder, di ripristinare vecchie versioni di file (cosa che, come detto sopra, avverà anche in Vista), ma viene introdotta un’intuitiva interfaccia 3D che permette all’utente di trasportare l’applicazione con il focus (ovvero quella con la quale al momento l’utente sta interagendo direttamente) indietro nel tempo, portandola allo stato che avrebbe avuto aprendola in un qualsiasi giorno nel passato. Questo viene fatto senza che l’applicazione debba essere stata sviluppata con il supporto a Time Machine e infatti il sistema funziona con tutte le applicazioni attualmente in circolazione. Molto probabilmente quando si “viaggia nel tempo” viene ripristinato (temporaneamente e non definitivamente, insomma, una sorta di “vista temporale”) lo snapshot del filesystem corrispondente al giorno scelto e poi viene inviato un messaggio di sistema all’applicazione in modo da forzarla a un reload dei file da filesystem. Ad ogni modo, quale che sia l’implementazione effettiva, il risultato a livello di usabilità è molto positivo, come potete osservare dal video in questa pagina.
Come si può osservare, spesso questi grandi colossi (Apple, Microsoft e tutti quelli che ormai finanziano lo sviluppo di Linux come sistema Desktop) più che copiarsi a vicenda, usano concetti vecchi, li rielaborano e li rimettono in giro e spesso le guerre di religione su chi ha inventato prima un dato tool o feature non hanno alcun senso. L’unica cosa che ha senso fare è capire chi ha fatto meglio il lavoro.
Da parte mia mi sento di ammonire, per certi versi, questo comportamento di “rielabora e riarrangia” che già da troppo tempo non fa altro che forzare un’evoluzione spesso finta e a volte flebile o soltanto apparente di un’interfaccia uomo-macchina che ormai ha fatto il suo tempo.








[...] Questo post vuole essere qualcosa in più di un commento al post di Nemo a proposito della “Guerra della Copia”. [...]
[...] Oggi mi son detto: sfogliamo OSNews, che è parecchio che non lo leggo…e cosa vi trovo? Questo articolo su Ars Technica a proposito di Time Machine. Finora di Time Machine sapevo solo ciò che ho appreso il giorno del WWDC e molti, come me, alla presentazione del prodotto avevano pensato che sotto Time Machine si nascondesse una nuova feature per HFS+ (o addirittura un nuovo e più moderno filesystem che la includesse, come fa notare Jhon Siracusa su Ars Technica): il controllo di revisione dei file (o versioning o snapshots). Beh, per chi ancora non lo sapesse: ci sbagliavamo! Non starò qui a farvi una traduzione del lungo articolo su Ars Technica; sarò invece sintetico, focalizzando i punti cruciali. Abbiamo detto che sotto Time Machine c’è ancora un semplice HFS+; allora come fa Time Machine ad avera la visione temporale del filesystem, potendo recuperare il suo stato nel passato? “Semplice”. HFS+ è stato corredato di una caratteristica che credo (io come l’autore dell’articolo su Ars Technica) nessun filesystem per sistemi Unix possieda: la possibiltà di creare hard link a directory. Leopard usa questa caratteristica per creare un albero sparso di directory, su un disco esterno o su un server, che contenga hard link a tutte le directory non modificate più una copia completa dei file/directory creati e/o modificati dall’ultimo backup. Certo Time Machine ha un’ottima interfaccia, intuitiva, bella e semplice da usare, in perfetto stile Apple e di sicuro rende facile e trasparente il backup come mai prima; ma a che prezzo? Innanzitutto, la soluzione adottata (intelligente se si considerano i limiti di HFS+) obbliga a un backup con granularità a livello di file, il che non è il massimo: se si modifica un solo byte di un file di 500MB (o peggio 1GB o 2, ormai file molto comuni), l’intero file viene copiato nel volume (o server) di backup. Uno spreco di spazio immane che non sarebbe mai avvenuto con un sistema di controllo di revisione. Immaginate un poveraccio che fa editing video e modifica un file almeno 5-6 volte (e sono stato parsimonioso): 6GB di backup in 1 oretta lì accumula facilmente. Ma ora viene il peggio: se non si è collegati al volume di backup o non è possibile raggiungere il server che offre il backup storage, non è possibile “viaggiare nel tempo”, poiché il tutto risiede sul backup storage. Immaginate come sono contento io che ho un portatile. E’ chiaro, il backup deve risiedere su un volume che non sia quello che si sta “backuppando”, ma la storia dei file dovrebbe essere sul volume stesso. Ovviamente ciò è fattibile solo con un filesystem che supporta il versioning. Con un tale filesystem applicato sia sul volume principale sia quello di backup, si eliminano tutti i problemi: il viaggio nel tempo è possibile anche senza dover raggiungere l’unità di backup (quale che sia) e l’unità di backup stessa non soffrirebbe della crescita esponenziale di spazio occupato, poiché, grazie al versioning, il backup non avrebbe più granularità a livello di file. Quello che mi chiedo è: perché mai tale scelta assolutamente discutibile (per quanto mi riguarda)? Anche Mac OS X possiede (come tutti i moderni sistemi operativi), un Virtual File System. Prendete esempio dai ragazzi del progetto VVFS per Linux. Oppure scrivete un nuovo filesystem, o ancora usate ZFS come desidera mezzo mondo, fate qualcosa insomma, ma non questa cagata. Come stanno le cose, non userò mai Time Machine: a me più dei backup in se, mi interessava il versioning. Post correlati: [...]