EO-Medical_488

XXXII Medical MEDICAL 20 - SETTEMBRE 2020 Un sistema operativo come Linux non è direttamente in grado di rendere un dispositivo più sicuro o di preve- nirne i malfunzionamenti, né può correggere il sistema nel caso ciò dovesse accadere. Un sistema operativo non è quindi di per sé un meccanismo di sicurezza. Quando uno sviluppatore installa Linux in un sistema privo di qualsiasi altra applicazione e poi lo accende, Linux si av- via, dopodiché non fa altro che restare inerte, mostran- do una schermata di login. Linux non fa nulla fino a quando non vengono eseguite delle applicazioni, tuttavia mette a disposizione i propri servizi per tutte le applicazioni che implementino fun- zionalità necessarie a garantire la sicurezza del dispositi- vo nel suo complesso. Dunque, sebbene un sistema ope- rativo non costituisca un vero e proprio meccanismo di sicurezza, esso rende di fatto possibile l’azione di queste ultime e deve quindi essere considerato un elemento dei sistemi di sicurezza. L’importanza del multiprocessing I potenti e sofisticati microprocessori odierni, al cui in- terno sono presenti numerosi core , sono progettati per supportare meccanismi di multipro- cessing eterogeneo. Il multiproces- sing consente di supportare l’esecu- zione di Linux mediante i potenti core general-purpose , delegando ad altri core più specializzati la gestione di altre funzionalità. La maggior par- te degli smartphone utilizza avanzate architetture di questo tipo, in cui un potente processore viene dedicato all’esecuzione di Android o di iOS e delle varie applicazioni, mentre un processore separato si occupa di gestire la sicurezza dei dati. Tutti gli odierni dispositivi attenti agli aspetti di si- curezza fanno ampio uso di questo approccio. Ciò è inol- tre favorito dal fatto che i microprocessori di oggi sono meno costosi ma molto più potenti ed avanzati rispetto a quelli del passato. Tuttavia, quando essi vengono utiliz- zati per gli odierni apparecchi medicali, vi sono ulteriori considerazioni di cui si deve tenere conto. La progettazione orientata alla sicurezza non è più una questione legata solo all’hardware o al software, quan- to piuttosto una questione relativa all’integrazione tra i sistemi. Per sfruttare appieno i vantaggi offerti dai mi- nori costi per il BOM (Bill-Of-Materials), nonché dalla maggiore integrazione dei componenti presenti in un avanzato chip multiprocessore, mantenere separate le applicazioni – un approccio noto come mixed-safety cri- ticality – per ottenere una progettazione orientata alla sicurezza. Ad esempio, gli sviluppatori possono oggi eseguire la porzione del sistema dedicata all’interfaccia utente su un cluster di processori ottimizzato per le ap- plicazioni utente, dotato di funzionalità quali la cache multilivello o le power island , che consentono di togliere l’alimentazione a singoli processori o a porzioni di me- moria, risparmiando così energia all’interno di un dispo- sitivo medicale alimentato a batterie. Linux può inoltre ottimizzare l’utilizzo del cluster di processori dedicato alle applicazioni sfruttando funzionalità integrate qua- li il multi-processing simmetrico, che distribuisce i task ed i thread di elaborazione fra i singoli processori. Con- temporaneamente, la porzione del sistema che presenta aspetti critici per la sicurezza può essere eseguita su un cluster separato, ottimizzato per l’elaborazione real-time e dotato di funzionalità come l’uso di memoria tightly- coupled per i dati e per le istruzioni, con cicli di fetch estremamente ridotti e prestazioni altamente determini- stiche – oppure il lockstep mode per la rilevazione degli errori. Nei sistemi basati su multiprocessing avanzato sono presenti dei meccanismi hardware per l’isolamento dei processi, capaci di garantire la separazione tra il mondo delle applicazioni e quello delle porzioni safety-critical del sistema. Tuttavia, per sfruttare queste capacità dell’hardware, il progettista del software deve far uso di specifici middleware, come Men- tor Hypervisor o il Mentor Multicore Framework. Questi pacchetti soft- ware abilitano infatti certe importan- ti funzionalità system-level , come ad esempio quelle di secure IPC (Inter- Processor Communication) tra i clu- ster di processori. Opzioni avanzate Vi sono poi ulteriori considerazioni, per quanto riguar- da lo sfruttamento ottimale dell’hardware da parte di Linux. Un esempio è costituito da un’opzione avanza- ta presente all’interno del kernel di Linux, nota come “Power Framework”. Le applicazioni software possono indicare al kernel di spegnere alcune porzioni del siste- ma quando non sono necessarie, per riaccenderle solo quando richieste, risparmiando così energia del sistema. Gli odierni SoC più avanzati includono inoltre all’inter- no dei cluster di processori anche alcune interfacce per periferiche, come I2C o USB, che possono anch’esse essere controllate in questo modo – questo approccio può inoltre essere ulteriormente esteso per implemen- tare periferiche “soft” esterne al cluster di elaborazione, mediante logica RTL. Tra i possibili esempi vi sono in- terfacce CAN o altre periferiche esterne al chip, come Ethernet PHY. Per sfruttare pienamente tutte le possibi- lità offerte dai moderni sistemi embedded è necessario

RkJQdWJsaXNoZXIy MTg0NzE=