Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Icone dimenticate in Windows: la storia di moricons.dll, dai programmi MS-DOS ai moderni collegamenti

Icone dimenticate in Windows: la storia di moricons.dll, dai programmi MS-DOS ai moderni collegamenti

Il file moricons.dll, introdotto ai tempi di Windows 3.1, è una piccola libreria contenente icone per software MS-DOS storici come Lotus 1-2-3 e WordPerfect. Nonostante il passaggio a Windows 95, l’abbandono del Program Manager e l’arrivo del supporto a 64 bit, questa DLL è rimasta nel sistema operativo fino a Windows 11.
Icone dimenticate in Windows: la storia di moricons.dll, dai programmi MS-DOS ai moderni collegamenti

Raymond Chen, uno dei responsabili Microsoft coinvolti da più tempo nello sviluppo di Windows (almeno da 25 anni), ci delizia sempre di racconti e curiosità “inedite” sulla storia e sull’evoluzione dei sistemi operativi made-in-Redmond. Nel cuore del sistema operativo Windows, tra i file di sistema, si trova un piccolo frammento di storia dell’informatica: la libreria moricons.dll. Questo file, di appena 12 KB, sopravvive da decenni e contiene un buon numero di icone dimenticate, portando con sé un pezzo della transizione tra l’epoca MS-DOS e l’interfaccia grafica moderna. Ma cosa contiene realmente moricons.dll? Perché esiste ancora (nel percorso %systemroot%\system32\moricons.dll)? E cosa ci racconta sulla filosofia evolutiva di Windows?

Le origini: la sfida di portare MS-DOS in un ambiente grafico

Con Windows 3.0, Microsoft introdusse una nuova possibilità: eseguire i programmi MS-DOS in una finestra, piuttosto che in modalità a schermo intero.

Per facilitare questa transizione, i tecnici della società aggiunsero un’apposita routine che permetteva di cercare nel disco rigido le applicazioni MS-DOS esistenti e configurarle per essere lanciate dall’ambiente Windows. Il processo era semiautomatico. Il sistema riconosceva i software basandosi su eseguibili noti (123.EXE per Lotus 1-2-3, MAIL.EXE per vari client di posta, ecc.), ma in caso di ambiguità chiedeva all’utente quale dei programmi suggeriti fosse quello corretto.

Una volta identificata l’applicazione, il sistema creava un file .PIF contenente le impostazioni ottimali per l’esecuzione dell’applicazione DOS e veniva generato un collegamento nella sezione “Non-Windows Applications” del Program Manager.

Dalla funzionalità al design: nasce moricons.dll

In Windows 3.0, i collegamenti verso i programmi MS-DOS erano rappresentati con un’icona grigia e anonima con la scritta “DOS”. Una scelta austera, puramente funzionale.

Con l’avvento di Windows 3.1, Microsoft introdusse un’evoluzione estetica: ogni programma MS-DOS riconosciuto riceveva un’icona rappresentativa nel Program Manager. All’inizio, queste icone erano memorizzate all’interno del file progman.exe, ma con l’aumento del numero si decise di esternalizzarle.

Nacque così moricons.dll, abbreviazione di “more icons”. Questa libreria conteneva (e contiene tutt’oggi!… anche in Windows 11) un insieme di icone predefinite pronte all’uso, pensate per essere assegnate automaticamente a vecchi software DOS come WordPerfect, Lotus 1-2-3, dBase e così via. Pur trattandosi di semplici bitmap a bassa risoluzione, queste icone rappresentavano un piccolo ma significativo passo verso una rappresentazione più “umana” del software.

L’eredità nel tempo: moricons.dll tra Windows 95 e Windows 11 a 64 bit

Con l’introduzione di Windows 95, il Program Manager fu sostituito dal menu Start e dai collegamenti .lnk, ma il sistema migrò automaticamente i collegamenti esistenti, inclusi quelli ai programmi MS-DOS, ereditando anche le icone da moricons.dll. Sorprendentemente, questa “catena di compatibilità” è proseguita con i successivi aggiornamenti Windows, per arrivare addirittura fino a Windows 10 e Windows 11.

Con l’avvento delle versioni a 64 bit, teoricamente non più compatibili con le applicazioni MS-DOS a 16 bit, si sarebbe potuta interrompere questa linea ereditaria. Tuttavia, come osserva Chen, il file moricons.dll non fu rimosso.

La ragione? Il costo di mantenerlo era virtualmente nullo (12 KB), non rappresentava un rischio di sicurezza e la sua rimozione avrebbe potuto causare problemi a utenti che utilizzavano ancora quelle icone per collegamenti personalizzati. Meglio non disturbare can che dorme, come dice Chen, e preservare la compatibilità, piuttosto che correre il rischio di rompere qualcosa di imprevedibile.

Come verificare cosa c’è dentro moricons.dll

Per verificare le icone Windows contenute all’interno della libreria moricons.dll, basta che clicchiate con il tasto destro del mouse sul desktop di Windows 10 o di Windows 10. Scegliendo Nuovo, Collegamento dal menu contestuale, digitate ad esempio winver e premete Invio.

Fate clic, a questo punto, con il tasto destro sul collegamento appena creato, scegliete la voce Proprietà, cliccate sul pulsante Cambia icona e infine digitate moricons.dll nel campo Cerca icone nel file. Vi troverete dinanzi a icone che vi riportano indietro nel tempo, verso un glorioso passato:

Icone Windows storiche: moricons.dll

Il file moricons.dll è un’icona della retrocompatibilità

Il caso moricons.dll è davvero emblematico. Dimostra come l’evoluzione di Windows non sia stata soltanto una corsa verso nuove funzionalità, ma anche una continua mediazione tra progresso e retrocompatibilità. È il riflesso della filosofia Microsoft: mantenere viva la storia del software, anche quando l’utilità pratica si è da tempo esaurita.

C’è però il rovescio della medaglia, Windows 11 è pieno zeppo di codice legacy che risale a versioni del sistema operativo e dispositivi hardware ormai morti e sepolti. Perché non fare finalmente un po’ di vera pulizia, come fecero ai tempi gli sviluppatori di Windows 2000?

Appare controproducente imporre limiti sui requisiti minimi per l’installazione di Windows 11 quando il sistema operativo, al momento dell’installazione, si comporta esattamente come Windows 10. Ha davvero senso impedire la migrazione a Windows 11, almeno sulla carta, su PC indicati come “non compatibili” quando invece è possibile procedere comunque usando espedienti più o meno documentati?

Se la ratio fosse solamente quella di supportare l’hardware più recente, sarebbe la volta buona per intervenire in profondità sul sistema operativo e scrollarsi di dosso il peso di tutti quei fardelli accumulati lungo decenni.

Credit immagine in apertura: Microsoft, Blog Raymond Chen “The Old New Thing”

Ti consigliamo anche

Link copiato negli appunti