מה זה Windows Embedded ומה זה Windows IOT?

אבי ורטהיימר, אוגוסט 2016.

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

עד מהרה, מיקרוסופט הוציאה לשוק את גרסת הEmbedded של Windows XP שכללה כ12,000 מודולים. רובם המכריע היה דרייברים והיתר היו המודולים שבונים את מערכת ההפעלה עצמה.

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

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

לחבילת המודולים הללו, מיקרוסופט כינתה בשם Embedded Enabling Features או EEF. וכפי שהשם מרמז, מדובר היה במודולים שאיפשרו שמערכת ההפעלה Windows שהייתה מיועדת לשימושי משרד וביית כללים, לשמש שמערכת הפעלה למערכות משובצות מחשב.

חבילת הEEF  כללה בין היתר את היכולת לעשות מיתוג (Branding) למערכת ההפעלה. יצרן מכשיר או מכונה, למשל מכשיר רפואי כלשהוא, לא היה רוצה לראות את הלוגו של מיקרוסופט מתנוסס על המסך בזמן עליית המערכת ובמקום זאת היה כנראה רוצה את הלוגו שלו. ובכן, על ידי הוספת מודול קונפיגורציה, ניתן היה לבצע זאת באמצעות הכלים של windows embedded. יש לציין, כי ניתן היה לעשות זאת בצורה עקיפה ולא רשמית באמצעות שינויים בRegistry ובקבצי הresources של מערכת ההפעלה הרגילה, אך הדבר היה אסור מבחינת רשיון השימוש של מערכת ההפעלה.

מודול נוסף שהיה מאוד שימושי היה Message Box Default Reply. מודול זה לכד כל חלון הודעה שהיה קופץ למסך מבלי שהתכוונת לכך והייתה גורמת להסתרת היישום שלך. מעבר למראה הלא מקצועי שזה היה משווה למוצר שלך, לעיתים לא היה למוצר שלך כלל מקלדת או עכבר שבאמצעותם יכול היה המשתמש להעלים את החלון. למשל במחשבים ששימשו כמסכי מידע לניהול תורים במקומות ציבוריים וכו'.

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

יתרון נוסף היה לDisk Write Filter שלמעשה לא היו נשמרים כל שינויים לא רצויים במערכת ההפעלה והיא הייתה תמיד עולה באותו המצב.

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

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

גרסת הEmbedded של Windows XP SP1 ושל SP2 נקראה Windows Embedded XP

גרסת הEmbedded של Windows XP SP3 קיבלה שם חדש, לא אינטואיטיבי במיוחד ולא מרמז בשום צורה כי זה Windows XP. השם שנבחר היה Windows Embedded Standard 2009. זאת כנראה בזכות העובדה שהוא הוכרז בשנת 2009.

בימים אלו Windows XP הייתה מאוד אהודה והיו יצרני OEM  (יצרנים של מערכות Embedded) רבים שרצו לשלב את מערכת ההפעלה Windows XP המלאה לתוך המוצרים שלהם, אלא שמבחינת רשיון מערכת ההפעלה הם היו מוגבלים בהגבלות שונות, שהבולט שבהם שאסור היה להם לייצא את מערכת ההפעלה אל מחוץ למדינה שלהם.הדבר הוביל את מיקרוסופט לבנות רשיון שימוש מיוחד למערכת ההפעלה Windows XP הרגילה לשימוש ליצרני OEM. מערכת ההפעלה הזו היא לחלוטין, אותה מערכת הפעלה Windows XP  רגילה. הדבר היחיד שהיה שונה זה הכינוי שלה הקצת מבלבל;

כינוי אותה Windows XP For Embedded Systems. וכדי להדגיש את ההבדל. כשראית שכתוב Windows XP Embedded הבנת שמדובר במערכת הפעלה המודולרית, וכשראיתה שכתובה המילה For בשם המוצר, הבנת כי מדובר בWindows XP הרגילה, אך עם רשיון שימוש ליצרני OEM. מן הראוי להדגיש, שלא כמו בWindows XP Embedded, במערכת הפעלה זו, כן נדרש לבצע אקטיבציה על כל מחשב, בדיוק כמו לWindows XP  הרגילה.

כשמיקרוסופט הוציאה את Windows 7, היא הוציאה גם את גרסת הEmbedded שלה. כהמשך לוגי של שם המוצר הקודם, היא בחרה לו את השם המוזר הבא Windows Embedded Standard 2011. אלא ששם זה לא החזיק זמן מעמד ודי מהר שינתה את שמו לשם חשד שהיה מוטציה של המוטציה של השם הקודם ושמו נקרא Windows Embedded Standard 7 או בשמו המקוצר WES7.

לעומת WES2009, WES7 כלל רק כמה מאות של מודולים. פירושו של דבר שכל מודול היה גדול יותר מאלו שבWindows Embedded XP ולמעשה הגודל המינימלי הפרקטי של מערכת הפעלה זו היה כ1.5 ג'יגה, לעומת כ300 מגה בWindows XP. גם דרישות הזכרון גדלו משמעותית למינימום פרקטי של 512 מגה, כאשר ברוב היישומים נדרש לפחות כ4 עד 8 ג'יגה של שטח דיסק ושל 1 עד 2 ג'יגה זכרון נדיף. בתחילת דרכה של מערכת הפעלה זו, נמענו רבים מלוותר על תענוגות המשאבים הדלים שדרש הWindows XP, אך עד מהרה, הדיסקים והזכרונות בנפחים הדרושים נהיו פופוליים יותר וזמינים יותר ואף זולים יותר מאלו שהיו בשימוש בתקופת הWindows XP Embedded וכך נסללה הדרך למערכת הפעלה זו שנהייתה פופולרית ביותר ועדיין כזו, עד לימי כתיבת שורות אלו.

כשיצאה גרסת SP1 של WES7, מיקרוסופט הוסיפה תוכנה בולטת נוספת הקרוייה Keyboard Filter.

באמצעות ה- Keyboard Filter, ניתן היה לחסום את כל צירופי המקשים הרצויים, כולל כל צירופי המקשים של מערכת ההפעלה, כולל Ctrl-Alt-Del ואת כל צירופי המקשים שכללו את מקש ה"Windows" כגון WINDOWS+R שמשמש להרצת תכניות וכו'.

במערכות בהן היישום שלך היה היישום היחיד שרץ על המערכת הפרקטיקה הייתה כדלקמן:

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

לאחר שעלה הKernel מגיע שלב הLogon Credential ושם ניתן להחליף את הרקע של המסך ולהסיר את סימני הלוגו של מיקרוספט (זה נעשה באמצעות תכונת הBranding של הEEF של WES7.

לאחר מכן, ניתן להגדיר שני משתמשים, האחד Administrator והשני מסוג Standard User.

את הStandard User מגדירים שיעלה אוטומאטית.

עבור העליה של הStandard User מגדירים את האפליקציה שלך כStandard Shell (במקום "שולחן העבודה").

עבור הStandard user מגדירים את ה- Keyboard Filter כך שכל צירופי המקשים של מערכת הפעלה יחסמו, למעט WINDOWS+L.

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

כעת, אם רוצים בכל זאת להגיע למערכת ההפעלה, קרי ל"שולחן העבודה" יש ללחוץ על צירוף המקשים WINDOWS+L שיעביר אותך למסך החלפת משתמש. כעת בחר את המשתמש Administrator בצירוף סיסמה שקבעת מראש. עם המעבר, יופיע "שולחן העבודה" הרגיל להמשך עבודה.

כעת, לאחר אתחול מחדש, המערכת שוב תציג רק את האפליקציה שלך.

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

עם צאת מערכת ההפעלה Windows 8, מיקרוסופט הכריזה גם על גרסת הEmbedded שלה והפעם השם קיבל תפנית מוזרה אחרת. מספר הגרסה והמילה standard החליפו מקום. למה? לאלוהים פתרונים. שם המוצר מעתה נקרא Windows Embedded 8 Standard. אם יורשה לי לנחש ניחוש לא מושכל ולא מבוסס אז נראה לי שהם הכינו את התשתית להשמטת המילה Standard משם המוצר לקראת הגרסאות הבאות. קיצור השם אם כך מעתה יהיה WE8S.

מערכת הפעלה זו בכל הקשור לכלי הקונפיגורציה ויכולות הEFF (יכולות הembedded) דמו מאוד לגרסה הקודמת WES7 אך עם מספר שיפורים. אחד התוספות היה שליטה על פעולות ההחלקה של מסך המגע שהתווספו למערכת הפעלה Windows 8 כמו גם מספר שיפורים פחות משמעותיים. אחד השינויים הטרמינולוגיים היו במונח EEF. לא נאמר יותר Embedded feature אלא נאמר Lockdown Feature, כנראה כדי לציין שהתכונות הללו נועדו "לנעול" את תצורת מערכת ההפעלה כנגד שינויים. למרות זאת מן הראוי לציין כי לא זכיתי לבצע התקנות רבות של מוצר זה, קרי, מוצר זה לא הצליח להדיר את רגלי הWES7 שעד ימים אלו נחשב מאוד פופולרי.

עם הכרזת גרסת מערכת הפעלה Windows 8.1, מיקרוסופט שינו כיוון ותפיסה ולא רק שהשמיטו את המונח Standard, הם גם חדלו להשתמש במונח Embedded והחלו להשתמש במונח חדש; Industry. ולא זו בלבד, הם גם נטשו את הרעיון של מערכת הפעלה מודולרית. שם מערכת ההפעלה החדשה, שלכאורה באה למלא את החלל של Windows Embedded יהיה כעת Windows 8.1 Industry. מערכת הפעלה זו, היא מערכת הפעלה רגילה ומלאה. תהליך ההתקנה שלה זהה למערכת הפעלה Windows 8.1 רגילה וההבדל היחיד, שהיא כוללת בתוכה עוד כמה תכונות המוכרות לנו מימי הWindows Embedded.

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

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

מערכת הפעלה Windows 10 IOT יצאה בשתי גרסאות. האחת, גרסת מערכת הפעלה מלאה ורגילה כמו כל מערכת הפעלה Windows 10  אחרת, אך עם תוספת קלה של תמיכה בDisk Write Filter ועוד כמה דברים קטנים וגרסה מוקטנת הקרוייה Windows 10 IOT Core שמיועדת לחומרת X86 וגם לחומרות מבוססות ARM.

כאמור זו כבר מערכת הפעלה שנייה מאז Windows Embedded 8 Standard מה שמרמז כי תמו מערכות ההפעלה המודולריות.

רוב תכונות lockdown (או מה שנקרא פעם Embedded Features) הושמטו ממערכת הפעלה זו ועתידם לא ברור, עת כתיבת שורות אלו.

אני יכול לציין, במעמד כתיבת מאמר זה כי לגרסה 10240 של מערכת הפעלה זו, יש תמיכה בdisk write filter, אבל אין תמיכה בשאר התכונות המסורתיות כגון Keyboard Filter. אולם בגרסה 10511 התווספה תכונת הKeyboard Filter אבל לא נוספו תכונות כגון הGesture Filter שהיו קיימות החל מWindows 8.

חדי המחשבה ובעלי הנסיון, יאמרו כי הגרסה Windows 10 IOT Core באה להחליף את מערכת ההפעלה הישנה והטובה Windows CE (או בשמה החדש Windows Embedded Compact. דבר שמיקרוסופט, לא הכריזה בפה מלא אבל כנראה שהתכוונה לכך בפועל.

שוב לציין, כי מערכות ההפעלה windows CE למינייהם התהדרו בהיותם מערכות הפעלה Real Time אבל רוב, אם לא כל ההטמעות שביצעתי למערכת ההפעלה זו, לא נועדו להשתמש בארכיטקטורת הReal-Time שלה. אם כן, בהתחשב בכך, ניתן לומר ש- Windows 10 IOT Core תהווה חלופה טובה לWindows CE לגרסאותיהן.

אם כך, מניין הזכות המוסרית של מיקרוסופט לקרוא למערכת ההפעלה שלה בשם מערכת הפעלה IOT?

ובכן, אני מבין נכון את העניין, אזי החל ממערכת הפעלה זו, והDotNet שכלול בה, התווספה תמיכה מובנית בממשקים הסטנדרטיים שמאפיינים מערכות IOT (Embedded) כגון תמיכה ישירה בממשקי חומרה GPIO, I2C, Alljoin ועוד ולא זו בלבד, גם תמיכה בהתממשקות לענן המבוסס על טכנולוגית Azure של מיקרוסופט תוך שימוש בכלי פיתוח וספריות מיוחדות המיועדות לעולם הIOT העולה לשם Azure IOT Suite.

Windows 10 IOT Core כאמור זו מערכת הפעלה מוקטנת, או נכון יותר לומר שזו ממש אותה מערכת הפעלה (בשונה מהשוואה בין מבנה Windows CE לWindows  רגיל) אלא שהוסרו ממנה טכנולוגיות רבות שנועדו ליישומים כלליים המשמשים מחשבים משרדיים ובייתיים.

ממערכת הפעלה Windows 10 IOT Core הושמטו "שולחן העבודה" או למעשה כל ממשק אחר. הדרך היחידה לגשת למערכת הפעלה זו היא באמצעות גישה מרוחקת דרך רשת באמצעות Remote Console Mode, Power Shell או Web service. למעשה ניתן "לגלוש" למחשב מרחוק ולקבל דף אינטרנטי שמשמש כממשק ניהול למערכת ההפעלה לצורך הגדרות תצורה והעברת קבצים.

נכון להיום, ישנם מספר מצומצם של חומרות שנתמכות על ידי מערכת הפעלה Windows 10 IOT Core ובינהם הRaspberry PI  המבוסס על מעבד ARM, מעבד ARM של קוואלקום ואחד ממעבדי ATOM של אינטל. ככל שהזמן חולף, ניתן לראות חומרות נוספות הנתמכות על ידי מערכת הפעלה זו.

חלק מהדברים שהושמטו מWindows 10 IOT Core זו התמיכה בטכנולוגיות GUI הפופולריות Winform, WPF וכו'. במקום זאת הוצגה לראשונה סביבת GUI  חדשה הקרוייה UWP או Univeral Windows Platform. עקרונית, הרעיון של הטכנולוגיה דומה לWPF, אלא שהרעיון בטכנולוגיה זו הוא שאנשים משתמשים באופן שוטף עם מחשבים, מחשבי לוח, טלפונים חכמים ומה שמיקרוסופט מנסה להציע כאן הוא שהמפתח יכתוב את הקוד פעם אחת ושהוא ירוץ חלק על כל הפלטפורמות. כלומר, למשל, אם היא תרוץ על מחשב, אז יופיעו הפקדים בצורה שנוח להפעילם עם עכבר, אך אם אותה תוכנה תרוץ על מחשב לוח, הפקדים ישנו צורה לכזו שנוח להפעילם באמצעות מסך המגע.

למרות היותה מערכת הפעלה מלאה ולא מודולרית ובשונה ממערכות ההפעלה Windows Embedded 8 Standard  וגם מערכת הפעלה Windows 8.1 Industry, מערכת הפעלה זו צוברת פופולריות בקרב יצרני הOEM וניתן לראות יותר ויותר פרוייקטים חדשים שמתחילים עם מערכת הפעלה זו.

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

בתחילת הדרך של Windows 10, מיקרוסופט הכריזה כי Windows 10 IOT Core תהיה זמינה חינם, אך מאוחר יותר היא הכריזה על windows 10 IOT Core Pro שעלותה מספר דולרים בודדים.

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

לסיכום:

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