Sdílet prostřednictvím


Přehled aplikací Azure Sphere

Zařízení Azure Sphere můžou spouštět dva typy aplikací:

  • Aplikace vysoké úrovně běží v kontejnerech v operačním systému Azure Sphere
  • Aplikace podporující real-time (RTApps) běží na holých počítačích nebo s operačním systémem v reálném čase (RTOS) na jádrech v reálném čase

Pro každé zařízení Azure Sphere se vyžaduje aplikace vysoké úrovně. RtApps jsou volitelné.

Aplikace vysoké úrovně

Každé zařízení Azure Sphere má aplikaci vysoké úrovně, která běží v operačním systému Azure Sphere a může používat knihovny aplikací. Aplikace vysoké úrovně může:

  • Konfigurace a interakce s periferními zařízeními Azure Sphere, jako jsou piny GPIO (General-Purpose Input/Output), univerzální asynchronní přijímač/vysílače (UART) a další rozhraní

  • Komunikace s RTApps

  • Komunikace s internetem a cloudovými službami

  • Vztahy důvěryhodnosti zprostředkovatele s jinými zařízeními a službami prostřednictvím ověřování na základě certifikátů

Aplikace vysoké úrovně běží v kontejneru v uživatelském režimu Normální svět, jak je popsáno v tématu Co je Azure Sphere?. Kontejner aplikace podporuje podmnožinu prostředí POSIX a sadu knihoven aplikací (Applibs), které jsou specifické pro operační systém Azure Sphere. Knihovny a funkce, které jsou dostupné pro aplikace vysoké úrovně, jsou omezené, aby se zajistilo, že platforma zůstane zabezpečená a dá se snadno aktualizovat. Aplikace mají přístup pouze ke knihovnám a službám za běhu, které poskytuje Microsoft. Kromě jiných omezení nejsou k dispozici přímé vstupně-výstupní operace souborů ani přístup k prostředí. Vývojové prostředí popisuje základní sadu rozhraní API a představuje knihovny aplikací Azure Sphere, které podporují funkce specifické pro zařízení.

Očekává se, že aplikace vysoké úrovně budou běžet nepřetržitě, a pokud se zastaví nebo selžou, automaticky se restartují.

Další informace o funkcích najdete v článku Vytvoření aplikace vysoké úrovně.

Aplikace podporující v reálném čase

Zařízení Azure Sphere může mít kromě aplikace vysoké úrovně také jednu nebo více aplikací podporujících real-time. Aplikace RT Může:

  • Konfigurace a interakce s periferními zařízeními integrovanými do mcu Azure Sphere, jako jsou piny GPIO a UART
  • Komunikace s aplikacemi vysoké úrovně

RTApps se dá spustit buď na holých počítačích, nebo s operačním systémem v reálném čase (RTOS). Úložiště ukázek Azure Sphere na GitHubu obsahuje holou ukázku HelloWorld a také ukázku, která demonstruje komunikaci mezi jádry mezi aplikacemi na vysoké úrovni a RTApps. Úložiště Azure Samples na GitHubu obsahuje ukázku, která ukazuje, jak používat Azure Sphere s Azure RTOS.

Další ovladače a ukázky pro RTApps, které cílí na jádra M4 v reálném čase na čipu MT3620, jsou k dispozici na GitHubu od partnerů Azure Sphere MediaTek a Codethink.

Každá aplikace RTApp běží izolovaně na konkrétním vstupně-výstupním jádru a může komunikovat pouze s aplikací vysoké úrovně. Nemůže používat internet, applibs Azure Sphere ani jiné funkce operačního systému Azure Sphere.

Vytvoření aplikace podporující v reálném čase poskytuje další informace o funkcích a procesu vývoje pro RTApps.

Funkce společné pro všechny aplikace

I přes významné rozdíly mezi aplikacemi vysoké úrovně a aplikacemi RTApps mají všechny aplikace Azure Sphere některé společné věci. Oba typy aplikací můžete vyvíjet, sestavovat a ladit pomocí sady Visual Studio nebo Visual Studio Code nebo vyvoláním CMake a Ninja pomocí rozhraní příkazového řádku.

Kromě toho platí pro aplikace vysoké úrovně i RTApps následující funkce zabezpečení:

Možnosti aplikací

Bez ohledu na to, kde běží, musí každá aplikace Azure Sphere zadat externí služby a rozhraní, která vyžaduje , například požadavky na vstupně-výstupní operace a síť, aby se zabránilo neoprávněnému nebo neočekávanému použití.

Možnosti aplikace jsou prostředky, které aplikace vyžaduje. Mezi možnosti aplikace patří mimo jiné periferie, které aplikace používá, internetové hostitele, ke kterým se připojuje aplikace vysoké úrovně, a oprávnění ke změně konfigurace sítě. Každá aplikace musí mít manifest aplikace , který tyto prostředky identifikuje.

Možnosti zařízení

Funkce zařízení umožňuje aktivitu specifickou pro zařízení. Možnosti zařízení uděluje služba zabezpečení Azure Sphere. Ve výchozím nastavení nemají čipy Azure Sphere žádné možnosti zařízení. Existují dva hlavní typy funkcí zařízení: schopnost zařízení appDevelopment a schopnost zařízení fieldServicing .

Funkce zařízení appDevelopment mění typ podepisování, kterému zařízení důvěřuje. Ve výchozím nastavení zařízení Azure Sphere důvěřují balíčkům imagí podepsaným v produkčním prostředí, ale nedůvěřují balíčkům imagí podepsaným sadou SDK. V důsledku toho nemůžete balíček imagí podepsaný sadou SDK načíst bokem do zařízení Azure Sphere, které tuto možnost nemá. Pokud je ale funkce appDevelopment k dispozici, zařízení důvěřuje balíčkům imagí podepsaných sadou SDK. Kromě toho umožňuje spustit, zastavit, ladit nebo odebrat aplikaci ze zařízení. Stručně řečeno, funkce vývoje aplikací musí být na zařízení přítomná, abyste mohli:

  • Zkušební načtení balíčku image vytvořeného sadou Visual Studio nebo příkazem azsphere image-package
  • Spuštění, zastavení, ladění nebo odebrání balíčku image ze zařízení Azure Sphere bez ohledu na to, jak je balíček image podepsaný.

Příkaz az sphere device enable-development vytvoří a použije funkci appDevelopment a zabrání zařízení přijímat aktualizace cloudových aplikací.

Funkce fieldServicing umožňuje komunikaci zařízení-počítač na zařízeních, která jsou ve výrobním stavu DeviceComplete. Díky této funkci můžete image podepsané v produkčním prostředí načíst bokem, ale nemůžete je odstranit. Aplikace můžete spouštět a zastavovat, ale ne je ladit. Můžete také provádět rutinní úlohy údržby, jako je konfigurace Wi-Fi. Je určen pro krátkodobé použití během servisní relace, po omezenou dobu, během které se uděluje přístup k zařízení na základě jednotlivých operací.

Požadavky na podepisování a nasazení

Všechny balíčky imagí nasazené do zařízení Azure Sphere musí být podepsané. Sada Azure Sphere SDK a příkaz az sphere image-package podepisují balíčky image pro testování pomocí podpisového klíče sady SDK. Zařízení Azure Sphere důvěřují tomuto klíči pouze v případě, že je k dispozici také funkce zařízení appDevelopment .

Služba zabezpečení Azure Sphere v produkčním prostředí podepisuje balíčky imagí, když je nahrajete do cloudu. Balíčky imagí podepsané v produkčním prostředí je možné načíst bokem nebo načíst z cloudu.

Aby se zabránilo instalaci podvodného softwaru, je možné na zařízení Azure Sphere načíst aplikace pouze dvěma způsoby:

  • Zkušební načítání, které lze použít jak pro vývoj a testování softwaru, tak pro údržbu zařízení v terénu. Zkušební načítání pro vývoj a testování softwaru vyžaduje schopnost zařízení appDevelopment. Zkušební načtení pro údržbu pole vyžaduje schopnost zařízení fieldServicing a balíčky imagí podepsaných v produkčním prostředí. Visual Studio i Visual Studio Code načítá aplikace bokem během vývoje a ladění. Můžete také provést zkušební načtení ručně pomocí Azure CLI.

  • Cloudová aktualizace, kterou může provádět pouze služba zabezpečení Azure Sphere. K vytváření a správě cloudových nasazení použijte Azure CLI.

Partnerské aplikace

Aplikace, které spolupracují, je možné považovat za partnerské aplikace a pak je možné je samostatně načíst bokem. Při zkušebním načtení aplikace, která má partnera, zůstane partnerka na zařízení Azure Sphere, pokud už je nasazené. Každá aplikace deklaruje seznam svých partnerů v konfiguraci projektu.

Pokud chcete přidat partnery do konfigurace projektu CMake, zadejte ID komponenty partnerské aplikace v poli PartnerComponents v části konfigurace souboru launch.vs.json nebo souboru .vscode/launch.json:

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

Aplikace vysoké úrovně a aplikace RT, které spolu vzájemně komunikují, musí být identifikovány jako partneři. Azure Sphere nepodporuje komunikaci mezi páry aplikací vysoké úrovně nebo dvojicemi aplikací RTApps.