Cosa non si inventava Microsoft per garantire la retrocompatibilità in Windows

12 Ottobre 2022 157

Una delle caratteristiche chiave dell'ascesa di Windows è stata la sua retrocompatibilità: e nonostante siano passati tanti anni, ancora oggi emergono dettagli su quanto gli sviluppatori di Redmond si siano adoperati per assicurarsi che nel passaggio da Windows 3.1 a Windows 95 gli utenti potessero continuare a usare i loro programmi e giochi senza problemi.

Negli scorsi giorni, uno degli host del podcast Hardcore Gaming 101 si è imbattuto in un articolo scritto oltre 20 anni fa da Joel Spolsky, co-fondatore di Stack Overflow e Fog Creek Software che racconta cosa si inventò Microsoft pur di garantire il funzionamento di SimCity, che all'epoca era stato uno dei videogiochi di maggior successo di sempre, con oltre 5 milioni di copie vendute.

Jon Ross, che scrisse la versione originale di SimCity per Windows 3.x, mi disse che aveva lasciato per errore un bug nel software in cui tentava di leggere la memoria che aveva appena liberato. Già. Non causava problemi in Windows 3.x, perché la memoria non spariva mai davvero. Ma ecco la parte fenomenale: nelle beta di Windows 95, SimCity non funzionava. Microsoft risalì al problema e aggiunse linee specifiche al codice di Windows 95 che controllavano se SimCity era in esecuzione. In caso affermativo, il sistema esegue l'allocatore di memoria in una modalità speciale che non libera la memoria immediatamente.

Per Spolsky, questo rappresentò una soluzione brillante al cosiddetto "problema dell'uovo e della gallina" tra OS e software, che si può riassumere così: nessuno ti comprerà la tua piattaforma finché non c'è del buon software compatibile, e nessuno sviluppatore creerà software per la piattaforma finché questa non sarà grande abbastanza.

È un dilemma che è estremamente valido e attuale ancora oggi, e che ha causato il fallimento di più di una piattaforma operativa, per quanto il potenziale fosse ottimo - pensiamo a Firefox OS, Tizen (almeno per smartphone). In tempi più recenti, anche per Microsoft stessa la retrocompatibilità è diventata un problema: pensiamo a com'è andata con Windows Phone o Windows RT.


All'epoca di Windows 95, tuttavia, Microsoft centrò l'obiettivo al 100%. SimCity è stato uno degli esempi più famosi, ma non l'unico - anzi tutt'altro. Microsoft ha addirittura sviluppato un Compatibility Administrator, disponibile ancora oggi per versioni più recenti di Windows, in cui vengono raccolti e documentati tutti i trucchi.

Basta usare il Windows ADK (Assessment and Deployment Kit) per scoprire autentiche gemme come Win95VersionLie: Final Fantasy VII, l'originale, andava in crash su qualsiasi versione di Windows NT, così il sistema verificava la presenza del gioco sull'hard disk e mentiva sulla versione di Windows.

Oppure, spostava manualmente i file Horny.tif e bullfrog.sbk per assicurarsi che la versione per Windows 95 e 98 di Dungeon Keeper funzionasse correttamente in Windows XP e versioni più recenti. La pratica è ancora in uso: Street Fighter V richiede alcuni aggiustamenti alla sua implementazione di DirectX per essere eseguito correttamente da alcuni sistemi.


157

Commenti

Regolamento Commentando dichiaro di aver letto il regolamento e di essere a conoscenza delle informazioni e norme che regolano le discussioni sul sito. Clicca per info.
Caricamento in corso. Per commentare attendere...
frank700

Mai inventato nulla. Bisogna solo usarlo, senza paraocchi.

Gabriele Di Bari

Non hai la minima idea di come sia windows vedo.

Gabriele Di Bari

No, per niente, se campi per sentito dire non colpa di MS (Che non ammiro, ma per altri motivi, non ho bisogno di inventarmi certe cavolate).

2galassie
iTunexify
FabriFi

non mi pare che da windows 10 a 11 ci sia stato un salto epocale. Eppure ho un ryzen 5600x che dovrebbe risentirne di più dei cambiamenti. Boh vabe

2galassie
Mr. G/Blocked:45/Mac+Android

LTSC non si trova al supermercato.
Sicuro di lavorare veramente per MS?

2galassie

Perché cosa fa apple?

Siamo seri è IMPOSSIBILE (e assurdo) fornire retrocompatibilità per ogni singolo software.
Se pensi che sia possibile non hai mai scritto un programma in vita tua

2galassie

Raga windows costa meno di netflix tra un po’ eh

faber80

si, per chi iniziò nel 1998 magari.

Mr. G/Blocked:45/Mac+Android

Mica puoi passarmi sottobanco una key per Windows LTSC?
Mi urta vedere il watermark dell'attivazione in basso a destra tutti i giorni

Sisi puoi spostare lo start a sinistra come sempre, insieme a tutte le icone sotto. Mi pare che li aggiunge a destra dell'ultimo PIN ma tutta la fila di icone rimane centrata allo schermo .. dovrei provare a farci caso.. stasera provo

Alexv

Purtroppo (o per fortuna) ogni SO deve sostenere le sue app di punta. Apple li avrebbe costretti a calci a riscrivere il gioco, ma è tutto più facile quando i programmi sono pochi e hai un'utenza professionale che si interessa a trovare le patch (stiamo parlando degli anni '90, niente aggiornamenti automatici, solo riviste e negozi).
La soluzione generica non credo sia possibile. Si tratta di un errore di programmazione da scolaretti (uso di un dangling pointer), ma di quelli rognosi che possono anche non manifestarsi subito, e in effetti il gioco è stato fortunato col primo SO, che per come ho capito non riscriveva la memoria liberata. Anche applicando la soluzione generica, ovvero non liberare mai la memoria quando il programma lo richiede, con crescente occupazione di ram per i programmi pesanti, non è detto che avrebbe funzionato. Dipende dalla logica del programma, ovvero se quei dati "presi dalla spazzatura" hanno ancora un senso dopo che il programmatore stesso ha dato il permesso al SO di socrascriverli. Alla fine "l'inzozzamento" consiste nel cercare in un piccolo database ogni volta che si avvia un eseguibile e attivare la modalità adatta, cosa che penso faccia qualsiasi SO commerciale.

Anche li purtroppo o usi l'interfaccia per 1d10t1 (impostazioni) o devi andare di esegui > control printers... poi se ti capita di farlo una volta su win 11, una volta su 10, 10 RTM, 7... cambia ogni volta il menu e fai prima a ricordarti il comando

2galassie
Goose

Inzozzare un intero sistema operativo per un videogioco è esagerato. Sarebbe bastato fare una soluzione generica per tutti i processi che presentavano questo bug.

Berserker02

Eh????? Maddai .....

Frederik

Sono gli altri che scrivono che assomiglia ad Android o altro...quindi chiedo se sia poco pc desktop ma non sia tornato stile Windows 8.1/Windows Phone

Frederik

Era una domanda nel senso che la tastiera non mi ha preso il punto di domanda, idolo.

Frederik

Appunto...avevo intravisto che era così, una scopiazzata del Mac, cambiamento epocale per Windows. Ma non si possono rimettere a sinistra? E soprattutto, quando ci sono più programmi aperti dove li mette, li aggiunge al centro?

Astro
Ziggy

Non condividono neanche lo stesso kernel, alla faccia delle pezze. Ah, per anticiparti, pure il kernel originale di Windows NT fu quasi riscritto da zero ai tempi di Windows Vista (cosa che causo i famosissimi problemi di retrocompatibilità hw & sw all'epoca), e venne pesantemente aggiornato con Windows 10

2galassie
ghost

Intendo dire lavorativo da ufficio come cambiare la stampante predefinita ovvio che le funzioni dei professionisti restano le stesse, in caso contrario non so cosa rimarrebbe funzionante xD

Alexv

Lato SO possono fare ben poco se il gioco è buggato.

Alexv

La butto lì: fanno lo stesso anche sui driver per le schede video?

So che all'inizio (maggio) crashava un po' (sviluppo in altri ambienti, non sono in grado di citare dettagli) ma di developer e tester che ad oggi lavorano con profitto su Win11 e usano unreal engine ce ne sono molti.

Se compri un PC con Win11 hai una garanzia, fatti sistemare il PC.
Se intendi che Win11 è un colabrodo, spiegaci quali problemi hai avuto perché in ambito lavorativo ho molti (molti) clienti e non ho visto problemi significativi fino ad ora.

Giàgioggiola

Allora non c'era ancora, ma oggi si fa con la modalità compatibile, io sono riuscito a far funzionare Photoshop 6 del 2001 con Windows 10 attivando la compatibilità con Windows 95, penso che alla fine il metodo sia simile a quello che hanno usato per Final Fantasy VII, avevo letto che viene usata una funzione chiamata GetVersionEx, ma non essendo un informatico non ci ho capito molto. Naturalmente non funziona sempre, ad esempio Premiere Pro 1.5 del 2004 a partire da Windows 8 non sono più riuscito a farlo funzionare.

___

esenti da bug ne sei sicuro? io non credo proprio non a caso spuntano sempre fuori articoli che parlano di problemi su problemi

Alessandro Scarozza

i problemi evidenti di windows pero sono davanti gli occhi di tutti

Patrocinante in Cassazione

nel 95 non usci nulla, mi è venuto questo cruccio?

DjMarvel

il primo windows della storia, Win98

2galassie

Un buon lavoro non è necessariamente un lavoro che “segue tutte le regole”.

Windows è un sistema operativo incredibile, complesso e bello. E ci sono parti che non vengono toccate da anni perché funzionano perfettamente e sono praticamente esenti da bug. Quindi invece che riscriverle, si scrivono dei moduli apposta, delle “pezze” come le chiami tu. Non per questo è un lavoro approssimativo.

E te lo posso dire con certezza perché in Microsoft ci lavoro

Umberto

Credo abbiano aggiunto nuovi processori compatibili perchè il mio PC aziendale da un paio di giorni mi segnala la possibilità di aggiornare a Windows 11, mentre inizialmente era escluso proprio a causa del processore non compatibile.

Dino

parli con me?

Riccardo sacchetti

Io sono arrivato tardi, verso la fine del '90. Li ho avuti tutti, dall'8080 fino ai primi Pentium 4 e Amd. Li recuperavo a gratis dall'isola ecologica, li sistemavo e li rivendevo. Però il problema del gli aggiornamenti non si presentava perche scroccavo le prime ISDN/adsl e scaricavo gli aggiornamenti. Non ricordavo delle lettere/fax da inviare.

csharpino

Si ma scrivilo senza piangere...

Dino

ok, quindi prima non ci stavano il problema della sicurezza e 95 non si usava (AS400 si usa ancora oggi)... ok hai ragione, bravo.

Inizia te a fare strada e a giocare, forse ti raggiungo dopo.

Pure io rispetto al sistema attuale

csharpino

Ma ci credi veramente alle boiate che stai dicendo? Secondo te le poche reti informatiche presenti nel 95 che contenevano dati sensibili giravano con un sistema operativo nato l'anno prima? Ci sono banche che hanno migrato l'altro ieri le loro piattaforme AS400 e nel 95 giravano con WIN 95? Dai vai a giocare in autostrada...

https://uploads.disquscdn.c... basta cercare uno screenshot.. alla fine lo start è così e il resto bene o male è lo stesso, il pannello sta scomparendo piano piano in favore delle impostazioni.. ma per il resto non ci sono grande differenza esterne

Andrea

Il lavoro sarà senz'altro titanico, ma non si può e non si deve definire un "buon lavoro".

Sono nient'altro che pezze, ormai un'infinità di pezze all'interno di un "mostro" quasi incontrollabile.

A livello lavorativo di solito si va di riga di comando, services.msc, compmgmt.msc ecc, le impostazioni grafiche nemmeno le conosci. Negli ambienti server si va sempre più di powershell, le impostazioni grafiche nemmeno esistono.

Sono curioso... cosa fai nella vita che ti impedisce di farlo con Windows 11 e con Windows 10 puoi?

Tieniti quello che hai

T. P.

simpatica come cosa! :)

ZiuZiu

oramai qui è quasi tutto una marchettata! non si distingue più nulla da ciò che è notizia, approfondimento...da soldi presi per le marchette! Che tristezza

Flagship

Classico commento da nato nel 2000

Recensione MSI Prestige 15, un buon notebook tuttofare

Come scegliere il notebook giusto? Ecco i nostri consigli!

Recensione Lenovo ThinkPad Z13: ultra premium, ultra compatto, ultra potente

Recensione MSI Creator Z17, tutto al TOP, anche il prezzo