Giriş: Neden Sanallaştırma Maddeleri Gömülü Sistemlerde
Gömülü işletim sistemleri sayısız cihazın arkasında görünmez beyinlerdir - IoT sensörleri ve tıbbi implantlardan otomotiv bilgilerine yönelik birimlere ve endüstriyel kontrolörlere kadar. Daha akıllı, daha bağlantılı cihazlar için talep büyüdükçe, bu yüzden yazılım yığınlarını kısıtlayan ve masaüstü ortamlarına kadar, bu zorlukları ele almak için daha fazla sayıda uygulama yapmanız ve aynı donanımda ayrı ayrı ayrı tutmanız için daha fazla soruluyor. Geleneksel gömülü işletim sistemleri genellikle bu çözümleri sağlamak için mücadele eder ve bu senaryoları güçlendirerek, sanal makineleri ve kaynakları verimli hale getirir.
Bu makale, sanallaştırmanın daha fazla esneklik elde etmek için gömülü işletim sistemlerinde nasıl uygulanabileceğini araştırıyor. Temel kavramları, pratik faydaları, uygulama stratejilerini ve kaynak-konstut cihazlara sanallaştırma getirdiğiniz önemli zorluklarla karşılaşacaksınız.Sonunda, sanallaştırmanın neden modern gömülü yazılım mimarisinin kritik bir bileşeni haline geldiğini anlayacaksınız.
Gömülü Sistemlerde Sanallaştırmayı Anlayın
Onun özünde, sanallaştırma bir yazılım tabanlı donanım kaynakları soyutlama yaratır - CPU çekirdeği, bellek, depolama ve I / O cihazlar gibi - birden çok işletim sistemi veya uygulama, tek bir fiziksel platformda eş zamanlı olarak çalıştırılabilir ve bu genellikle aritFLT:0)hypervizör) olarak yapılır (ayrıca donanım ve misafir işletim sistemleri arasında oturan bir sanal makine monitörü olarak.
Bu nedenle, ham hesaplama gücü ve büyük hafızanın bol olduğu sunucu sanallaştırmanın aksine, gömülü sistemler genellikle sınırlı işlem kapasitesi, küçük hafıza ayak izi ve katı güç bütçeleri ile kısıtlanır.Bu nedenle, hipervizörleri doğrudan donanımda, [[kanıtlama özellikleri sunarken, temel sanallaştırma özellikleri sağlar.)[Döneticileri:0)[barışlı bir OSB)[Dönetici-metal)[Döneticileri tercih eder.
Sanallaştırmanın bir başka kritik yönü gerçek zamanlı iş yükleri için destektir.Genel amaçlı hesaplamadan farklı olarak, birçok gömülü cihaz mikrosaniye içinde olaylara cevap vermelidir.Bu, sanallaştırmanın etkili bir şekilde ele alınması için hipervizörlüğü gerektirir, öngörülemeyen latencies ve zamanlayıcı görevler için depolama mekanizmaları sağlar.
Gömülü İşletim Sistemleri için Sanallaştırmanın Faydaları
Sanallaştırma, gömülü yazılımların büyüyen karmaşıklığına doğrudan hitap eden çeşitli avantajlar sunar. Aşağıdaki bölümler en etkili faydaları kırır.
Geliştirilmiş Flexability ve Dynamic Resource Allocation
Sanallaştırma ile sistem mimarları birden çok misafir OS örneklerinden donanım kaynaklarını bölümleyebilir. Her misafir farklı bir işletim sistemi çalıştırabilir - örneğin, gerçek zamanlı bir OS (RTOS) ile ağ ve kullanıcı arayüzü görevleri için Linux örneği ile kontrol döngüsü için.Bu esneklik, geliştiricilerin her alt sistem için kilitlenmeden en iyi işletim sistemini seçmelerine izin verir, daha az kritik bir şekilde depolanabilir.
Güvenlik ve Güvenlik için Güçlü izolasyon
Bu, sanallaştırmanın en kritik faydalarından biridir. Her sanal makine kendi korumalı alanda çalışır, bu nedenle bir hata (örneğin, bir VM'de bir yazılım kazasında veya bir bellek yolsuzluk) diğerlerine aktarılamaz.Bu özellikle de Infotainment sistemi (QM), farklı güvenlik bütünlüğü seviyelerindeki uygulamaları etkileyen bir aksaklık sistemi engelleyicidir. Örneğin, bir otomotiv domain kontrol sisteminde, fren kontrolü yazılımı (ASIL D)
Verimli Kaynak Utilizasyon ve Maliyet Azaltımı
Gömülü cihazlar genellikle farklı gereksinimleri karşılamak için çok ayrı ayrı mikro kontrol veya işlemciler sahiptir.Tek bir multi-core işlemciye sanallaştırma kullanarak, üreticiler çip sayısını azaltabilir, yönetim alanı ve güç tüketimi) daha düşük ve genişletilmiş batarya ömrüne sahiptir.
Basitleştirilmiş Bakım, Güncellemeler ve Yaşam döngüsü Yönetimi
Gömülü cihazlar giderek daha fazla alan güncellemelerini gerektirir - güvenlik yamaları için, bug düzeltmeleri veya ekleri. Sanallaştırma, tüm sistem bilgisayarlarını güncellemek yerine, diğer VM'leri çalışmaya devam ederken bir VM'yi güncelleyebilirsiniz.Eğer bir güncelleme başarısız olursa, bu yaklaşımı geri döndürebilir ve özellikle de sürekli işlem zorunlu olan sistemlerde değerlidir.
Geliştirilmiş Geliştirici Verimliliği
Geliştiriciler bağımsız olarak farklı alt sistemler üzerinde çalışabilir (örneğin, Linux'ta UI, RTOS'ta kontrol mantığı) ve entegrasyondan önce sanallaştırılmış bir ortamda test edebilir. hipervizör standart bir donanım soyutlama katmanı sağlar, bu yüzden takımlar hedef cihaz üzerinde çalışacak aynı yazılım yığını kullanarak geliştirilebilir ve debug sağlayabilir.Bu entegrasyon sürprizlerini ve kısa zaman pazarlamayı azaltır.
Sanallaştırmayı Gömülü Sistemlerde Uygulamayı
Bir gömülü ortamda sanallaştırma, hipervizör, sürücülerin adaptasyonu ve gerçek zamanlı kısıtlamalar için tasarım göz önünde bulundurmak gerekir. Aşağıdaki bölümler pratik bir uygulama yolunu özetliyor.
Doğru Hypervisor'ı seçmek
Hipervizör herhangi bir sanallaştırma çözümünin temel taşıdır. gömülü sistemler için hipervizör hafif, ölçeklenebilir ve gerçek zamanlı iş yüklerinin destekleyicisi olmalıdır: Birkaç kanıtlanmış seçenek var:
- [FONT=0)Xen Project[[Dönetici:0)[değiştir | kaynağı değiştir] (örneğin, xen) ve tam olarak sanallaştırılmış konuklar için, güçlü bir izolasyon sağlar. xen'in gerçek zamanlı yetenekleri gömülü kullanım için geliştirilmiştir.
- [FONT:0)KV (Kernel tabanlı Sanal Makine)[Dönetici: 1) Linux çekirdeğinin sanallaştırma yeteneklerini kullanan bir tür-2 hipervizör.[Döneticiler, KVM, gömülü sistemler için ayarlanabilir.)
- [FONT=0)OpenAMP / Xilinx RFSoC) - Donanım sanallaştırma uzantıları ile donatılmış ARM tabanlı sistemler için, OpenAMP, birden çok misafir OSs'ı kullanarak çalıştırma için bir çerçeve sunar.[D][/FONT=D][/TR][/TR][/FONT][/TRNT][/FONT][/FONT=3][/FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=TRNT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=TRNT=FONT=FONT=FONT=FONT=FONT=FONT=FO
- [FONT=0] ⁇ RTOS hipervizörleri [DÜT:1] – Ürünler özellikle karışık-kırıklık ve güvenlik-cerebilir ortamlar için tasarlanmıştır.QNX Hypervisor) veya ileri izolasyonlar.
Bir hipervizör seçerken, ayak izi (RAM ve depolama), gecikmeli bir yükü, zamanlama desteği (özellikle zor gerçek zamanlı görevler için), ve sertifikasyon hazırlığı (örneğin, ISO 26262, otomotiv için IEC 62304.
Donanım Desteği ve Platform Tahminleri
Modern gömülü işlemciler giderek donanım sanallaştırma uzantılarını içerir.For ARM architecture, theİLFLT:0)Virtualization Extensions (VE)) mevcut olan Cortex-A (not Cortex-M) işlemciler hipervizörlüğü için özel bir istisna seviyesi sağlar.Bu, konuk AG'nin yedek kodlarını yeniden yazmadan (tam sanallaştırma) daha düşük notlamalar olmadan ayrıcalıklı bir şekilde yönetmesine izin verir.
Sanallaştırmaya gömülü olan diğer mimari özellikler şunlardır:
- [FONT=0)IOMMU (Input/Output Memory Management Unit)) - her VM için cihaz izolasyonu ve güvenli DMA (Direct Memory Access) sağlar.
- [FONT:0)GICv2/v3 (Generic Interrupt Controller)) - her kesinti için hipervizör medya bağlantısı olmadan doğru sanal makineye kesintiye uğramayı başarır.
- [FONT:0)Multi-core CPUs[Dönetici:0) -- VM vCPU'ların fiziksel temellere adanmış olmasına izin vermek, önbellek kesmeyi azaltmak ve deterministic execution sağlamak.
Hedef platformunuz bu özellikleri eksikse, daha fazla hipervizör için plan yapın ve eş zamanlı konuklar veya cihazın karmaşıklığı hakkında kısıtlamalar bekler.
Gerçek Zaman Performansı ve Latency Management
gömülü sanallaştırmadaki en büyük zorluklardan biri gerçek zamanlı davranışı korumaktır. hipervizör vCPUs, sanallaştırma kesmeleri ve hafızayı geç kalmış bir şekilde yönetmelidir. Birkaç strateji yardımcı olabilir:
- [FONT:0)Priority-based, preemptive scheduling[[Dönetici:0))[Dönetici:0)Priority-based, preemptive scheduling[[[D:0))) - Gerçek zamanlı misafir VM'lere daha yüksek zamanlama önceliği tayin ediyor. Bazı hipervizörler (örneğin, KVM gerçek zamanlı olarak, RTDS programlayıcı ile xen)
- [FONT:0) Temel atama) - Gerçek zamanlı bir konuk için tüm fiziksel bir temele sahip olun.Bu konu asla ortak gecikmelerden muzdarip değildir. hipervizör sadece VGIC desteği ile donanımda yapılabilir.
- [FONT=0]I/O[Döneticiler için – Zamana duyarlı periferiler için, bir VM'ye donanıma doğrudan erişim sağlar (örneğin VFIO veya virtio'yu geç modda kullanarak).Bu, hipervizörlüğü veri yolunda atlar ve geç seviyelere düşürür.
- [FONT:0]Paravirtualized sürücüleri[[DÜT:1) – Blok, ağ ve seri I/O, ağırlığa zarar vermek için hafif paravirtualized sürücüleri kullanın.
Bu tekniklerle bile, bazı ikamet süresi gecikecek. Çevrimdışı (on Linux konukları) veya gerçek zamanlı ölçüm donanımı gibi araçlar ile karşılaştırmak önemlidir.
Memory and Storage Management
Gömülü sistemler genellikle sınırlı hafızaya sahiptir. hipervizörin kendisi veri yapıları için RAM tüketiyor (örneğin, sayfa masaları, VM kontrol blokları). Her misafir OS ayrıca statik veya balonlu dinamik olarak tahsis edilebilir)Stat tahsis) daha basit ve hafızayı asla yıldızladığından emin olmak için, ancak atıklara yol açabilir.
gömülü cihazlardaki depolama genellikle flaş tabanlı (eMMC, NAND veya NOR) hipervizör her misafir için blok seviyesinde sanal disk veya bölüm depolama sağlayabilir.Ortalama ve dosya sistemi seçenekleri (örneğin, UFSBI).
Gömülü Sanallaştırmanın Zorlukları ve Sınırları
Birçok faydasına rağmen, sanallaştırma bir gümüş mermi değildir. Geliştiriciler aşağıdaki engellerin farkında olmalıdır.
Performans Overhead
Donanım ivmesi ile bile, sanallaştırma bazı bir miktar eki getirir - özellikle de kesme işlemi, bağlam geçişi ve hafıza yönetimi için.In most CPU-i yoğun veya geçilebilir görevler için, bu tür kritik durumlarda, sadece sanallaştırılmış olmayan bölümlerle ilgili olarak kabul edilebilir.
Sertifika ve Kazanılan Maliyetler
Güvenlik kritik gömülü sistemler (automotive, havacılık, tıbbi) zaten nitelikli bir hipervizör ekledi ve ISO 262 için hipervizör ekledi. Ticari hipervizör satıcılar genellikle sertifika eserler sağlar, ancak bu maliyet ve daha fazla sanallaştırma çözümleri seçimi sınırlamak gerekir.
Low-Bit MCUs üzerinde Donanım Desteği eksikliği
Çoğu gömülü sanallaştırma, MMU ve sanallaştırma uzantıları ile hedef mikroişlemcilere (MPUs) hedef mikroişlemcilere (MPUs) hedef mikroişlemcilere (MPUs) sahiptir, yazılım-sadece sanallaştırma (örneğin, MPU bazlı izolasyon ile FreeRTOS) ancak yüksek oranda sınırlı kalır.
Sürücü ve Peripheral Kompleksi
Her VM genellikle kendi cihaz sürücülerini bekliyor. VMs (örneğin, tek bir UART, SPI otobüs veya Ethernet kontrolörü) dikkatli bir tasarım gerektirir. Paravirtualized sürücüleri yardımcı olabilir, ancak her misafir OS'ye limana girmesine ihtiyaç duyarlar.
Gerçek Zamanlı Garanti Garantileri
Sert gerçek zamanlı bir görevin diğer VM'lerin çalıştığı tarihlerle karşı karşıya olduğunu garanti etmek zor. Önbelli müdahale, otobüs içeriği ve hafıza genişliği paylaşımı öngörülemeyen gecikmelere neden olabilir. Önbellek renklendirme, LLC (Son Seviye Cache) bölümleme ve hafıza bant genişliği rezervasyonları henüz yaygın olarak mevcut değildir.
Future Yolları Gömülü Sanallaştırma
gömülü sanallaştırmanın alanı gelişmektedir. Birkaç trend, bir sonraki esnek gömülü sistemler nesli şekillendirmektedir.
Unikernels ve hafif Sanal Makineler
Unikernels, sadece bir uygulama için gerekli olan en az OS bileşenleri içeren özel, tek amaçlı VM'ler uzmandır.Görünüşe göre, bir sensör merkezi kontrol eden bir tek kullanımlık VM'ler ve sadece birkaç yüz kilobayt kullanarak hafif bir hipervizöre son derece verimli, esnek platformlar sağlar.
Gömülü Cihazlarda Konteynerizasyon
Konteynerler ev sahibi OS çekirdeği paylaşırken ve böylece VM'lerden daha düşük bir yüke sahipler, aynı izolasyon seviyesini yoksunlar. Ancak, gömülü konteynerler (örneğin, Yocto veya LXC'de küçük Linux için Docker) mümkün hale gelir çünkü modern Linux'lar daha güçlü izolasyon özellikleri sunar (seccomp, isim alanları, cgruplar). Bazı durumlarda, kritik olmayan iş yükleri için konteynerleri kritik olmayan sanal makineler için karıştırır.
Karma-Criticality Systems ve Open Standards
Standartlar:0)AMBA CHI (CoreLink)) ve [[FONTL decomposition[DÜDÜ:3) Otomotivde donanıma sahip olan donanıma sahip olan yüksek kaliteli yazılımlara sahip olmak için, yüksek çözünürlükte daha fazla düzgün bir şekilde iletişim kurmak için API'ler geliştiriyor.
Edge AI ve Sanallaştırma
gömülü cihazlar AI hızlandırıcıları (NPUs, GPUs), sanallaştırma bu özel kaynakları yönetmek zorundadır. Örneğin, bellek paylaşım modellerini (örneğin, vGPU ile GPU bölüm) gerektirir. Araştırmayı www.terogeneous sistem sanallaştırma).
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Sanallaştırma artık sadece bir veri merkezi konsepti değildir - tek bir platformda pratik ve güçlü bir tekniktir, esneklik, güvenlik ve kaynak verimliliği, gömülü işletim sistemlerindeki verimlilik. Donanım ve gerçek zamanlı gereksinimleri karşılayan hipervizör kullanarak, mühendisler engellerin azaltılmasına devam edebilir.
Otomotiv domain kontrolörlerinin bir sonraki nesli inşa ediyorsanız, tıbbi infüzyon pompaları veya endüstriyel IoT ağ geçidi, sanallaştırma, bilgisayar karmaşıklığının artan taleplerini, gömülü sistemlerin gerektirdiği belirsizliği ve güvenilirliğini karşılamak için bir yol sunar.Bu yaklaşımlara kucaklayınca, ürünlerinizi rekabetçi bir avantajdır.