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

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

שתי פילוסופיות שונות

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

המשמעות המעשית פשוטה: עם FreeRTOS מתחילים לרוץ מהר מאוד ומשלמים אחר כך בהרכבת התשתית; עם Zephyr משקיעים יותר בהתחלה ומקבלים תשתית מוכנה ואחידה. מי שרוצה רקע בסיסי על השכבה הזו ימצא אותו במאמר מה זו קושחה.

היתרונות של כל צד

  • טביעת רגל — FreeRTOS צורכת מעט מאוד זיכרון ומתאימה גם לבקרים חלשים במיוחד.
  • עקומת למידה — FreeRTOS פשוטה יותר למי שמגיע מרקע של תכנות ללא מערכת הפעלה.
  • ניידות — Zephyr מאפשרת להחליף שבב תוך שינויי הגדרה בלבד, יתרון עצום כשיש אי-ודאות בזמינות רכיבים.
  • תקשורת — Zephyr מביאה ערימות BLE, Wi-Fi, USB ו-Thread מובנות ומתוחזקות.
  • אבטחה ועדכונים — ל-Zephyr מנגנוני עדכון ואתחול מאובטח בשלים יותר כחלק מהמערכת.

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

איך בוחרים בפועל

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

ככלל אצבע: מוצר פשוט, בעל צריכת הספק נמוכה מאוד ומשימה אחת ברורה — FreeRTOS תספיק בהחלט ותקצר את זמן הפיתוח. מוצר מחובר עם BLE או Wi-Fi, ריבוי חיישנים, דרישות אבטחה ומחזור חיים ארוך — Zephyr תחזיר את ההשקעה. הרחבנו על התלות בין הבחירה הזו לתקשורת במאמר בחירת פרוטוקול תקשורת אלחוטית.

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

מה לוודא לפני שמחליטים

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

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

רוצים להפוך רעיון למוצר? צרו קשר עם צוות פרוג'קטס האוס בע"מ – טלפון: 054-8936922 | דוא"ל: info@projects-house.com – ונשמח ללוות אתכם משלב הרעיון ועד המדף.