Condividi tramite


Panoramica delle applicazioni Azure Sphere

I dispositivi Azure Sphere possono eseguire due tipi di applicazioni:

  • Le applicazioni di alto livello vengono eseguite in contenitori nel sistema operativo Azure Sphere
  • Le applicazioni in tempo reale (RTApps) vengono eseguite su bare metal o con un sistema operativo in tempo reale (RTOS) sui core in tempo reale

Per ogni dispositivo Azure Sphere è necessaria un'applicazione di alto livello; Le rtapp sono facoltative.

Applicazioni di alto livello

Ogni dispositivo Azure Sphere ha un'applicazione di alto livello, che viene eseguita nel sistema operativo Azure Sphere e può usare le librerie di applicazioni. Un'applicazione di alto livello può:

  • Configurare e interagire con le periferiche di Azure Sphere, ad esempio i pin di input/output generico (GPIO), ricevitore/trasmettitori asincroni universali (UARTs) e altre interfacce

  • Comunicare con RTApps

  • Comunicare con Internet e i servizi basati sul cloud

  • Broker delle relazioni di trust con altri dispositivi e servizi tramite l'autenticazione basata su certificato

Un'applicazione di alto livello viene eseguita in un contenitore in modalità utente Normal World, come descritto in Che cos'è Azure Sphere?. Il contenitore di applicazioni supporta un sottoinsieme dell'ambiente POSIX e un set di librerie di applicazioni (Applibs) specifiche del sistema operativo Azure Sphere. Le librerie e le funzioni disponibili per le applicazioni di alto livello sono limitate per garantire che la piattaforma rimanga sicura e possa essere aggiornata facilmente. Le applicazioni possono accedere solo alle raccolte e ai servizi di runtime forniti da Microsoft. non sono disponibili né l'I/O diretto né l'accesso alla shell, tra gli altri vincoli. L'ambiente di sviluppo descrive il set di API di base e introduce le librerie di applicazioni Azure Sphere che supportano funzionalità specifiche del dispositivo.

Si prevede che le applicazioni di alto livello vengano eseguite continuamente e vengano riavviate automaticamente in caso di arresto o errore.

Creare un'applicazione di alto livello fornisce ulteriori informazioni sulle caratteristiche.

Applicazioni in tempo reale

Un dispositivo Azure Sphere può anche avere una o più applicazioni in tempo reale oltre alla sua applicazione di alto livello. Un'RTApp può:

  • Configurare e interagire con le periferiche integrate nella MCU di Azure Sphere, ad esempio i pin GPIO e gli UARTs
  • Comunicare con applicazioni di alto livello

LE RTApp possono essere eseguite su bare metal o con un sistema operativo in tempo reale (RTOS). Il repository Azure Sphere campioni su GitHub include un esempio bare-metal HelloWorld , nonché un esempio che dimostra la comunicazione inter-core tra high-level e RTApps. Il repository Azure Samples in GitHub contiene un esempio che mostra come usare Azure Sphere con Azure RTOS.

Ulteriori driver e campioni per RTApps destinati ai core in tempo reale M4 nel chip MT3620 sono disponibili su GitHub dai partner Azure Sphere MediaTek e Codethink.

Ogni RTApp viene eseguita isolata in un particolare core di I/O e può comunicare solo con un'applicazione di alto livello; non può usare Internet, le applicazioni Azure Sphere o altre funzionalità del sistema operativo Azure Sphere.

Creare un'applicazione in tempo reale che offre maggiori informazioni sulle caratteristiche e il processo di sviluppo per RTApps.

Caratteristiche comuni a tutte le applicazioni

Nonostante le significative differenze tra le app di alto livello e le RTApp, tutte le applicazioni Azure Sphere hanno alcuni aspetti in comune. È possibile sviluppare, compilare ed eseguire il debug di entrambi i tipi di applicazioni utilizzando Visual Studio o Visual Studio Code oppure richiamando CMake e Ninja con cli.

Inoltre, le seguenti funzionalità di sicurezza si applicano sia ad app di alto livello che RTApp:

Funzionalità dell'applicazione

Indipendentemente da dove viene eseguito, ogni applicazione Azure Sphere deve specificare i servizi esterni e le interfacce che richiede, ad esempio i requisiti di I/O e di rete, per impedire l'uso non autorizzato o imprevisto.

Le funzionalità dell'applicazione sono le risorse necessarie a un'applicazione. Le funzionalità dell'applicazione includono, tra le altre, le periferiche utilizzate dall'applicazione, gli host Internet a cui si connette un'applicazione di alto livello e l'autorizzazione per modificare la configurazione di rete. Ogni applicazione deve avere un manifesto dell'applicazione che identifichi queste risorse.

Funzionalità del dispositivo

Una funzionalità del dispositivo consente un'attività specifica del dispositivo. Le funzionalità del dispositivo sono concesse dal servizio di sicurezza Azure Sphere. Per impostazione predefinita, i chip Azure Sphere non hanno funzionalità del dispositivo. Esistono due tipi principali di funzionalità del dispositivo: appSviluppo della funzionalità dispositivo e funzionalità del dispositivo diservicing sul campo .

AppLa funzionalità di sviluppo del dispositivo cambia il tipo di firma attendibile del dispositivo. Per impostazione predefinita, i dispositivi Azure Sphere considera attendibili i pacchetti di immagini firmati con firma di produzione, ma non i pacchetti di immagini firmati con SDK. Di conseguenza, non è possibile trasferire in sideload di un pacchetto di immagini firmato da SDK in un dispositivo Azure Sphere che non dispone di questa funzionalità. Quando la funzionalità appSviluppo è presente, tuttavia, il dispositivo considera attendibili i pacchetti di immagini firmati con SDK. Consente inoltre di avviare, arrestare, eseguire il debug o rimuovere un'applicazione dal dispositivo. In sintesi, la funzionalità di sviluppo di applicazioni deve essere presente nel dispositivo prima di poter:

  • Sideload an image package that was built by Visual Studio or the azsfera image-package command.
  • Avviare, arrestare, eseguire il debug o rimuovere un pacchetto di immagini dal dispositivo Azure Sphere, indipendentemente da come è firmato il pacchetto di immagini.

Il comando di abilitazione-sviluppo del dispositivo az sphere crea e applica la funzionalità appSviluppo e impedisce al dispositivo di ricevere gli aggiornamenti delle applicazioni cloud.

La funzionalità Diservicing campo consente comunicazioni da dispositivo a computer nei dispositivi in stato di produzione DeviceComplete. Con questa funzionalità, è possibile sideload immagini firmate di produzione, ma non eliminarle. È possibile avviare e arrestare le applicazioni, ma non eseguirne il debug. È anche possibile eseguire attività di manutenzione di routine, ad esempio la configurazione di una rete Wi-Fi. È destinato all'uso a breve termine durante una sessione di manutenzione, un periodo limitato durante il quale l'accesso al dispositivo è concesso per ogni operazione.

Requisiti di firma e distribuzione

Tutti i pacchetti di immagini distribuiti in un dispositivo Azure Sphere devono essere firmati. Azure Sphere SDK e pacchetti di immagini con segno di comando az sphere per il test utilizzando una chiave di firma SDK. I dispositivi Azure Sphere si fidano di questa chiave solo se è presente anche la funzionalità Dispositivo di sviluppo dell'app .

I pacchetti di immagini con i segni di produzione del servizio azure sphere security quando vengono caricati nel cloud. I pacchetti di immagini con firma di produzione possono essere sideload o caricati dal cloud.

Per impedire l'installazione di software canaglia, le applicazioni possono essere caricate in un dispositivo Azure Sphere solo in due modi:

  • Sideload, che può essere utilizzato sia per lo sviluppo e test software che per la manutenzione sul campo dei dispositivi. Il sideload per lo sviluppo e il test di software richiede l'appLa capacità del dispositivo di sviluppo. Il sideload per la manutenzione dei campi richiede la funzionalità del dispositivo di manutenzione dei campi e i pacchetti di immagini firmati per la produzione. Sia Visual Studio che Visual Studio Code sideload applicazioni durante lo sviluppo e il debug; è anche possibile eseguire il sideload manualmente usando la cli di Azure.

  • Aggiornamento cloud, che può essere eseguito solo dal servizio di sicurezza Azure Sphere. Usare azure CLI per creare e gestire distribuzioni cloud.

Applicazioni partner

Le applicazioni che interagiscono tra loro possono essere considerate applicazioni partner e quindi possono essere sideload separate. Quando si esegue il sideload di un'applicazione che ha un partner, l'applicazione partner rimane nel dispositivo Azure Sphere se è già stata distribuita. Ogni applicazione dichiara un elenco dei propri partner nella configurazione del progetto.

Per aggiungere partner alla configurazione del progetto CMake, specificare l'ID componente dell'app partner nel campo partnerComponents della sezione delle configurazioni del file launch.vs.json o .vscode/launch.json:

"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Le app di alto livello e le RTApp che comunicano tra loro devono essere identificate come partner. Azure Sphere non supporta la comunicazione tra coppie di app di alto livello o coppie di RTApp.