Gerçek zamanlı işletim sistemleri için, gömülü cihazlar için giriş

Gömülü sistemler, modern teknolojinin arka kemiğini oluşturur, tıbbi monitörlerden ve otomotiv kontrollerinden akıllı ev merkezlerine kadar sessiz bir şekilde çalışır ve güvenilir bir fitness izleyicisi sağlar. Bu sistemlerin çoğu gerçek zamanlı işletim sistemi (RTOS), bu daimist planlama, inter-task iletişim sağlar ve donanım soyutlama sağlar. Doğru RTOS, gelişim, sistemli bir uygulama alanı, güç tüketimi ve uzun süreli bakım sistemleri ile ilgili temel bir uygulama alanı sağlar.

FreeRTOS: The Light Workhorse

Origins ve Felsefe

FreeRTOS 2003 yılında küçük, çekirdekli bir RTOS, çekirdeklileri çok sınırlı RAM ve flaşla korumak için tasarlanmış küçük bir yazılım olarak başladı.The philosophy remains: Richard Barry, önceliksiz minimum ayak izi ve portability kolaylığı sağladı.In 2017, Amazon Web Services, FreeRTOS ve yeniden markalandı AWS IoT entegrasyonu ile, çekirdeklileri korumak için kütüphaneler ekledi: felsefe kalırken, küçük 8-bit cihazlardan 32-bit ARM Cortex-M çekirdeklerine kadar çalıştırabilecek bir kaya-solid sağlar.

Coreelek Özellikler

FreeRTOS çekirdeği, boş zaman, kooperatif ve karma planlama politikaları sunuyor. Görevler kendi yığınları ve önceliği ile bağımsız iplikler olarak tanımlanır.Programcı, en yüksek öncelikli görevin çalıştırılmasını sağlar, zaman-slicing for eşit-priority tasks. Inter-task iletişim ve senkronizasyon kuyruklar ile alınır, semaphores (binary, say, mutex), ve etkinlik grupları.

FreeRTOS, doğrudan uygulamanıza derlediğiniz küçük bir C kaynağı dosyaları olarak dağıtılır. Sistem veya karmaşık yapılandırma katmanı yoktur - sadece çekirdek kaynağı içerir, yapılandırılan parametreleri tanımlayabilirsiniz:0) ve yazı görevlerine başlayın.Bu minimalist yaklaşım hem güç hem de zayıftır: geliştiricilerin entegrasyonunu tam bir kontrol verir, orta dikkat eder ve ağ yığınlarını manuel olarak tanımlar.

Donanım Desteği ve Porting

FreeRTOS, MCU mimarlıklarının muazzam bir yelpazesini destekliyor: ARM Cortex-M/R/A, AVR, PIC, MSP430, RISC-V, Xtensa (Epresssif ESP32) ve birçok daha resmi çekirdek indirme, yüzlerce geliştirme kurulu için önceden yapılandırılmış demo projeleri içeriyor.

Ekosistem ve Ticari Kullanım

FreeRTOS, herhangi bir gömülü RTOS'un en büyük geliştirici topluluğuna sahiptir. Uzun tarihi bol öğreticiler, kitaplar ve topluluk odaklı kütüphaneler anlamına gelir. AWS, IoT için bir yazılım kütüphanesi (MQTT, cihaz gölgeleri, filo düzenleme) sunar, böylece FreeRTOS ile entegre edilir, bulut bağlantılı ürünler için popüler hale getirir. Birçok ticari derleyici ve IDEs (IAR, Keil, STM32CubeIDE) yerleşik ücretsiz olarak inşa edilmiş-in FreeRTOS desteği içerir.

Zephyr: Scalable, modüler RTOS

Connected Cihazlar için Modern Tasarım

Zephyr, 2016 yılında Linux Vakfı altında işbirliğine dayalı bir proje olarak doğdu, daha önceki Rocket çekirdeği üzerine inşa edildi. Tasarımcıları IoT çağı için bir RTOS uygun hale getirmeyi amaçladı: oldukça modüler, güvenlik-aware ve küçük sensör düğümlerinden daha karmaşık multi-core sistemlere ölçeklendirme yeteneğine sahip. Zephyr sadece bir çekirdek değil; bu, yerleşik cihaz sürücüleri, ağlayıcıları, ağlayıcıları, ağlayıcıları, dosya sistemleri ve güç yönetim çerçeveleri.

Sistem kurmak ve yapılandırma

Zephyr, yalnızca gerekli kaynak dosyalarında otomatik olarak üretilen bir CMake tabanlı bir sistem kullanır, uygulama ihtiyaçlarını tam zamanlı yapılandırma için K yapılandırır. Bu yaklaşım, Linux çekirdeğinden ödünç alan, geliştiriciler USB cihazı desteği içeren bir bina yapılandırır, ancak gerekli kaynak dosyalarında otomatik olarak çekilir ve FATIN dosyasında otomatik olarak optimize edilir. -Zephyr sadece ilgili sürücü ve yığın bileşenleri içeren bir ikiliyi derlemeye başlar.

In-Built Networking and Protokolü Support

Zephyr'in standout özelliklerinden biri, yerel ağ alt sistemidir. Birden fazla ağ yığınını (IPv4, IPv6, 6LoWPAN), birden fazla taşıma protokolleri (TCP, UDP, TLS/DTLS), ve geniş bir uygulama-katlı protokolleri (MQTT, CoAP, LwM2M, CoAP, ve daha fazlası) ZephyrOS bağlantılarını önemli ölçüde azaltır ve aktif olarak muhafaza edilir.

Tasarıma göre Güvenlik

Zephyr ilk sınıf bir gereklilik olarak güvenlikle tasarlanmıştır. Sistem, MPU /MMU'yu desteklenen platformlarda kullanarak aşırı korumayı ve zaman kontrollerini sürdürmenizi sağlar. Linux Foundation ayrıca bir güvenlik süreci ve çekirdek nesneler için izin bazlı erişim kontrolü modelini korur.

Device Sürücü Model

Zephyr tüm donanım platformlarında tutarlı bir sürücü API uygular. Her sürücü standart bir arayüz uygular (örneğin, GPIO, SPI, I2C, watchdog, pinctrl) ve cihaz ağacı aracılığıyla keşfedildi.

Head-to-Head FreeRTOS ve Zephyr Karşılaştırması

Scheduling ve Real-Time Davranış

FreeRTOS ve Zephyr, önceden belirlenmiş bir önceliklendirme politikası sunuyor: öncelikli olarak (daha iyi bir zamanlama) işbirliği ve hatta son derece gerçek zamanlı görevler için basit bir öncelik kuyruğunu kullanıyor. Zephyr aynı zamanda multi-core sistemleri (SMP) ARM Cortex-A ve daha sonra RISC-V üzerinde, FreeRTOS SMP desteği var ancak daha az olgun.

Zephyr

Zephyr'in ön boş zamanlama politikası, uzun süre boyunca kontrol döngüsü için gerekli olan mekanizma ve zaman zaman zamansal görevleri kullanarak son derece daha iyi bir kesintiye uğrayabilir.For hard real-time control loops (e.g., motor control at 10 kHz), FreeRTOS'un minimum yüksek derecede düşük yüksek oranda verimsiz, Zephyr'in ekstra özellikleri bu tür kısıtlanmış görevler için gereksiz olabilir.

Memory Footprint and Resource Use

FreeRTOS küçük ayak izi için efsanevidir. En az çekirdek yapılandırması, Cortex-M0'da flaş ve yaklaşık 2-3 RAM'ta kadar kullanabilir. ancak, cihaz yığınları ve oturum açma, Zephyr'in en küçük statik yapısı (en az merhaba-dünyası, hiçbir sürücü olmadan, hiçbir ağ olmadan, hiçbir kayıt olmadan) daha kolay hale gelir.Invert OS, 256 diskoda daha pratik bir seçim için kalır.

Donanım Özeti ve Kurul Destek

FreeRTOS, minimum donanım soyutlama sağlar - Geliştirmeciler MCU satıcılarının donanım soyutlama katmanına (HAL) güvenmek veya düşük seviyeli sürücüleri kendileri yazmak. Zephyr gemileri, sistem otomatik olarak cihaz ağacı tanımlarını ve sürücüleri birçok popüler gelişim kuruluna göre seçmek (nRF52, STM32, i.MX RT, ESP32, SiLabs EFR32 ve birçok daha fazlası). Zephyr inşa sistemi otomatik olarak cihaz ağacının arkasındaki doğru sürücüyü seçin.

Ağlama ve IoT protokolleri

Zephyr'in ağı çok daha kapsamlı bir out-of-the-box. tam bir IPv4 /IPv6 yığını, BSD soket API, TLS 1.2/1.3, DTLS, MQTT (client ve sunucu), CoRTAP, LwM2M ve API komutları ile hücresel modemler için destek ATOS+TCP, üçüncü taraf ağ yığınları için - en yaygın olarak kullanılmaktadır.

Güvenlik Özellikleri Karşılaştırmalı

Zephyr'in güvenlik duruşu, yönetim kurulunda daha güçlü. Anahtar özellikler şunları içerir:

  • [FONT:0) Güvenli Çığ [Döntgen: 0,3) MCUboot ile [Döntilmiş) - ROM'dan başvuru için güven zincirini doğruladı.
  • [FONT:0]Memory koruması[[Dönetici: 1 ) MPU (on Cortex-M23/M33/M85) ve MMU (on Cortex-A) kullanılarak).
  • [FONT=0)Kernel nesne izni kontrolü) - bireysel görevler semaforlar, kuyruklar vb. farklı erişim hakkına sahip olabilir.
  • [FONT=0]cryptografik hız[[Dönetici:0)[Dönetici:0)[FONT=FONT=FONT=[FONT=FONT=0)))
  • [FONT:0)Entropy ve rastgele sayı nesli Özel sürücüler ve donanım TRNG aracılığıyla.

FreeRTOS, AWS IoT Device Defender, PKCS #11 kütüphaneleri ve MCUboot'u ayrı ayrı bir şekilde ekleyerek benzer güvenlik seviyelerini elde edebilir, ancak bu manuel entegrasyon ve dikkatli yapılandırma gerektirir. Zephyr'in bütünleşik yaklaşımı yanlış yapılandırma riskini azaltır.

Geliştirme İş Akışı ve Aracı

FreeRTOS: Basit Projeler için Hızlı Başlangıç

FreeRTOS ile başlamak basittir: Çekirdek kaynağını indirin, bir iş FreeRTOS projesini dakikalar içinde oluşturun.Debugging standart JTAG / SWD araçları ve IDE'nin thread-aware debugger. FreeRTOS belirli bir yapı sistemi görevlendirmez; CMake, makyaj veya IDE'nin yerli yapısı üzerinde çalışan bir çalışma sistemi kullanabilirsiniz.

Zephyr: Steeper Learning Curve, Greater Discipline

Zephyr daha yapılandırılmış bir gelişim akışı uygular. Zephyr SDK (toolchain, Python senaryoları, batı meta-build aracı) ile yapılır. Tüm projeler, Zephyr kaynağı ve herhangi bir dış modüller getiren bir iş alanı kullanır.Konferans K configure (menu tabanlı veya .conf dosyaları) ve donanım tanımları hızlı bir şekilde Ninja VS kodu ile entegre edilir.

Test ve Sürekli Bütünleşme

Zephyr, yerleşik bir test çerçevesi içerir ([[[Dönetici: 4 ) ve donanım-in desteği ile yapılan-loop testlerinin yanı sıra, FreeRTOS resmi bir test çerçevesi yoktur; geliştiriciler üçüncü taraf test kullanımlarına güvenir.

Licensing ve Ticari Implikasyonlar

FreeRTOS ikili lisanslıdır: çekirdeğin kendisi MIT lisansı altındayken, AWS IoT kütüphaneleri Amazon Software lisansı altındayken, bu izinli lisans, açık kaynak yükümlülükleri olmadan özel kullanım sağlar. Zephyr, birçok BSD tarzı lisansına benzer olan Apache 2.0 lisansı kullanır.

Platform için kilit bir nokta yoktur, ancak Zephyr'in modüler ekosistemi, sürücüleri ve orta dikkatleri şirket genelinde paylaşmayı teşvik eder - Linux çekirdeğinin çalışma şekline benzer. Bu, topluluk tarafından işletilen karmaşık ürünler oluşturmak için daha düşük maliyetler olabilir.

Vakaları kullanın: FreeRTOS vs. Zephyr

FreeRTOS Fits En İyi Zaman:

  • Derin bir kaynak için minimum bir çekirdek ihtiyacınız var (örneğin, 32 KB flaşı altında 8bit veya 16 bit cihaz).
  • Proje tek bir ağ yığını kullanır (örneğin, sadece Wi-Fi veya sadece BLE) satıcılar tarafından oluşturulan kütüphaneler ile.
  • Ekibiniz FreeRTOS ve mevcut kod üsleri ile derin aşinalığa sahiptir.
  • En yüksek determinizm gerektirir ve zor gerçek zamanlı kontrol için geç kalmışlığı en düşük kesim gerektirir.
  • Ürün, aşırı hava güncelleştirme gereksinimleri olmayan basit bir sensör node veya eylemcidir.

Zephyr Fits En İyi Zaman:

  • Cihazınız birden fazla bağlantı seçeneği gerektirir (sol + Wi-Fi + hücresel + Ethernet).
  • Güvenli bir boot, uzaktan bellek güncelleştirmeleri (MCUboot ve SMP sunucusu ile) ve sağlam bir güvenlik modeline ihtiyacınız var.
  • Birden fazla donanım varyantları olan bir ürün ailesi geliştiriyorsunuz, taşınabilir sürücü kodunu gerektiren.
  • Linux çekirdek konseptleri (devicetree, K configure) ile deneyimlenen bir takım var ve benzer bir iş akışı istiyorsunuz.
  • Madde, Thread veya LwM2M gibi standartlar ile uyum bir zorunluluktur.

Gerçek Dünya Performansı

Performansı karşılaştırdığınızda, iki en kötü dosya yürütme zamanını (WCET) ve ortalama güç tüketimi dikkate almanız gerekir. Zephyr'in tickless idle, FreeRTOS'un kenetsiz modu nedeniyle daha yeteneklidir, çünkü Zephyr, bir sonraki çekirdek süresine kadar zaman ayırabilir, sadece sabit bir birden fazla kez değil.Birkaç kez gerçekleşirken Zephyr, daha akıllı idle işlemine göre% 10-20 daha uzun süre boyunca çalışır.

Ağ sayesinde Zephyr'in yerli IP yığını ( Linux ağ yığınına dayalı) FreeRTOS'ta daha yüksek paket oranları tutabilir, özellikle de IPv6 veya 6LoWPAN ile testlerde, MQTT'yi Wi-Fi üzerinden iletmektedir, Zephyr elde etti -1.2 Mbps'ye karşı FreeRTOS'a karşı daha fazla paket oranları tutabilir.

Üçüncü bölümlü bağlantılar ve daha fazla okuma

  • [FONT=0]FreeRTOS Resmi Web[[Dönetici: 1 ) - resmi çekirdek indirmeleri, API referansı ve AWS IoT entegrasyonu belgeleri.
  • [FONT:0]Zephyr Project Resmi Sitesi - Belgeler, yönetim desteği ve başlangıç kılavuzları.
  • [FONT=0) RTOS Licensing Modelleri[Döneticileri) ile ilgili beyaz bir kağıt (daha derin okuma için yararlı değil).
  • [FONT=0)Wikipedia: Gerçek Zamanlı İşletim Sistemlerinin Karşılaştırması), FreeRTOS ve Zephyr dahil birçok RTOS seçeneğinde özellikleri karşılaştıran kapsamlı bir tablo.

Her iki RTOS platformları hızla gelişiyor. FreeRTOS, IoT için daha modüler hale geliyor, ancak çoğu inovasyon (örneğin, AWS IoT ExpressLink) ve büyük silikon satıcılar tarafından desteklenen “FreeRTOSelek V11” tercih edilmektedir.

Geliştiriciler için, her iki platformu öğrenme zamanı mantıklıdır - Bu makalede belirtilen ticaret-offları, bu geçişin sorunsuz bir şekilde veya günün doğru temelini seçmenize yardımcı olacaktır.

Sonuç: Bilgilendirilmiş Bir Seçim Yapma

FreeRTOS ve Zephyr, iki farklı felsefeyi gömülü RTOS tasarımında temsil ediyor. FreeRTOS, on iki yıldır milyarlarca cihaz kullanan kanıtlanmış, minimalist bir çekirdek sunuyor. Zephyr, modern bağlantılı ürünlerin karmaşıklığı için tam olarak tasarlanmış modüler bir sistem inşa ediyor.Ürününüzün kaynak kısıtlamalarıyla uyumlu olmayan, bağlantı ihtiyaçlarınıza, güvenlik gereksinimlerine ve ekip yeteneğine sahip olan bir sistemdir.