Windows 98 è stato rilasciato sul mercato il 25 giugno 1998 e all’epoca fu considerato un buon sistema operativo. Erede dello storico Windows 95, Windows 98 era un sistema monolitico ibrido a 16 e 32 bit che utilizzava MS-DOS per la fase di avvio: solo con Windows 2000 fu ampliata la platea degli utenti che potevano servirsi di un kernel di derivazione NT svincolato da MS-DOS.
Windows 98 non è stato installato solamente su computer consumer ma è stato utilizzato per coadiuvare una serie di importanti missioni spaziali, alcune di esse ancora in corso.
È il caso della sonda Mars Express lanciata 19 anni fa che da allora è stata impegnata a fornire importanti dettagli su Marte e Phobos (uno dei due satelliti del pianeta rosso), inclusi i dati sulla superficie, sulla struttura del sottosuolo, dell’atmosfera e sulle condizioni ambientali di entrambi. Mars Express integra diversi strumenti scientifici e software che è stato sviluppato usando proprio Windows 98 come piattaforma di riferimento.
Windows 98, lo ricordiamo, non è più supportato da Microsoft dal mese di luglio 2006.
L’Agenzia Spaziale Europea (ESA) ha sviluppato un nuovo software da inviare a Mars Express che integra miglioramenti per la ricezione del segnale e per l’elaborazione dei dati: due novità: gli interventi dovrebbero consentire l’invio verso la Terra di un notevole quantitativo di dati in più.
Per affrontare la fase di sviluppo del nuovo software è stata utilizzata una macchina virtuale basata su VirtualBox: Carlo Nenna, ingegnere e responsabile del software di bordo MARSIS (Mars Advanced Radar for Subsurface and Ionospheric Sounding), software engineer presso Enginium (società che fornisce servizi di consulenza, progettazione e outsourcing alle aziende per cui è richiesta una competenza ingegneristica), ha spiegato che ci sono voluti due mesi di lavoro soltanto per configurare e convalidare l’ambiente di sviluppo. “MARSIS è stato originariamente progettato più di 20 anni fa, utilizzando un ambiente di sviluppo basato su Microsoft Windows 98“, ha rivelato.
MARSIS è stato fondamentale nella ricerca e nella scoperta di segni di acqua liquida su Marte, incluso un probabile lago di acqua salata di 20 x 30 km sepolto sotto 1,5 km di ghiaccio nella regione polare meridionale. Gestito dall’Istituto Nazionale di Astrofisica (INAF) italiano e interamente finanziato dall’Agenzia Spaziale Italiana (ASI), MARSIS invia onde radio a bassa frequenza verso Marte utilizzando un’antenna da 40 metri.
Esaminando i segnali riflessi, gli scienziati possono mappare la struttura al di sotto della superficie di Marte a una profondità di pochi chilometri e studiare proprietà come lo spessore e la composizione delle sue calotte polari oltre alle proprietà degli strati di roccia vulcanica e sedimentaria.
Carlo Nenna spiega che l’intervento si è focalizzato sull’aggiornamento del software di bordo dello strumento MARSIS. Tecnicamente parlando, il “software della sonda” (il veicolo che trasporta i payload in orbita intorno a Marte) non ha subìto modifiche: è stato aggiornato solo il software MARSIS.
“Ho voluto chiarire questo punto perché MARSIS è uno strumento molto particolare“, prosegue Nenna. “Essendo il primo del suo genere, quando lo abbiamo progettato più di 20 anni fa (ho iniziato a lavorare al software MARSIS nel 2000), abbiamo deciso di creare un dispositivo estremamente flessibile, che all’epoca era piuttosto insolito per uno strumento spaziale. MARSIS comprende 3 processori di segnale digitale (DSP). Uno di essi funge da master dell’intero strumento ed esegue un software scritto principalmente in ANSI C (più alcune routine di assemblaggio). Questo software integra anche un RTOS, utilizzato per implementare un progetto modulare multitasking. Il software in esecuzione sugli altri due DSP è interamente scritto in assembly per massimizzare le prestazioni di calcolo. Questi due DSP lavorano come dispositivi slave elaborando i dati acquisiti in base alle richieste del DSP master. Tutto questo è stato pensato fin dall’inizio per facilitarne l’aggiornamento“.
Nenna e il suo team hanno dovuto però affrontare diverse sfide legate all’aggiornamento del software MARSIS:
– L’ambiente di sviluppo molto vecchio (era già abbastanza vecchio nel 2000) ha richiesto la configurazione di una macchina Windows 98. È stato fatto con una macchina virtuale VirtualBox. Trovare un modo per condividere i file tra la macchina host e quella guest è stato un compito arduo. Anche l’installazione di cose comuni come un browser web funzionante o un editor di codice sorgente è stata difficile. Ci sono voluti quasi due mesi solo per configurare e convalidare completamente l’ambiente di sviluppo.
– Modificare 3 software diversi che girano contemporaneamente su un hardware complesso è qualcosa di difficile, anche quando si possono usare strumenti moderni per il debug. In questo caso non è stato possibile utilizzare alcuno strumento di debug, soltanto un simulatore DSP per testare piccole parti del codice modificato. Pertanto, Nenna e i suoi collaboratori hanno dovuti procedere per “tentativi ed errori” applicando diverse patch successive sul codice.
– Trovare uno slot per applicare una patch non è sempre stato facile, dato che nel frattempo Mars Express e MARSIS sono rimasti in funzione. Talvolta sono stati riscontrati dei malfunzionamenti relativamente all’uplink dei comandi per l’applicazione di patch dalla Terra alla sonda.
Sono state quindi applicate alcune patch “chirurgiche” per la correzione di bug che modificano solo pochi byte di codice, o addirittura pochi bit. Aggiornare un software che gira su un dispositivo in orbita intorno a Marte non è come installare un Service Pack di 300 MB con un semplice download e un doppio clic.
È sorprendente vedere che una sonda in orbita attorno a Marte ancora oggi faccia affidamento su un software sviluppato ricorrendo a un sistema operativo di 24 anni fa.
Il fatto è che siamo circondati da oggetti che spesso svolgono ruoli cruciali ma usano software obsoleto. Perché? Perché si tratta di oggetti progettati e realizzati per avere una vita molto lunga.
Basti considerare, a titolo esemplificativo, che i Boeing 747 ricevono aggiornamenti critici tramite floppy disk e che fino al 2019 anche il sistema degli armamenti nucleari statunitense faceva affidamento sullo stesso supporto di memorizzazione, diffuso fino agli anni ’90.
Fonte immagine utilizzata per le miniature dell’articolo: Courtesy NASA/JPL-Caltech.