Windows 98 supporta USB4 e Thunderbolt

Questo post é stato letto 110 volte!

Un progetto open source, denominato xHCI98, ha dimostrato che è possibile far funzionare Windows 98 con tecnologie hardware moderne come USB4 e Thunderbolt. Questo lavoro non solo estende la compatibilità di un sistema operativo datato, ma solleva interrogativi sulla dipendenza della compatibilità hardware dal sistema operativo rispetto ai driver.

La sfida di far comunicare Windows 98 con hardware moderno

Windows 98 è stato sviluppato in un'epoca in cui lo standard USB 1.1 era predominante, utilizzando controller UHCI e OHCI. Le versioni successive di USB hanno introdotto EHCI (USB 2.0) e poi l'architettura xHCI (USB 3.0), che rappresenta una modifica più profonda. Molti chipset attuali non includono più i vecchi controller, rendendo impossibile per Windows 98, XP e persino Windows 7 comunicare con le porte USB senza un driver xHCI specifico. Il progetto xHCI98 interviene a questo livello, fornendo una nuova implementazione delle funzioni che permettono ai driver delle periferiche di comunicare con il controller host.

L'evoluzione del supporto USB per Windows 98

Inizialmente, xHCI98 si basava su `usbport.sys`, un componente Microsoft per i vecchi controller USB. Questa scelta, sebbene riducesse la complessità, limitava la velocità a circa 34 MB/s, poiché `usbport.sys` non supportava le modalità SuperSpeed di USB 3.0. Lo sviluppatore Yeo Kheng Meng ha quindi creato un driver dedicato, `xhci98.sys`, che ha assunto le responsabilità di diversi componenti Microsoft preesistenti. La particolarità di questo approccio è che i driver di classe per periferiche come mouse e tastiere possono rimanere invariati, poiché xHCI98 sostituisce il livello sottostante senza richiedere modifiche ai driver esistenti.

Windows 98 supporta USB4 e Thunderbolt con nuove sfide

USB4 e Thunderbolt, pur condividendo parte dell'architettura, presentano differenze significative nei requisiti. Il progetto xHCI98 deve gestire queste specificità, specialmente per dispositivi come gli SSD NVMe Thunderbolt, che richiedono la configurazione di tunnel PCIe. Per gestire queste connessioni, è stato introdotto `xhcicm.sys`, un componente che autorizza le periferiche e configura i tunnel PCIe e USB 3.

Un'ulteriore sfida è stata la gestione delle risorse PCI. Windows 98 non gestisce l'assegnazione dinamica di tutte le risorse PCI per periferiche collegate dopo l'avvio. Per superare questo limite, `xhcicm.sys` si è fatto carico anche dell'enumerazione PCI, configurando bus, finestre di memoria e interrupt, assumendo responsabilità che in sistemi operativi più recenti sono gestite autonomamente.

Prestazioni e il ruolo dell'intelligenza artificiale

I test hanno mostrato che con il nuovo driver, un supporto USB 3.0 raggiunge circa 200-220 MB/s su Windows 98 SE. Per gli SSD NVMe Thunderbolt, Windows 98 SE raggiunge circa 1.120 MB/s in lettura e 880 MB/s in scrittura, grazie anche a Stor98, un driver specifico per unità NVMe, e S98VSD.VXD, un componente che ottimizza i trasferimenti di dati.

Lo sviluppatore ha utilizzato assistenti AI come Claude e Codex per la generazione di codice, l'analisi dei problemi e la verifica delle implementazioni. Ha anche creato un emulatore USB4, `usb4-emu`, per test ripetibili. Questo dimostra come l'AI possa contribuire a ridurre i tempi e la complessità dello sviluppo in progetti complessi, sebbene la validazione finale richieda sempre competenze umane.

Questo post é stato letto 110 volte!

Di Pablo