Riassunto analitico
I moderni autoveicoli e velivoli sono dotati non solo di sistemi elettronici di controllo automatico sempre più complessi, ma anche di interfacce utente avanzate. In particolare si tende sempre più ad affiancare ai sistemi operativi hard real-time dedicati al controllo delle funzionalità safety-critical sistemi operativi general-purpose adatti a fornire veri e propri servizi di infotainment. Le necessità di questi ultimi in termini di potenza di elaborazione può essere soddisfata solamente da piattaforme multi-core, che stanno attualmente soppiantando le piattaforme single-core.
In quest'ambito, l'azienda Evidence Srl propone una soluzione open-source, basata su una piattaforma dual-core con architettura ARM, che combina la flessibilità di un sistema general-purpose come Linux, in grado di supportare qualsiasi interfaccia utente evoluta o servizio multimediale, e l'affidabilità di ERIKA Enterprise, un sistema operativo real-time adatto al controllo di funzionalità safety-critical. Il primo sistema operativo è eseguito su di un core, mentre l'altro è eseguito sull'altro core, e, per questioni di efficienza e semplicità, entrambi condividono la memoria senza meccanismi di protezione reciproca: questo schema soffre purtroppo di evidenti problemi di sicurezza, in quanto i componenti safety-critical dovrebbero essere isolati da quelli non safety-critical.
In questa tesi si presenta una differente soluzione basata di nuovo su una piattaforma dual-core ARM ed in grado di eseguire parallelamente sia Linux che ERIKA Enterprise, ma che fa uso dell'hypervisor Xen isolare i due sistemi operativi in domini diversi. Nella configurazione proposta, ciascun dominio esegue su di un core dedicato, assegnato staticamente dall'hypervisor. Linux è utilizzato come dominio di controllo, ed è quindi in grado di fare uso del completo toolstack fornito dall'hypervisor; è inoltre in grado di consentire al sistema operativo real-time accesso alla memoria di I/O di qualsiasi dispositivo. L'infrastruttura descritta include inoltre un semplice meccanismo di scambio di messaggi sicuro tra i due sistemi operativi, basato sulle primitive di comunicazione tra domini messe a disposizione da Xen e sulla condivisione esplicita da parte del sistema operativo real-time di un set di pagine di memoria dedicate.
|
Abstract
Modern cars, as well as aircrafts, are equipped not only with more and more complex control systems, but also with increasingly advanced user interfaces and infotainment systems. Hard real-time operating systems, dedicated to the control of safety-critical tasks, must be able to run alongside general-purpose operating systems executing infotainment services. As of the latter, the growing computational demand of these applications can now be met only with multi-core systems, which are actually supplanting single-core ones.
To this purpose, Evidence Srl proposes an open-source solution based on a dual-core ARM platform, which combines the flexibility of the Linux general-purpose operating system, able to support any complex user interface or multimedia service, and the reliability of the automotive-grade ERIKA Enterprise operating system, a small-footprint real-time OS suitable for safety-critical control tasks. The operating systems run on dedicated cores and, for efficiency and simplicity reasons, both share memory without protection mechanisms: this design unfortunately suffers from notable security issues, since safety-critical and non-safety-critical components should be isolated from each other.
In this thesis we present again a double-OS system running, on a dual-core ARM platform, ERIKA Enteprise and a full-featured Linux OS, but using the Xen hypervisor to run the two operating systems in two isolated domains. In the proposed setup, each of the domains runs on a dedicated core, assigned statically by the hypervisor. Linux runs as the control domain, and is therefore able to execute any of the components of Xen's toolstack; it is also able to grant to the real-time operating system access to any device's I/O-memory.
The described system also provides a basic, safe communication mechanism between the two operating systems, based on Xen's inter-domain event notification primitives and the real-time operating system explicitly sharing a dedicated set of memory pages.
|