בניית מערכת הפעלה של Space-Grade: Lessons from Satellite Development

כל לוויין שמש משיקה את המוח - מערכת הפעלה אישית (OS) שמזמנת כל פונקציה קריטית, משליטה בגישה לטיפול בנתונים.בניגוד ל- OS-purpose-function on a computer, מערכת לווינית חייבת לפעול ללא פגם במשך שנים בוואקום רווי קרינה, עם כוח מוגבל וללא הזדמנות לתיקון חומרה.

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

מדוע מערכת הפעלה אישית ללוויינים?

מערכות הפעלה בזמן אמת מסחרי (RTOS) כגון VxWorks, RTEMS ו- FreeRTOS משמשים נרחב ביישומים אוויריים משובצים.עם זאת, תוכניות לווייניות רבות - במיוחד אלה עם דרישות משימה - כל אלה כדי לבנות מערכת הפעלה אישית כדי להשיג שליטה מדויקת על ניצול משאבים, אבטחה, ושיקום מותאם אישית מונעת על ידי הגורמים הבאים:

  • (FLT:0) ,Deterministic SchedulingFIRLT:1) : משימות לוויין, כגון משחתות יורים או לכידת תמונות, דורשות זמני ביצוע צפויים, כבולים כי מערכת ההפעלה הכללית אינה יכולה להבטיח.
  • (FLT:0) דמי רגל מינימלית 1: כל קילובייט של זיכרון מקטין את יכולת העומס או עלייה.מערכת מותאמת אישית יכולה לנתק שירותים מיותרים, שמירה על הדלגן.
  • (FLT:0)Fault ContainmentFLT:1: מערכות חלל חייבות לשרוד מצוקות חד-משמעיות (SEUs) ו glitches חומרה.A מותאם אישית OS יכולה ליישם מנגנוני שמירה ספציפיים ותכניות ריצוף שאינן זמינות במוצרי מדף.
  • (FLT:0) סודיות על ידי עיצובFLT:1: לווינים הם יותר ויותר מטרות להתקפות סייבר.מערכת הפעלה אישית יכולה לאכוף הפרדה קפדנית בין פקודה, טלמטרי, ולשלם נתונים מבלי להסתמך על כתמים של צד שלישי.
  • (FLT:0) תמיכה ארוכת טווח (FLT:1): משימות יכולות להימשך 10-15 שנים.מערכת מותאמת אישית מונעת סיכונים של שרשרת האספקה ושינויים ברישיון שעשויים להשפיע על תוכנה קניינית על פני קווי זמן כה מורחבים.

שלב 1: קביעת דרישות מערכת לווין

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

עיבוד נתונים בזמן אמת

לווינים פועלים על קווי זמן קפדניים.הלילאות בקרת קו רוחב דורשות לעתים קרובות קוראי חיישן והוראות הפעלה בשיעורים של 10 הרץ ל-100 הרץ, עם Jitter במיקרו-שניות.מערכת ההפעלה חייבת לספק לוח זמנים תזמון משימה רציונאלי והפרעה טיפול כדי לעמוד בלוח זמנים אלה.לדוגמה, עדכון עוקב כוכבים שמגיע 5 מ"מ מאוחר יכול לגרום ללוויינים כדי לאפס את האנטנה שלה, המוביל לתקשורת שחורה.

סובלנות ואוטונומיה

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

כוח ו-Thermal Constraints

כל מחזור CPU צורכת כוח, ועודף חישוב יוצר חום כי חייב להיות מתפזר לתוך הריק של החלל.מערכת ההפעלה חייבת לתמוך מתח דינמי ותדירות הסקאלה (DVFS), קובע כי כוח מטה היקפי, ואלגוריתמים לוח זמנים הממזערים צריכת אנרגיה במהלך תקופות ליקוי כאשר סוללות הם מקור הכוח היחיד.

פיקוד מאובטח וטלמטארי

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

הסתמכות ארוכת טווח בסביבה החריפה

חלל הוא סביבה עוינת.קרינה עלולה לגרום להפרעות חד-משמעיות (בפניות) וללקט-אפים.מערכת ההפעלה חייבת לכלול קוד תיקון שגיאות (ECC) של מנהלי זיכרון, עדות עצמית תקופתית, ואת היכולת לאפס רכיבים שנכנסו למצב תקוע. Components גם עומדים בפני מחזורי טמפרטורה קיצוניים - מ -100 מעלות צלזיוס בליקוי ל-120 מעלות צלזיוס באור השמש הישיר - תוך הפעלת חיישנים תרמיים כדי להתאים את המהירויות בטוחות ולנהל את המשתנים.

שלב 2: עיצוב ארכיטקטורת ה-OS Custom

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

בחירת קרנל ו-Time Scheduling

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

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

ניהול זיכרון

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

גילוי נאות ושיקום מכניזם

מערכת ההפעלה המותאמות ללוויינים כוללת מספר רב של שכבות של הגנה:

  • (FLT:0) ,Health MonitorsveFLT:1: משימות ברמת קרנל בודקות מעת לעת את החי של משימות יישום על ידי מעקב אחר התקדמות ביצוע שלהם.משימה שלא להגיב היא מחדש, והאירוע הוא מחובר.
  • (FLT:0)Watchdog TimersovFLT:1: שעון כלב חומרה מאמת את המעבד כולו אם מערכת ההפעלה לא מצליחה לשרת אותו בתוך מרווח מוגדר.זה תופס לולאות אינסופיות ודוכני גרעין.
  • (FLT:0) מזכרי ECC ו ScrukingFreaLT:1; מערכת ההפעלה קוראת מעת לעת אזורי זיכרון ותיקון שגיאות חד-ביט אחד, מניעת הצטברות של שגיאות שעלולות להוביל להפרעות מרובות סיביות.
  • (FLT:0) TERR-Modular Redundancy (TMR)FLT:1: עבור תת-מערכות קריטיות, מערכת ההפעלה עשויה לנהל שלושה חוטי חישוב זהים ולהשתמש ברוב המצביעים כדי לבחור את הפלט.אם חוט אחד לא מסכים, היא לאפסה ומשחזרתחזרת למדינה ידועה.

שקיפות ועדכונים

משימות לוויין יכולות להימשך שנים, ופגמים בתוכנה עשויים להיחשף לאחר ההשקה.המערכת חייבת לתמוך בעדכונים על-ידי-אוויר (טא), אך בזהירות רבה.בדרך כלל, מערכת ההפעלה מחולקת למגרש "זהב" שלעולם אינו משתנה, גרעין שניתן להחליף בשלמותו, ומודולים יישומים שניתן להעלות באופן עצמאי.

שלב 3: יישום ובדיקה ריגאורית

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

בדיקות איכות הסביבה

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

בדיקה אחרונה ב-the-Loop Testing

ברגע שהמערכת יציבה בסימולציה, היא עמוסה בחומרה לטיסה בפועל – באופן חסכוני מעבד מקרינה, כגון ה- LEON3, RAD750, או סדרת Cortex-R-R-R. Hardware-in-the-loop (HIL) בדיקות המקשרות את מחשב הטיסה לפריפריה אמיתית או לחקות: יחידות מדידה, עוקבים, תגובה, תקשורת ומכשירים אלה יכולים גם להפגין את התזמון הנדרש.

קרינה ובדיקת הסביבה

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

אינטגרציה ו- Systems Testing

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

שלב 4: להתגבר על אתגרים מרכזיים

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

ארכיון תגיות: CPU, Memory and Power

מעבדים מקודמים בחלל הם לעתים קרובות 10-20 שנים מאחורי חלקים מסחריים מתקדמים בביצועים.לדוגמה, RAD750 של נאס"א, בהתבסס על PowerPC750, פועל ב -200 MHz עם 256 MB של RAM.כל te של זיכרון וכל מחזור CPU חייב להיות מוקצה בחוכמה.מהנדסים משתמשים בכלים ניתוח סטטי כדי למדוד את זמני ביצוע הגרועים והשימוש בזיכרון עד לרמה שאינה מנוצלת - כמו מתח של CPU להחלפה, או להחלפה, כמו CPU, עם CPU, עם CPU, כדי לעבור את משימות ניהול קבוע, עם CPU הנוכחי, באמצעות מחסנית, עם CPU, הוא מטווח הנוכחי, עם CPU, הוא ממעבדה, עם CPU, עם כלי ניתוח סטטי, כדי למדוד את רמת ניהול קבוע, עם CPU, כדי למדוד את רמת ניהול קבוע, עם CPU, עם CPU, עם CPU, עם CPU, עם משימות ניהול קבוע, עם CPU, כדי למדוד את משימות ניהול מחזור ניהול קבוע, עם CPU, כדי למדוד את משימות ניהול קבוע, כדי למדוד את רמת ניהול קבוע, כדי למדוד את משימות ניהול קבוע, כדי למדוד את משימות ניהול מערכת ההפעלה של משימות ניהול קבוע, כדי למדוד את זה הוא לחץ מחזור ניהול קבוע, כדי למדוד

קרינה ללא חומרה

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

תקשורת לעוצמה וביטחון

קישורים פיקוד ובקרה יש עיכובים טמונים (ממנה שנייה לכמה שניות) על מערכת ההפעלה לחטוף פקודות, לאמת אותן מפני לוח הזמנים של המשימה, ולבצע אותן בזמנים מדויקים.פרוטוקולים של אבטחה כגון CCSDS Space Data Link Security (SDLS) משולבים בערימה של רשת ההפעלה.כל הפקודות הנכנסות מאומתות באמצעות סימטריות או שיטות ציבוריות לפני שעברו לשכבה.

הסתמכות על משימות רבות-שנתיות

מערכת ההפעלה שפועלת ללא איפוס במשך 10 שנים דורשת אינטנסיביות יוצאת דופן.צוות הפיתוח אופה "לצפות כלב אדום" למערכת: אם משימת מעקב בריאות עיקרית נכשלת, מפקח בריאותי משנית משתלט על "המערכת" שיכולה לשחזר את המערכת לאחר boot, צמצום אובדן נתונים עבור שגיאות לא ניתנות לתיקון גורם זיכרון מלא, שגרת שגרתיות ומערכת העצבים לכל למערכות ה-reomylinksto-remeto-reomate.

פרספקטיבה של עולם אמיתי: בניית תבניות פרובנס

בעוד שכל מערכת לוויינית היא ייחודית, פרויקטים רבים בונים על קוד פתוח או מערכות מורשת.לדוגמה, מנהל הטיסה הליבה של נאס"א (cFE) ו-OSRP של מערכת ההפעלה (OSAL) מספקים מסגרת אשר שימשה במשימות רבות, כולל The Lunar Reconnaisance Orbiter ומעבדת מדע מאדים באופן דומה, הסוכנות האירופית סטנדרט על RTEMS עבור מספר obation כדור הארץ ומסגרת מדעית שלא נוספה תכונות מבוססות היטב.

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

עבור אלה שרוצים לחקור עוד, המשאבים החיצוניים הבאים מציעים רקע טכני מפורט:

מסקנה

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

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