Pubblichiamo un guest post di Felice Pescatore
“Salve… vorrei un computer…” “E’ assolutamente nel posto giusto… le posso consigliare questo nuovissimo sistema con ben 1 TB di disco rigido per tutte le sue foto, i suoi video, ecc…ecc….”
Quello brevemente sintetizzato è uno dei presunti consigli che un classico addetto alla vendita di computer, giornalmente, dispensa a chi si appresta ad acquistare l’ultima meraviglia informatica. Ma fermiamoci un attimo: 1 TB, mille miliardi di byte… eppure lo spazio non ci basta mai. Siamo diventati disordinati e i nostri dischi pullulano di dati inutili, scaricati dalla Rete o dal supporto di un amico.
Poco più di 20 anni fa, però, la normalità era rappresentata da dischi di 20 Mb (si si… 20 megabyte!) visto l’alto costo che si attestava intorno ai 10$ per Mb. Lo spazio, comunque, cominciava anche allora ad essere appena sufficiente, complice il primo timido utilizzo di strumenti multimediali (vedi Windows MMC e Windows 3.1) e la diffusione di nuove applicazioni “pesanti”: WordPerfect per DOS aveva bisogno di circa un paio di mega, Quattro Pro per DOS di 4/6 MB, e Harvard Graphics per DOS di circa 10MB per l’installazione completa. La situazione peggiorava se si decideva di installare un sistema operativo evoluto come OS/2 che occupava di per sé decine di mega.
Come fare, allora, per risolvere la carestia di spazio senza spendere una cifra pari a quella dell’intero calcolatore?
Ecco, allora, affacciarsi sul mercato i quasi dimenticati sistemi di Compressione del Disco al Volo, venduti a circa 120-150$.
Nomi come Stacker o Double/DriveSpace hanno accompagnato molti utenti di PC nel primo quinquennio del ’90, permettendo di ottenere un significativo incremento di spazio con punte fino all’ 80-90%.
Queste utilities creavano un grosso file compresso chiamato “Volume” e intercettavano le chiamate di lettura e scrittura al sistema, preoccupandosi, rispettivamente, di leggere e decomprimere o di comprimere e scrivere. Il tutto al volo ed in modo trasparente. Questo modus-operandi era, comunque, anche il lato più delicato: infatti un volume corrotto significava la perdita irrimediabile, o quasi, di tutti i dati.
Spesso i produttori riportavano percentuali di aumento dello spazio disponibile tra il 2.5:1 ed il 3.1:1, cioè quasi il triplo di quello reale, cosa da accreditare ad un utilizzo più efficiente dell’allocazione dei file su disco (valido in modo particolare per le partizioni FAT) più che alla percentuale di compressione dei file.
Nel processo di compressione venivano utilizzate varianti proprietarie del celebre algoritmo Lemple-Ziv (LZ), ottimizzate dal punto di vista computazionale, in modo da ridurre l’impatto sulle performance del sistema. C’è da dire che nello stato di massima maturità di questa categoria di software, l’obiettivo era stato raggiunto, tant’è che il degrado prestazionale era quasi impercettibile su hardware veloce dotato di processori 486DX4 o Pentium I.
Lo scettro della categoria apparteneva a Stacker di Stack Electronics, che per primo si era affacciato sul mercato conquistando l’attenzione di utenti e software house, in particolare quelle produttrici di sistemi operativi DOS LIKE. Stacker utilizzava l’algoritmo Lempel-Ziv-Stac (LZS o Stac Compression), ancora oggi sfruttato per le comunicazioni di rete e fatto proprio dal CISCO IOS Stack. L’LZS garantiva un ottimo incremento di spazio, vicino al limite teorico del 100%, senza un degrado significativo delle performance.
Il suo principale antagonista era SuperStor della AddStor Inc., particolarmente apprezzato per la possibilità di comprimere i floppy e leggerli anche su sistemi sprovvisti del tool, grazie ad suo un subset (2XON) incluso su ogni floppy “trattato”.
Ma la diffusione di questi sistemi avvenne con la loro inclusione nei vari DOS, che portò all’abbattimento del costo di acquisto. Il primo ad integrare un sistema di compressione fu Digital Research con il DR DOS 6, come sempre era un passo avanti alla coppia Microsoft/IBM, che scelse inizialmente SuperStor in versione Lite. Anche IBM decise di includere il prodotto di AddStor a partire dalla versione 6.1 del proprio DOS anche se, in realtà, nel package dell’OS non era presente il software vero e proprio ma il coupon d’ordine. L’inclusione fattiva avvenne con la release IBM DOS 6.3.
Microsoft con l’MS-DOS 6.0 scelse di sviluppare una soluzione propria, chiamata DoubleSpace, derivata da un prodotto realizzato da Verisoft.
La scelta non fu delle più felici. DoubleSpace provocava, in alcuni casi, la perdita di dati e la corruzione del volume compresso, costringendo così BigM a rilasciare rapidamente la versione 6.20 del DOS con uno Scandisk in grado di controllare i dischi compressi, con DoubleGuard (residente in memoria) per controllare lo stato del volume compresso e con altri fix minori alle utility che utilizzavano il file system.
Inoltre Stack El. citò la casa di Redmond per aver violato i brevetti sull’algoritmo LZS, costringendo BigM al rilascio dell’MS-DOS 6.21 senza utility di compressione e, nel giro di alcuni mesi, al rilascio della versione 6.22 con il nuovo DriveSpace basato su un nuovo algoritmo misto Lempel-Ziv/Huffman . Nel frattempo le nuove release del DR-DOS (diventato Novell-DOS 7) e dell’IBM DOS (7.0 e 7.0 rev 1 alias 2000) sostituirono SuperStor con una versione specifica di Stacker.
Intorno alla metà degli anni ’90 questi software iniziarono a cedere il passo, soprattutto per l’abbattimento dei costi dei nuovi dischi rigidi misurati in GB e non più per MB. Inoltre con la diffusione di Windows 95/98, SuperStor venne praticamente cancellato dal mercato, mentre Stacker tentò inutilmente di resiste con versioni specifiche, ricche di nuove funzionalità e con migliori performance rispetto a DriveSpace fornito in bundle da Microsoft.
All’alba del nuovo millennio i tool di compressione “on-the-fly” spariscono definitivamente e l’ultimo Windows a fornire DriveSpace è stato ME, che ne incorporava una versione light (la 3.0) per questioni di compatibilità, non permettendo, comunque, di creare nuovi volumi compressi. Le versioni attuali di Windows consentono di attivare un’opzione di compressione del disco per risparmiare spazio ove possibile, ma le dimensioni dei dischi sono tali da renderla praticamente inutile.
Ma il mondo Apple? La casa di Cupertino aveva una scelta limitata incentrata su DiskDoubler (DD) che invece di comprimere l’intero disco, si occupava singolarmente di ogni file trattandolo con LZ78, una ulteriore una variante dell’algoritmo LZ. Ovviamente anche per la casa di Cupertino i tempi sono cambiati e DiskDoubler è finito nel cassetto dei ricordi.
Oggi è assolutamente impensabile utilizzare un tool come Stacker, anche se qualcosa dell’idea originale può essere ritrovata in prodotti che interessano settori completamente diversi. Un esempio per tutti gli strumenti di Virtualizzazione come VMWare e Virtual PC che utilizzano un “volume” unico che racchiude l’intera macchina virtuale permettendo di effettuare opportune policy di caching nella gestione dei dati per ottimizzarne le prestazioni.
Prima di salutarci, per completezza, è doveroso ricordare che anche per la RAM fu tentata la stessa strada, ma senza successo, visto che per tale tipo di memoria l’elemento primario è la velocità di accesso e poi la sua dimensione. Comunque RamDoubler, sviluppato da Connectix autore originale anche di Virtual PC, resta negli annali come il tool della categoria meglio riuscito.