Azure Sphere uygulamalarına genel bakış

Azure Sphere cihazları iki tür uygulama çalıştırabilir:

  • Üst düzey uygulamalar Azure Sphere işletim sisteminde kapsayıcılı olarak çalışır
  • Gerçek zamanlı özellikli uygulamalar (RTApps) çıplak bilgisayarlarda veya gerçek zamanlı çekirdeklerde gerçek zamanlı işletim sistemiyle (RTOS) çalışır

Her Azure Sphere cihazı için üst düzey bir uygulama gereklidir; RTApps isteğe bağlıdır.

Üst düzey uygulamalar

Her Azure Sphere cihazının, Azure Sphere işletim sisteminde çalışan ve uygulama kitaplıklarını kullanabilen üst düzey bir uygulaması vardır. Üst düzey bir uygulama:

  • Genel amaçlı giriş/çıkış (GPIO) pinleri, evrensel zaman uyumsuz alıcı/vericiler (UART) ve diğer arabirimler gibi Azure Sphere çevre birimlerini yapılandırma ve bunlarla etkileşim kurma

  • RTApps ile iletişim kurma

  • İnternet ve bulut tabanlı hizmetlerle iletişim kurma

  • Sertifika tabanlı kimlik doğrulaması aracılığıyla diğer cihazlar ve hizmetlerle aracı güven ilişkileri

Üst düzey bir uygulama, Azure Sphere nedir? bölümünde açıklandığı gibi Normal Dünya kullanıcı modundaki bir kapsayıcıda çalışır. Uygulama kapsayıcısı, POSIX ortamının bir alt kümesini ve Azure Sphere işletim sistemine özgü bir dizi uygulama kitaplığını (Applibs) destekler. Üst düzey uygulamaların kullanabileceği kitaplıklar ve işlevler, platformun güvenli kalmasını ve kolayca güncelleştirilebilmesini sağlamak için kısıtlanır. Uygulamalar yalnızca Microsoft'un sağladığı kitaplıklara ve çalışma zamanı hizmetlerine erişebilir; diğer kısıtlamaların yanında doğrudan dosya G/Ç veya kabuk erişimi de kullanılamaz. Geliştirme ortamı temel API kümesini açıklar ve cihaza özgü özellikleri destekleyen Azure Sphere uygulama kitaplıklarını tanıtır.

Üst düzey uygulamaların sürekli çalışması beklenir ve durur veya başarısız olursa otomatik olarak yeniden başlatılır.

Üst düzey bir uygulama oluşturmak , özellikler hakkında daha fazla bilgi sağlar.

Gerçek zamanlı uyumlu uygulamalar

Azure Sphere cihazının üst düzey uygulamasına ek olarak bir veya daha fazla gerçek zamanlı uygulama da olabilir. RTApp şu şekilde olabilir:

  • GPIO pinleri ve UART'ler gibi Azure Sphere MCU ile tümleştirilmiş çevre birimlerini yapılandırma ve bunlarla etkileşim kurma
  • Üst düzey uygulamalarla iletişim kurma

RTApps çıplak olarak veya gerçek zamanlı bir işletim sistemiyle (RTOS) çalışabilir. GitHub'da Azure Sphere örnek deposu, çıplak bir HelloWorld örneğinin yanı sıra üst düzey ve RTApps arasındaki çekirdekler arası iletişimi gösteren bir örnek içerir. GitHub'da Azure Örnekleri deposu, Azure RTOS ile Azure Sphere'ın nasıl kullanılacağını gösteren bir örnek içerir.

MT3620 yongasında M4 gerçek zamanlı çekirdeklerini hedefleyen RTApps için ek sürücüler ve örnekler, Azure Sphere iş ortakları MediaTek ve Codethink'den GitHub'da kullanılabilir.

Her RTApp belirli bir G/Ç çekirdeğinde yalıtılmış olarak çalışır ve yalnızca üst düzey bir uygulamayla iletişim kurabilir; İnternet, Azure Sphere uygulamaları veya Azure Sphere işletim sisteminin diğer özelliklerini kullanamaz.

Gerçek zamanlı uyumlu bir uygulama oluşturma , RTApps özellikleri ve geliştirme süreci hakkında daha fazla bilgi sağlar.

Tüm uygulamalar için ortak özellikler

Üst düzey uygulamalarla RTApps arasındaki önemli farklılıklara rağmen, tüm Azure Sphere uygulamalarının bazı ortak öğeleri vardır. Visual Studio veya Visual Studio Code kullanarak ya da CLI kullanarak CMake ve Ninja'yı çağırarak her iki uygulama türünü de geliştirebilir, derleyebilir ve hatalarını ayıklayabilirsiniz.

Ayrıca, aşağıdaki güvenlik özellikleri hem üst düzey hem de RTApps için geçerlidir:

Uygulama özellikleri

Nerede çalıştığına bakılmaksızın, her Azure Sphere uygulamasının yetkisiz veya beklenmeyen kullanımları önlemek için gerektirdiği dış hizmetleri ve arabirimleri (örneğin, G/Ç ve ağ gereksinimleri) belirtmesi gerekir.

Uygulama özellikleri , bir uygulamanın gerektirdiği kaynaklardır. Uygulama özellikleri arasında uygulamanın kullandığı çevre birimleri, üst düzey bir uygulamanın bağlandığı İnternet konakları ve ağ yapılandırmasını değiştirme izni bulunur. Her uygulamanın bu kaynakları tanımlayan bir uygulama bildirimi olmalıdır.

Cihaz özellikleri

Cihaz özelliği, cihaza özgü etkinliği etkinleştirir. Cihaz özellikleri Azure Sphere Güvenlik Hizmeti tarafından verilir. Varsayılan olarak Azure Sphere yongalarının cihaz özelliği yoktur. İki ana cihaz özelliği türü vardır: appDevelopment cihaz özelliği ve fieldServicing cihaz özelliği.

appDevelopment cihaz özelliği, cihazın güvendiği imzalama türünü değiştirir. Varsayılan olarak, Azure Sphere cihazları üretim imzalı görüntü paketlerine güvenir ancak SDK ile imzalanan görüntü paketlerine güvenmez. Sonuç olarak, SDK imzalı görüntü paketini bu özelliğe sahip olmayan bir Azure Sphere cihazına dışarıdan yükleyemezsiniz. Ancak appDevelopment özelliği mevcut olduğunda cihaz SDK imzalı görüntü paketlerine güvenir. Ayrıca, bir uygulamayı başlatmanıza, durdurmanıza, hata ayıklamanıza veya cihazdan kaldırmanıza olanak tanır. Özetle, şunları yapabilmeniz için önce uygulama geliştirme özelliğinin cihazda mevcut olması gerekir:

az sphere device enable-development komutu appDevelopment özelliğini oluşturur ve uygular ve cihazın bulut uygulaması güncelleştirmelerini almasını engeller.

fieldServicing özelliği, DeviceComplete üretim durumundaki cihazlarda cihazdan bilgisayara iletişimlere izin verir. Bu özellik sayesinde, üretim imzalı görüntüleri dışarıdan yükleyebilir, ancak silemezsiniz. Uygulamaları başlatabilir ve durdurabilirsiniz, ancak bunların hatalarını ayıklayamayabilirsiniz. Wi-Fi yapılandırması gibi rutin bakım görevlerini de gerçekleştirebilirsiniz. Bir bakım oturumu sırasında kısa süreli kullanıma yöneliktir; bu süre boyunca cihaza erişim her işlem için verilir.

İmzalama ve dağıtım gereksinimleri

Azure Sphere cihazına dağıtılan tüm görüntü paketlerinin imzalanması gerekir. Azure Sphere SDK'sı ve az sphere image-package komutu sign image packages for testing by an SDK signing key. Azure Sphere cihazları bu anahtara yalnızca appDevelopment cihaz özelliği de varsa güvenir.

Azure Sphere Güvenlik Hizmeti, görüntü paketlerini buluta yüklediğinizde imzalar. Üretim imzalı görüntü paketleri dışarıdan yüklenebilir veya buluttan yüklenebilir.

Sahte yazılımların yüklenmesini önlemek için uygulamalar azure Sphere cihazına yalnızca iki yolla yüklenebilir:

  • Dışarıdan yükleme, hem yazılım geliştirme ve test hem de cihazların alan bakımı için kullanılabilir. Yazılım geliştirme ve test için dışarıdan yükleme için appDevelopment cihaz özelliği gerekir. Alan bakımı için dışarıdan yükleme için fieldServicing cihaz özelliği ve üretim imzalı görüntü paketleri gerekir. Geliştirme ve hata ayıklama sırasında hem Visual Studio hem de Visual Studio Code uygulamaları dışarıdan yükleyebilirsiniz; ayrıca Azure CLI'yi kullanarak el ile dışarıdan yükleyebilirsiniz.

  • Yalnızca Azure Sphere Güvenlik Hizmeti tarafından gerçekleştirilen bulut güncelleştirmesi. Bulut dağıtımları oluşturmak ve yönetmek için Azure CLI'yi kullanın.

İş ortağı uygulamaları

Birlikte çalışan uygulamalar iş ortağı uygulamaları olarak kabul edilebilir ve ardından ayrı ayrı yüklenebilir. İş ortağı olan bir uygulamayı dışarıdan yüklediğinizde, iş ortağı uygulaması zaten dağıtılmışsa Azure Sphere cihazında kalır. Her uygulama, proje yapılandırmasında iş ortaklarının listesini bildirir.

CMake proje yapılandırmasına iş ortakları eklemek için, launch.vs.json veya .vscode/launch.json dosyasının yapılandırmalar bölümünün partnerComponents alanında iş ortağı uygulamasının bileşen kimliğini belirtin:

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

Birbiriyle iletişim kuran üst düzey uygulamalar ve RTApps iş ortağı olarak tanımlanmalıdır. Azure Sphere, üst düzey uygulama çiftleri veya RTApps çiftleri arasındaki iletişimi desteklemez.