PHILMARK

SpaceX: Sistema operativo e linguaggio di programmazione impiegati

SpaceX: Sistema operativo e linguaggio di programmazione impiegati

SpaceX: Sistema operativo e linguaggio di programmazione impiegati

SpaceX: Sistema operativo e linguaggio di programmazione impiegati

Il Falcon 9 della SpaceX ‘ha trovato’ un varco nel cielo nuvoloso della Florida e si è staccato come previsto alle 21.22 ora italiana dalla rampa di lancio 39A di Cape Canaveral. Bob Behnken e Dug Hurley sono i primi astronauti statunitensi a decollare dal suolo patrio dal 2011. E, per la prima volta nella storia, lo fanno trasportati da una navetta privata, costruita dalla SpaceX di Elon Musk, ill visionario che sta scrivendo un nuovo capitolo del trasporto e dell’economia spaziale.

 

Ma scopriamo i dettagli del software che ha permesso l’impresa:

Computer di bordo e hardware di volo sono il risultato di continui test e sviluppo su componenti provenienti da produttori diversi. È indispensabile, quindi, l’utilizzo di software che permettano a queste parti di dialogare. La stessa espressione “COTS” applicata al software viene usata più per riferirsi al software infrastrutturale detto middleware.

In informatica con middleware si intende un insieme di programmi informatici che fungono da intermediari tra diverse applicazioni e componenti software. Sono spesso utilizzati come supporto per sistemi distribuiti complessi con architetture multi-strato. L’integrazione dei processi e dei servizi, residenti su sistemi con tecnologie e architetture diverse, è un’altra funzione delle applicazioni middleware.

 

Sistema operativo e linguaggio di programmazione

Il sistema operativo scelto da SpaceX è Linux, che viene eseguito sui desktop degli ingegneri per il controllo dei veicoli. L’uso di Linux ovunque consente loro di semplificare il processo di sviluppo e di utilizzare i solidi strumenti che ne derivano.

Il linguaggio di programmazione utilizzato è C++ e viene impiegato per due motivi principali:

  1. Permette di assumere eccellenti sviluppatori perché il linguaggio è ancora relativamente popolare.
  2. SpaceX beneficia del grande ecosistema C++.

Non c’è bisogno di creare software personalizzato quando puoi utilizzare strumenti che gli sviluppatori già conoscono come GCC e GDB.

Linux non è l’unica piattaforma coinvolta: LabView, uno strumento di programmazione grafica che viene eseguito su Windows, è utilizzato per visualizzare la telemetria acquisita dal Falcon 9 o dalla capsula Dragon durante il volo. Il team a terra lo impiega per tenere sotto controllo tutti i parametri.

 

Tutti per uno e uno per tutti

SpaceX cerca di condividere il più possibile il proprio codice fra i suoi velivoli. Il vantaggio di fare questo è che la correzione di un bug in un veicolo è automaticamente portata agli altri.

Inoltre, gli ingegneri sono incoraggiati ad aggiungere metriche al maggior numero di componenti possibile. Quando i veicoli sono in uso, tutti questi log sono raccolti e analizzati da dei programmi che lanciano un messaggio di errore se qualcosa supera i limiti di sicurezza. Tutte queste metriche sono archiviate insieme al codice sorgente in esecuzione al momento. Se qualcosa va storto, SpaceX può ricreare l’ambiente esatto per riprodurre il problema e correggerlo.

SpaceX inoltre usa l’integrazione continua per testare automaticamente tutto il codice che viene scritto dagli ingegneri. Hanno persino banchi di prova con tutti i componenti di un Falcon 9 imbullonati in modo da poter simulare un volo completo per scoprire potenziali problemi.

Nella sala di controllo missione, SpaceX vi utilizza computer e sistemi di visualizzazione standard con software progettato per il controllo di sistemi industriali.

 

Sviluppatori SpaceX

spacex philmark softwareUna particolarità per quanto riguarda la scelta del personale da parte di SpaceX è che gli sviluppatori di videogiochi sono solitamente adatti a essere assunti. Questo è dovuto alla loro capacità di scrivere codice che dovrà eseguire in ambienti dove la memoria e la potenza di elaborazione sono limitati. Una volta scelti i propri sviluppatori, informatici o ingegneri che siano, SpaceX li divide in gruppi che hanno delle mansioni ben precise.

Il team “Flight Software” conta circa 35 persone e sono gli incaricati di scrivere tutto il codice per le applicazioni Falcon 9, Grasshopper e Dragon e di far funzionare la piattaforma principale, anche su quei veicoli. Inoltre, scrivono anche il software di simulazione, testano il codice di volo e scrivono il software di comunicazione e analisi, distribuito nelle nostre stazioni a terra. Lavorano anche nel Controllo Missione per supportare missioni attive.

Il team “Enterprise Information Systems” costruisce i sistemi software concentrandosi sul prodotto di punta: un’applicazione web interna che utilizza tutto il personale dell’azienda. Ci sono prodotti disponibili in commercio che fanno questo ma SpaceX preferisce poter controllare ogni minimo particolare nel modo più personalizzato possibile.

Il team “Ground Software” è di circa 9 persone e si occupa principalmente di programmare in LabVIEW. Sviluppano le GUI utilizzate nel Controllo Missione e di lancio dagli ingegneri e dagli operatori per monitorare la telemetria dei veicoli e comandare il razzo, il veicolo spaziale e l’equipaggiamento di supporto dei pad. I dati vengono trasmessi ad alta larghezza di banda su un sistema altamente distribuito e sono state implementate interfacce utente complesse con requisiti rigorosi per garantire che gli operatori possano controllare e valutare i veicoli spaziali in modo tempestivo.

Il team “Avionics Test” collabora con i progettisti hardware avionici per scrivere il software utilizzato per testare i componenti. L’obiettivo principale è scrivere un software molto completo e robusto per poter automatizzare la ricerca di problemi con l’hardware su grandi quantità di dati.

SpaceX si sta trasformando da un’azienda di ricerca e ingegneria in un’azienda manifatturiera (che è fondamentale per il suo successo) quindi il team è in prima linea nel far sì che ciò accada. Fanno leva su C #, MVC4, EF, SQL, Javascript, Knockout, Handlebars, LESS e API REST.

Condividi su:

Condividi su facebook
Condividi su google
Condividi su twitter
Condividi su linkedin
Condividi su whatsapp