האם Windows 10 IOT Core באמת מחליף את Windows CE

אבי ורטהיימר, פברואר 2017 – מאמר השוואה בין שתי מערכות ההפעלה, דעה סובייקטיבית.

 

מערכת הפעלה Windows CE הוכרזה לראשונה לפני יותר מ20 שנה. לפני כ5 שנים שונה שמה של מערכת ההפעלה לWindows Embedded Compact כאשר הגרסה הראשונה הייתה 7 ולאחר כשנתיים הוכרזה גרסה 2013. מאז ועד היום וככל הנראה עד עולם, לא יוכרזו גרסאות נוספות לגרסה זו, או במילים אחרות סופו של עידן. הערה: לצורך נוחות, למרות השוני בין הגרסאות, לצורך מאמר זה אקרא לכל הגרסאות הCompact בשם Windows CE.

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

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

ולמה הכוונה? כל דרייבר או קוד שנכתב עבור windows CE לא ירוץ על Windows 10 IOT Core.

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

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

מחיר

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

טכנולוגית פיתוח חדשה

הרעיון שמשאבי פיתוח במחשב מוקטן עם מערכת הפעלה IOT Core ירוץ גם על מחשב עם Windows 10 רגיל הביא את מיקרוסופט לפתח ארכיטקטורת תוכנה חדשה לפיתוח דרייברים וגם ליישומים. האות U תייצג את המונח Universal כלומר "ירוץ על כל גרסאות הwindows 10 והמונחים הם Universal Windows Drivers למודל של פיתוח דרייברים וUniversal Windows application לפיתוח יישומים שירוצו על כל הפלטפורמות. מונח מסכם יהיה UWP או Universal Windows Platform.

בגרסת דוט נט החדשה שמגיעה עם Windows 10 יש framework לפיתוח ישומי UWP. זה framework שמאוד דומה לWPF אבל הוא לא כזה. כנראה יותר נכון יהיה לומר שזה המשך של טכנולוגיה RT נמצאת כאן בסביבה מספר שנים. שמעתם עליה? סביר שלא.. במילים קצרות ולא לגמרי מדוייקות זו גרסה מוקטנת של דוט נט  שיועדה במקור למחשבים קטנים כגון מחשב כף יד וכו'.

בWindows 10 הרגיל ניתן להשתמש בWinFrom ובWPF אבל בWindows 10 IOT Core ניתן להריץ רק יישומי UWP.

ומה לגבי דרייברים? הדבר די דומה, בWindows 10 IOT Core ירוצו רק הדרייברים במודל החדש.

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

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

אין desktop shell

בWindows 10 IOT Core אין למעשה כלל Shell. כל שניתן להריץ על מערכת הפעלה זו, זה את היישום שלכם בלבד. היישום שלכם יהיה הדבר היחיד שעולה ומציג למסך. למעשה למערכת הפעלה זו, אפשר לומר שאין כלום, למעט גרעין מערכת ההפעלה. למשל, אין תוכנת גלישה שיודעת לרוץ על מערכת הפעלה זו או file explorer, פשוט כלום. זה אומר בין היתר שלא תוכלו להריץ יישומי html שפותחו לעבוד תחת תוכנת גלישה למשל.

אין תמיכה בReal-Time

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

למרות שבכל המקרים שפגשתי יישומי windows CE, אני באופן אישי מעולם לא נתקלתי ביישום שפותח ליישום Real Time, כך שבכל הקשור ללקוחות שאני הכרתי, עובדה זו לא מהווה אבדן גדול.

מבחר חומרות שתומכות בWindows 10 IOT Core

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

ובכן, לגבי הWindows 10 IOT Core, לא נראה שיצרני החומרה רצים בהמונייהם לתמוך בחומרה זו ונכון להיום יש מספר מועט של יצרני חומרה התומכים, למעשה נכון לעת כתיבת מאמר זה, מעט עד כדי 3 יצרנים שידועים לי. הבעיה היא אף קשה יותר, היות וכל היצרנים הללו מציעים רק חומרות ברמה של Reference design  או ברמה של מייקרים (ביטוי נחמד לחובבי אלקטרוניקה). נכון להיום, יזם שיהיה מעוניין להרים פרוייקט מבוסס Windows 10 IOT Core, יצטרך לתכנן בעצמו את החומרה עליה המוצר שלו ירוץ, או להזמין תכנון כזה מאחד היצרנים הבודדים בתחום. החדשות הטובות בהקשר זה הם שאם אתה מתכנן פרוייקט פשוט בכמויות קטנות, לא נראה לי שיהיה "אסון" אם תשתמש בreference design כמוצר לproduction, אבל אם מדובר במוצר שתייצר בכמויות גדולות, המחיר של החומרה תהייה זולה במידה שלא נראתה מעולם בתחום הX86.

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

 

תהליך התקנה של מערכת הפעלה

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

לסיכום, אענה על השאלה: האם Windows 10 IOT Core מחליף את Windows CE?

אם חשבת שתוכל להעביר את ההשקעות שלך בwindows CE לWindows 10 IOT Core, אז כאמור, התשובה היא שלילית – Windows 10 IOT Core לא מחליפה את Windows CE והיא גם לא רצה על החומרות שתומכות בWindows CE. כלומר, היא גם לא תרוץ על שום חומרה שיש לך שרצה כעת על Windows CE.

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

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

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

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

למרות המילים הקשות הללו, לאחרונה, יותר ויותר, אני מוצא מאמרים באתר MSDN של מיקרוסופט ובאתר developers שלהם הקשורים למערכת הפעלה זו. יותר ויותר חומרים שראיתי קודם באתרי "חוץ מיקרוסופט" נכנסו פנימה. האם זה רמז למחוייבות לעתיד לבוא?

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

אם חשבתם על כניסה לתהליך פיתוח מערכת embedded חדשה או להתקדם מWindows CE, אוכל לעמוד לרשותכם בייעוץ רחב יותר ממה שמאמר זה יכול להציע

בברכה

אבי ורטהיימר