חדשות היום
פרטק Pertech

כיצד לבנות תמיכה ב-RTOS עבור מערכות קריטיות לבטיחות ולאבטחה

פרטק Pertechמאת: אבי כהן, פרטק אמבדד סולושנס.

במסמך זה, אנחנו מסבירים את ההבדלים בין יישומים קריטיים-לבטיחות (safety-critical) וקריטיים-לאבטחה (security-critical)  וכיצד משתמשים בשני RTOSes נפרדים – LynxOS-178 ו-LynxSecure כדי לענות לדרישות המחמירות של כל אחד מהם.

מערכות קריטיות-לבטיחות וקריטיות-לאבטחה ממוקדות שתיהן על בניית טכנולוגיה אשר תגן על חיי אדם. אולם, על אף האופי לכאורה דומה של שתי המערכות, הן מיועדות לתפקד בעולמות שונים ביותר. בשל הנחות סביבתיות שונות, מרווחי בעיות שונים, וחוקי ממשל שונים, יש לכל מערכת דרישות יחודיות משלה בשעה שעומדים לבחור את היסודות עבור הטכנולוגיה, כגון מערכות הפעלת פלטפורמות.

מערכות קריטיות לבטיחות ולאבטחה אינן פוסלות זו את זו, אך בשעה שבונים מערכות קריטיות חיוני להצטייד בכלי המתאים למשימה. אין דבר כזה כמו פיתרון נוסח מידה-אחת-תואמת-לכל עבור שני התחומים מבלי להקריב היבט כלשהו של בטיחות או אבטחה. לכן LynuxWorks מציעה שני מוצרי RTOS עצמאיים: LynxOS-178 עבור פלטפורמות קריטיות-לבטיחות ו-LynxSecure עבור פלטפורמות קריטיות-לאבטחה.

LynxOS-178 עבור מערכות קריטיות לבטיחות

המשימה העיקרית של מערכות קריטיות-לבטיחות היא להבטיח פעולה תקינה. אם מדובר במערכות אוויוניקה, רפואה, רכב או SCADA, הליקוי הזעיר ביותר עלול להתפתח לכשל מערכתי ואיבוד חיי אדם. כל טכנולוגיה המשולבת בתוך מערכות אלו חייבת להיבחן בפרוטרוט כדי לוודא שאמינות המערכת נשמרת. בעוד חוסן הוא השיקול הראשוני, מערכות אלו מתפתחות בהתמדה כדי להעלות את הפונקציונליות, להקטין את הממדים ולחסוך בעלויות התפעול. כדי לענות לדרישות אלו המערכות הופכות ליותר חדורות – תוכנה ויותר מורכבות, כך שקשה להשיג חוסן.

איור 1

במטוס, לדוגמה, פונקציות מרובות ברמות קריטיקליות שונות ממוקמות על אותה פלטפורמה כדי להקטין את עלות תחזוקת פלטפורמות נפרדות. פונקציית הבידור לנוסע במטוס עשויה להימצא על אותה מערכת הפעלה כמו פונקציית בקרת הטיסה. אם מערכת בידור הנוסעים פוגעת בזיכרון של פונקציית בקרת הטיסה, הדבר עלול להביא לידי כשל קטלני של מצב כנפי המטוס.

כדי לפתור בעיה זו ולהעלות את אמינות המערכת, נוסד סוג חדש של מערכות הפעלה: הפרדת (partitioning) מערכות ההפעלה בזמן-אמת או p-RTOS. P-RTOSes יוצרים אזורי מחשוב מבודדים או “הפרדות” (partitions) של התוכנה כך שתוכנה הפועלת באזור אחד איננה משפיעה על ההתנהגות או הביצועים של תוכנה הפועלת באזור אחר. LynxOS-178 (איור 1 למטה) היא RTOS מופרד המאפשר לפונקציות קריטיות-לבטיחות בדרגות שונות לפעול ביחד על אותה הפלטפורמה מבלי שיהיה צורך לדאוג לפונקציות משחיתות הפוגעות במשאבי הפלטפורמה או ה”מרעיבות” פונקציות קריטיות-לתזמון אחרות. LynxOS-178 יוצרת את מסגרת ההפרדה הזו באמצעות הפרדה בזמן, מרחב ומשאב.

הפרדה בזמן מקנה הקצבה מוגבלת של זמן CPU עבור כל הפרדה. תוך שימוש בתקציבי CPU הללו, מד-זמן (timer) ופסק (interrupt) של המערכת ולוח-זמנים, LynxOS-178 פועלת בצורה מועדפת כדי לבדוק את הסדר בו הפרדה פועלת על ה-CPU וכמות זמן ה-CPU המוקצב לכל הפרדה. אם פונקציה בתוך הפרדה מנסה לחרוג מתקציב ה-CPU שלה, פסק הזמן מופעל, LynxOS-178 מקבלת פיקוד על ה-CPU, מנטרלת את הפונקציה המזיקה ומאפשרת לפונקציות בתוך ההפרדה הקרובה בלוח הזמנים לפעול.

ההפרדה בזמן מקציבה כמות נפרדת של זיכרון (לדוגמה מרווח RAM ו-מחסנית) לכל הפרדה. LynxOS-178 משתמשת ב-(Memory Management Unit (MMU של ה- CPUכדי לקיים הפרדה זו.

הפרדת המשאבים מבטיחה לכל הפרדה גישה מפורשת (קרא/כתוב, קרא בלבד או כלום) למשאבים (התקני פסק ו-I/O) ו-LynxOS-178 מממשת את בקרי הגישה הללו.

LynxOS-178 קיבלה את שמה על-פי מדריך פיתוח התוכנה קריטית-לבטיחות “DO-178B”, שנכתב בידי ה- Radio Technical Commission for Aeronautics ואושר על-ידי ה-FAA כתקן עבור אשרור כל תוכנה חדשה של האווירייה. DO-178B מגדיר את רמת הביטחון של התכנון (Design Assurance Level –DAL) מ-A ל-E כדי להגדיר רכיבי תוכנה. רכיבי התוכנה עוברים תהליך של אישור הבטיחות וניתוח סיכונים כדי לקבוע מה הרמה שתוקצב לרכיב התוכנה. הקצבת רמה גבוהה יותר (כאשר A היא הגבוהה ביותר) לרכיב תוכנה מעלה את מורכבות התהליך הדרוש כדי לבחון נכונות התוכנה, דבר המגדיל בצורה דרסטית  את העלות ולוח הזמנים של התכנית.

על-ידי שימוש בפלטפורמת ההפרדה LynxOS-178, רכיבי תוכנה ברמות קריטיקליות שונות ניתנים לחלוקה ולמיקום בתוך הפרדות מבודדות, דבר המעלה את אמינות המערכת, מפשט את ארכיטקטורת המערכת ולבסוף מקטין את עלות פיתוח המערכת ואשרורה.

תגובות סגורות