control-systems-and-automation
יישום וירטואליזציה במערכות הפעלה Embedded עבור Flexibility
Table of Contents
הקדמה: למה וירטואליזציה חשובה במערכות Embedded
מערכות הפעלה Embedded הן המוחות הבלתי נראים מאחורי אינספור מכשירים - מחיישנים של IoT ושתלים רפואיים ליחידות מידע רכב ובקרים תעשייתיים.כפי שהביקוש למכשירים חכמים יותר מחוברים גדל, כך גם המורכבות של ערימות התוכנה שלהם.מפתחים מתבקשים יותר ויותר להפעיל יישומים מרובים עם רמות אבטחה שונות, דרישות לעומס עבודה, ולעדכן מחזורים על אותה מערכת הפעלה מסורתית לעתים קרובות כדי לספק גמישות, אבטחה, ויעילות וירטואלית, כדי לשפר אתגרימת משאבים אלה, לאחר מכן, כדי לשפר את יעילות הפעלה מחדש, לאחר מכן, כמו גם את יעילות וירטואלית, כמו גם את יעילות מערכת הפעלה יעילה יותר, כמו גם את יעילות מערכת הפעלה מחדש של פונקציות וירטואלית, כדי ליצור בעיות הפעלה מחדש של כלי יעיל יותר, כדי לשפר את יעילות וירטואלית, כדי לשפר את יעילות מערכת הפעלה מחדש, ואפקטים וירטואלית, כדי ליצור בעיות הפעלה מחדש, לאחר מכן.
מאמר זה בוחן כיצד וירטואליזציה יכולה להיות מיושמת במערכות הפעלה מוטבעות כדי להשיג גמישות רבה יותר.אנחנו נכסים את מושג הליבה, יתרונות מעשיים, אסטרטגיות יישום ואת האתגרים המרכזיים שהמהנדסים מתמודדים כאשר מביאים וירטואליזציה למכשירים מאומצים משאבים.עד הסוף, תבינו מדוע וירטואליזציה הופכת מרכיב קריטי של ארכיטקטורת תוכנה מוטבעת מודרנית.
הבנה וירטואלית במערכות Embedded
בליבתו, וירטואליזציה יוצרת מופשטת מבוססת תוכנה של משאבי חומרה – כגון ליבות CPU, זיכרון, אחסון ומכשירי I/O – כך שמערכות הפעלה מרובות או יישומים יכולים לרוץ במקביל על פלטפורמה פיזית אחת. במערכות, זה מושג בדרך כלל באמצעות FLT:0hypervisorFLT:1 (נקרא גם מחשב וירטואלי) שיושב בין מערכות האורחים והחומרה, ופעולות הפעלה.
בניגוד לVirtualization השרת שבו כוח מקביל וזיכרון מסיבי הם בשפע, מערכות משובצות לעתים קרובות מוגבלים על ידי יכולת עיבוד מוגבלת, טביעות אצבע זיכרון קטנות, ותקציבי חשמל קפדניים, ולכן, Hypervisors מוטבעים נועדו להיות קל משקל, מצמצם מעל פני השטח ועדיין לספק תכונות וירטואליות רבות מוטבעות יותר (FLT:0type-1) ארכיטקטורות (ba-FLT) בעיקר עבור ארכיטקטורת חומרים אופטיים (PLT2hosts) במקום שבו הם מספקים שימוש ישיר של חומרים אופטיים (PLT2hosts)
[היבט קריטי נוסף של וירטואליזציה מוטבעת הוא תמיכה עומסי עבודה בזמן אמת.בניגוד מחשוב כללי, מכשירים משובצים רבים חייבים להגיב לאירועים בתוך מיקרו-שניות.זה דורש את ההיפרטור לטפל ביעילות בהפרעה וירטואלית, להימנע מלהציג לאות בלתי צפויות, ולספק מנגנונים לשימור מחזורי CPU עבור משימות קריטיות בזמן.
יתרונות וירטואליזציה עבור מערכות הפעלה Embedded
וירטואליזציה מציעה מגוון של יתרונות אשר ישירות לטפל המורכבות הגוברת של תוכנות משובצות.הסעיפים הבאים לשבור את היתרונות המשפיעים ביותר.
גמישות משופרת ו- Dynamic Resource Allocation
עם וירטואליזציה, ארכיטקטים במערכת יכולים לחלק משאבי חומרה בין מספר מקרי אורח.כל אורח יכול להפעיל מערכת הפעלה שונה - לדוגמה, מערכת ההפעלה בזמן אמת (RTOS) עבור לולאות בקרה לצד דוגמה לינוקס עבור משימות ממשק רשת ומשתמש. גמישות זו מאפשרת למפתחים לבחור את מערכת ההפעלה הטובה ביותר עבור כל מערכת הפעלה ללא נעולה לתוך פלטפורמה מונוליטית יחיד.
החלמה חזקה לביטחון ולביטחון
בידוד הוא אולי היתרון הקריטי ביותר של וירטואליזציה במערכות משובצות.כל מכונה וירטואלית פועלת בתחום המוגן שלה, כך שהאשמה (למשל, התרסקות תוכנה או שחיתות זיכרון) באחד מ-VM אינה יכולה להפיץ לאחרים.זה חשוב במיוחד עבור FLT:0mixed- Criticality SystemsFLT:1 שבו יישומים עם רמות בטיחות שונות coex, לדוגמה, ב-Digital Control (IL) לא יכול להיות השפעה דומה של מערכת בידור בודדת של קונסולה-DIQ (D) באופן דומה).
יעילות משאבים ועלויות ניכוי
(התקנים המוטבעים לעתים קרובות יש מיקרו-בקרים מרובים או מעבדים כדי לענות על דרישות שונות.על ידי הגדלת עומסי עבודה על מעבד רב-core אחד באמצעות וירטואליזציה, יצרנים יכולים להפחית את מספר השבבים, שטח לוח, וצריכת חשמל.זה עצירות חומרה מורידה את עלויות החיוב והסימולציות של מערכת ההפעלה.
תחזוקה מפוכחת, עדכונים וניהול מחזור חיים
מכשירים Embedded דורשים יותר ויותר עדכוני שדה - עבור תיקונים ביטחוניים, תיקוני באגים, או תוספות תכונה. וירטואליזציה עושה עדכונים בטוחים ופחות משבשים. במקום לעדכן את כל מערכת הקושחה, אתה יכול לעדכן אחד VM בזמן בעוד שאר VMs להמשיך לפעול.אם עדכון גורם לכישלון, אתה יכול לגלגל בחזרה את הגישה הזו ממזערת את הזמן, והוא בעל ערך במיוחד במערכות שבהן הוא פועל כמו LCators רפואי מתמשך, או LCators תעשייתי.
שיפור יעילות ה- Developer Productivity
מפתחים יכולים לעבוד על תת-מערכות שונות באופן עצמאי (למשל, UI על לינוקס, לשלוט לוגיקה על RTOS) ולבחון אותם בסביבה וירטואלית לפני האינטגרציה.היפר-בידור מספק שכבת מופשטת חומרה סטנדרטית, כך שצוותים יכולים לפתח ולפענוח באמצעות אותה ערימה תוכנה שתרוץ על המכשיר היעד.זה מקטין הפתעות אינטגרציה ומקצר את זמן לשוק.
יישום וירטואליזציה במערכות Embedded
קביעת וירטואליזציה בסביבה משובצת דורשת בחירה זהירה של ההיפודור, הסתגלות של נהגים, ושיקול עיצוב למגבלות בזמן אמת.הסעיפים הבאים מכנים נתיב יישום מעשי.
בחירת Hypervisor הנכון
ההיפר-בידור הוא אבן הפינה של כל פתרון וירטואליזציה.עבור מערכות משובצות, ההיפר-בידור חייב להיות קל משקל, מדרגי, ותומכת בעומסי עבודה בזמן אמת.קיימות אפשרויות מוכחות רבות:
- (ב) [ה][דרוש מקור]: [ה]] [ה] [ה]] [ה]], [ה'], [ה']'[ה]']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']']']'[ה'[ה']']'[ה'[ה']']'[ה'[ה']'[ה'[ה']'[ה'[ה'[ה']']']'[ה'[ה']'[ה'[ה']']']'[ה']']'[ה'[ה'[ה'[ה']']']']']'[ה'[ה'[ה'[ה'[ה']'[ה']']']'[ה'[ה']'[ה'[ה'[ה'[ה']'[ה']']'[ה'[ה'[ה'[ה'[ה
- (ב) [המכונה וירטואלית מבוססת קברלית] (FLT:0KVM (Kernel-based Virtual Machines) ,(FLT: 1:1 - סוג 2 Hypervisor המנצל את יכולות ההיברידיזציה של לינוקס, בעוד בשימוש מסורתי בשרתים, KVM יכול להיות מכוון עבור מערכות משובצות (למשל, ב- Yocto-based Building) הוא נהנה ממערכות אקולוגיות עצומות של כלי תמיכה ונהגים.
- (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [15] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
בעת בחירת היפרביטור, להעריך את טביעת הרגל שלה (RAM ואחסון), להפריע לעקביות, תמיכה בתזמון (במיוחד עבור משימות בזמן אמת קשה), ומוכנות הסמכה (למשל, ISO 26262 עבור רכב, IEC 62304 עבור רפואי).
תמיכה קשה וחשבונות פלטפורמה
מעבדים מהו מוטבעים יותר ויותר כוללים הרחבות וירטואליות חומרה (ARM Architecture), המעבדים (FLT:0Virtualization Extensions (VE) ,IRFLT:1 זמין במעבדים Cortex-A (לא Cortex-M) מספקים רמה יוצאת דופן ייעודית (EL2) עבור היפר-בידור.זה מאפשר היפר-ביאודור למלכודת פעולות פריבילגיות מאורחים ללא קוד הקרנל (Fullation) של הוראות הפעלה נמוכות יותר, אך ורק לאחר מכן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, שימוש ב-Primertualization, אם כן, היא מאפשרת שימוש ב-Fateertoconstualization is to runtualization is to runtualization is to runertoertoeration to runtualization for the Hypervisor to runs to runs to runing to the Hypervisor to the Hypervisor to the Hypervisor to the Hypervisor to Trap to Trap to Trap to Trap to Trap to Trap to Trap to Trap to Trap to Trap to the Hypervisor to Trap to מלכודות פעולות חלופיות to the Hypervisor to Trap to Trap to
תכונות אדריכליות נוספות המסייעות וירטואליזציה מוטבעת כוללות:
- (FLT:0)IOMMU (Input/Output Memory Management Unit)FLT:1 - מספק בידוד המכשיר ומאובטח DMA (Direct Memory Access) עבור כל VM.
- (FLT:0)GICv2/v3 (מפקח הנטרופטי) 1FIRLT:1 - מצליח להפריע למכונה הווירטואלית הנכונה ללא תיווך היפרבידור עבור כל הפרעה.
- (FLT:0) Multi-core CPUspherph:1) - מאפשר pinning של VM VCPUs ליבות פיזיות ייעודיות, צמצום הכתימה ולהבטיח ביצוע דטרמיוני.
אם הפלטפורמה שלך לא חסרה תכונות אלה, לתכנן יותר hypervisor overhead ולצפות למגבלות על מספר האורחים בו זמנית או המורכבות של חיקוי המכשיר.
ביצועים בזמן אמת וניהול Latency
אחד האתגרים הגדולים ביותר בה וירטואליזציה מוטבעת הוא שמירה על התנהגות בזמן אמת.היפרודור חייב לקבוע את ה- vCPUs, וירטואליזציה של הפרעות, ולנהל את הזיכרון באופן הממזער את הסבלנות.
- (FLT:0) מבוסס על תזמון מוקדם, preemptiveתזמוןFLT ( 1:1 - אסיים עדיפות גבוהה יותר תזמון אורח בזמן אמת VMs. כמה hypervisors (למשל, KVM עם תיקון kernel בזמן אמת, Xen עם לוח הזמנים RTDS) תומך בלוח הזמנים מבוסס מועד.
- (FLT:0) הקצאת הליבה של ה- 1 (FLT) – שמורה על הליבה הפיזית כולה עבור אורח בזמן אמת.כאשר נעשה, אורח לא סובל מעיכובים מכווצים.היפרוטור רק מטפל להפריע קדימה, אשר ניתן לעשות בחומרה עם תמיכה VGIC.
- (FLT:0)עבור דרך I/OFLT:1 - עבור חומרים רגישים לזמן, להעניק גישה ישירה VM לחומרה (למשל, באמצעות VFIO או virtio במצב מעבר) זה עקף את ההיפרטור על נתיב הנתונים ומפחית את הגמישות לרמות כמעט-native.
- (FLT:0) נהגים מהונדסים 1 (FLT:0) השתמש נהגי פרפילקל קלים לבלוק, רשת ו- I/O כדי להימנע מחיקוי כבד.
גם עם טכניקות אלה, חלק מההירות השגרה תתקיים.תתאמת טורו עם כלים כמו צ'יקיסטים (על אורחי לינוקס) או חומרה מדידה בזמן אמת ייעודית חיונית.
זיכרון וניהול
(המערכות המוחזקות לעיתים קרובות יש זיכרון מוגבל.היפר-בידור עצמו צורמת RAM עבור מבני הנתונים שלו (למשל, טבלאות דף, VM Control בלוקים) כל אורח מערכת ההפעלה גם דורש זיכרון ייעודי, שניתן להקצות באופן סטטי או בלוני באופן דינמי.
אחסון במכשירים משובצים הוא לעתים קרובות מבוסס פלאש (eMMC, NAND או NOR) ה- Hypervisor יכול לספק דיסקים וירטואליים ברמה גבוהה או אחסון מחיצה עבור כל אורח.חשב בחירת מערכת הקבצים (למשל, UBIFS עבור NAND גולמי) בעת תכנון וירטואליזציה אחסון.
אתגרים ומגבלות של וירטואליזציה Embedded
למרות היתרונות הרבים שלה, וירטואליזציה היא לא כדור כסף.מפתחים צריכים להיות מודעים למכשולים הבאים.
ביצועים Overhead
גם עם האצה חומרה, וירטואליזציה מציגה כמה משימות רגישות יתר - במיוחד עבור להפריע, המעבר ההקשר וניהול הזיכרון.עבור משימות רגישות CPU או עצלות, ראש יכול להיות בלתי מתקבל על הדעת. במקרים כאלה, לשקול שימוש ב-FLT:0bare-metal מחיצות CLT:1 (כפי שחתים הליבה פיזית באופן בלעדי למשימה ביקורתית ללא מערכת ההפעלה) או מינימלית באמצעות פונקציות וירטואליות על ידי RTOS, רק על ידי RTOS.
עלויות הסמכה ותיקון
מערכות משובצות בטיחותיות (automotive, aerospace, רפואי) דורשות הסמכה כנגד תקני בטיחות פונקציונליים.הוספת Hypervisor מגבירה את מורכבות המערכת ומציגה מצבי כשל נוספים.היפרביטור עצמו חייב להיות מוסמך. ספקים מסחריים לעתים קרובות לספק פריטים הסמכה, אבל זה מוסיף עלות ויכול להגביל את הבחירה של פתרונות וירטואליזציה.
חוסר תמיכה ב-Lo-End MCUs
רוב וירטואליזציה מוטבעת מתקרבת מיקרו-מעבדים (MPUs) עם MMUs ו הרחבות וירטואליזציה - באופן רטי קורטקס-A או x86. על מיקרו-בקרים מאומצים משאבים (MCUs) כמו Cortex-M, אשר חסר תמיכה במלכודת MMU ו- Hypervisor, רק וירטואליזציה תוכנה (למשל, FreeOS עם בידוד מבוסס מעבד) הוא אפשרי מאוד על שטח וירטואלי.
הנהג והמורכבות הפריפריה
כל VM בדרך כלל מצפה לנהגי המכשיר שלו.שיתוף היקפי בין VMs (למשל, יחיד UART, SPI אוטובוס, או Ethernet בקר) דורש עיצוב זהיר.נהגים פרוויאליים יכולים לעזור, אבל הם צריכים להיות מועברים לכל מערכת אורח או מערכת ההפעלה.עבור מורשת או חומרים קנייניים היקפיים, ההיפרטור עשוי צריך לחקות חומרה, שהוא מורכב ואט מוגבל רק למיזמים קריטיים.
הבטחת זמן אמת
הבטחת כי משימה קשה בזמן אמת עומד בלוח הזמנים שלה כאשר VMs אחרים לרוץ הוא מאתגר. Cache התערבות, התכווצות אוטובוס, ושיתוף רוחב פס זיכרון יכול לגרום עיכובים בלתי צפויים.טכניקות מתקדמות כמו צבע מטמון, LLC (רמה אחרונה Cache) חלוקת, ושמירת רוחב הפס זיכרון הם נלמדים אבל עדיין לא זמינים באופן נרחב בהיפרוביסים.
כיוונים עתידיים בVirtualization Embedded
הנוף של וירטואליזציה מוטבע מתפתח.מגמות מספריות מעצבות את הדור הבא של מערכות משובצות גמישות.
Unikernels and Light Weight Machines
Unikernels הם מיוחדים, יחיד תכלית VMs הכולל רק את רכיבי מערכת ההפעלה המינימליים הדרושים עבור יישום. הם להפחית את טביעת הרגל הזיכרון ואת זמן החול תוך שמירה על היתרונות בידוד של וירטואליזציה.לדוגמה, unikernel לשלוט רכז חיישן יכול להישמר בתוך מילימטרים ולהשתמש רק כמה מאות קילוביטים.שלב uniels עם hypervisor קל משקל מאפשר פלטפורמות יעילות מאוד, גמיש.
מכיל את התקני Embedded
בעוד מיכלים חולקים את הליבה של מערכת ההפעלה המארחת ולכן יש להם יותר גבוה מאשר VMs, הם חסרים את אותה רמה של בידוד.עם זאת, מכולות משובצות (למשל, Docker על Yocto או LXC על לינוקס קטן) הופכים להיות אפשריים כי הקרנלים המודרניים מציעים תכונות בידוד חזקות יותר (seccomp, שם, cgroups). במקרים מסוימים, ערבוב מיכלים עבור עבודה לא ביקורתית עם אלה מציעים תכונות וירטואליות עבור מכונות אוטומטיות קריטיות.
מערכות מורכבות וסטנדרטים פתוחים
(ב) תקנים כמו FLT:0)AMBA CHI (CoreLink)FLT:1 ו- (FLT:2ASIL decompositionFLT 3 במכוניות הם בידוד מונע חומרה.The FLT:4Multicore Association של Virtualization GroupFLT:5 מפתחת APIs לתקשורת היפר-אופטימית ולמשאבים מתקדמים יותר כדי לחשוף את יכולות ניהול הגמישות.
אדג'י ו-Virtualization
כמו מכשירים משובצים משלבים מאיצים של בינה מלאכותית (NPUs, GPUs), וירטואליזציה חייבת לנהל את המשאבים המיוחדים הללו.Virtualization של מנועי הקצינה ברשת עצבית, למשל, עשויה לדרוש מודלים לשיתוף זיכרון (למשל, חלוקת GPU של Nvidia עם vGPU). מחקר לתוך FLT:0heterogeneous systemization of:1FLT:1 יאפשר מספר רב של אורחים לחלוק משאבים מאובטחים.
מסקנה
וירטואליזציה היא כבר לא רק מושג מרכזי נתונים - היא טכניקה מעשית ורבת עוצמה לגמישות, אבטחה ויעילות משאבים במערכות הפעלה משובצות. על ידי בחירת יתרו אשר תואם את יכולות החומרה ואת דרישות בזמן אמת, מהנדסים יכולים לאחד עומסי עבודה מרובים על פלטפורמה אחת, בידוד קריטי מפונקציות לא קריטיות, ולפשט את התחזוקה לטווח ארוך.
בין אם אתה בונה את הדור הבא של בקרים בתחום הרכב, משאבות אינפוזיה רפואית, או שערי IoT תעשייתיים, וירטואליזציה מציעה דרך לענות על הדרישות הגדלות של מורכבות תוכנה מבלי להקריב את הדטרמיניזם והאמינות הדרושים במערכות משובצות.