פיתוח יישומים ללא מערכת הפעלה

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

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

אפשר גם בלי

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

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

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

הכל תלוי בדרישות ובתכנון נכון

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

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