Windows Embedded Compact 7 עדיין חי ובועט (Windows CE)

אבי ורטהיימר, פברואר 2017 - מאמר על התקנת WEC 7 על מחשב זעיר דל הספק, eBox 3350

מספר מילים עלי בהקשר למאמר זה: בין שאר ההתמחויות והעיסוקים, בשנת 2003 לערך, התחלתי לעסוק בתחום של מערכת ההפעלה Windows CE ובמהלך הזמן הוסמכתי כמדריך רשמי מוסמך על ידי מיקרוסופט למערכות הפעלה אלו וכMicrosoft Certified Specialist למערכות הפעלה אלו. לפרנסתי, בין השאר, אני נותן שירותים של התקנת מערכות הפעלה אלו ופיתוח תוכנה וחומרה בסביבה זו עבור לקוחות הי-טק.

השנה היא 2017 ואנחנו בעידן של windows 10 ומחשוב ענן. היום כבר הכל וירטואלי ודינמי, זה דור של big data ושל מציאות רבודה. Machine learning, זה כבר לא מדע בדיוני וכמות המידע הזמין וכמות הידע הדרושים כדי להשתלט ולהיות פרודוקטיבים בתחומי המחשוב של ימנו הם כבירים.

ולמרות זאת, יש עדיין ויהיו עוד הרבה יישומים שדורשים מחשוב אך במושגים של היום, איך אומר, מינימליים ביותר.

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

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

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

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

לפני שנים רבות, הופיעה לעולם מערכת הפעלה מבית מיקרוסופט שיועדה לפעול על מחשבים קטנים ושמה Windows Embedded Compact או בשמה הקודם Windows Compact Edition או כפי שכולם מכירים אותה בכינוי Windows CE.

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

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

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

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

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

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

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

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

מערכת ההפעלה היא Windows Embedded Compact 7 וסביבת הפיתוח עבורה הוא Visual Studio 2008 שניתן להתקנה על מערכת הפעלה Windows XP  ועד Windows 10.

נניח שכל שיש לך זה מחשב פי סי ללא מערכת ההפעלה ואין לך את כלי הפיתוח, הדבר הכלכלי ביותר לעשות יהיה זה מנוי MSDN בסיסי.

מנוי זה כולל אפשרות להורדה והתקנה של מערכת הפעלה למחשב שלך לבחירתך וכמו כן את סביבת הפיתוח Visual Studio 2008 ואת התוסף הדרוש על מנת ליצור ולהתקין את מערכת ההפעלה Windows Embedded Compact 7. במידה ולא בחרת באפשרות זו, תצטרך לקנות את ערכת הפיתוח בכ1000 דולרים ממפיץ מיקרוסופט Arrow OCS. רשיון מערכת הפעלה Compact נעה בין דולרים בודדים לפחות מ20 דולר, תלוי בגרסה. גם את רשיונות מערכת ההפעלה ניתן לקנות בArrow OCS. גילוי נאות: ישנם עוד כשני מפיצים בארץ אולם Arrow OCS ולקוחותיה הם לקוחות קבועים שלי. Arrow OCS היא שותף אסטרטגי שבאמצעות אני מקבל תמיכה טכנית ממיקרוסופט ברמה גבוהה והמעמיקה ביותר שניתן לקבל בתחום זה לצורך עזרה בפתרון בעיות קשות שמתגלות אצל לקוחות החברה.

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

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

וכעת שנכתב וידוי זה הבא ניגש לחלק הטכני:

שלב ראשון – הכנסת סביבת העבודה:

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

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

לאחר התקנת מערכת הפעלה על מחשב הפיתוח שלך, עליך להתקין את סביבת הפיתוח Visual Studio 2008 ואני כותב זאת בהדגשה, גם את התוספת VS 2008 SP1 אחרת התקנת השלב הבא תיכשל.

אכן, אנו בשנת 2017  וכבר ניתן להשיג גרסאות מוקדמות של VS 2017, אבל כדי להריץ את סביבת הפיתוח של Windows Embedded Compact 7, עדיין צריך להשתמש בגרסה 2008  של Visual Studio. חשוב לציין שלא ניתן להשתמש בגרסת express ויש להשתמש לפחות בגרסת professional.

לאחר התקנת הVisual studio יש להתקין לסביבה זו תוסף הקרוי Platform Builder.

הPlatform Builder זו תוספת, שכשמתקינים אותה לתוך סביבת הVisual studio היא מוסיפה יכולות לVisual studio להגדיר וליצור אימג' של מערכת הפעלה windows Embedded Compact 7  שאחר כך ניתן יהיה להתקינה על המחשב הזעיר.

בשימוש בPlatform Builder ניתן יהיה ליצור חבילת SDK פרטית של מערכת ההפעלה Compact שתיצור ולהתקין אותה על מחשבים אחרים בעלי VS 2008 לצורך פיתוח תוכנה עבור מערכת הפעלה Compact.

באמצעות הPlatform Builder ניתן יהיה ליצור קשר מרחוק ולפתח ולדבר מרחוק, ישירות על המחשב הזעיר.

אני נוטה להאמין, שאין אדם אחד שקורא מאמר זה, שלא התנסה פעמים רבות בהתקנת מערכת הפעלה windows הרגילה על מחשב כזה או אחר. אין משימה פשוטה יותר מהתקנת Windows  רגיל. השלב הראשון יהיה הכנסת דיסק ההתקנה של windows ופחות או יותר להקליק מספר הקלקות עכבר על yes ok וגם next ובכך תושלם המלאכה. אלא שלאחר מכן, יהיה עליכם להשיג את הדרייברים של החומרה שברשותכם ולהתקין אותם גם על מערכת ההפעלה כדי שזו תזהה ותפעיל את החומרה באופן תקין.

במערכת ההפעלה Compact, ההליך שונה לגמרי ויתואר בהמשך, אך בנקודה זו ארשום, שאת הדרייברים של מערכת ההפעלה compact יש להתקין לסביבת הפיתוח או במילים אחרות לשלב אותה לתוך הסביבה של VS 2008 ולהשתמש בהם אחר כך, באופן די אוטומאטי, בשלב יצירת מערכת ההפעלה. בעולם של windows compact לא משתמשים במונח דרייברים אלה במונח אחר הקרוי BSP או Board Support Package, כשהכוונה היא לספריות תוכנה שמהוות את הממשק בין מערכת ההפעלה לבין החומרה.

היות ומאמר זה מתאר עבודה עם מוצר מסויים, יש לגשת לאתר הייצרן, ולהוריד משם את הBSP  שמתאים לדגם המחשב הזעיר שברשותך ולגרסת מערכת ההפעלה Compact 7.

התקנת הBSP  היא למעשה גם כמה קליקים וnextים ומה שהתקנה זו עושה, היא מציבה את תקיית הדרייברים בתקיית העבודה של הEmbedded Compact במחשב הפיתוח שלך. מאוחר יותר כשתרצה ליצור אימג' של מערכת הפעלה Compact, תצטרך לבחור מרשימת הפריטים בתתוכנה גם את הBSP הזה.

שלב שני – יצירת פרוייקט "תכנון מערכת הפעלה Compact"

לאחר שסיימת להתקין את סביבת הפיתוח, עליך להפעיל Visual Studio ולבחור פרוייקט חדש.

סוג הפרוייקט יהיה OS DESIGN שמשמעותו, יצירת אימג' חדש של מערכת הפעלה Windows Embedded Compact 7. עם הפעלת אשף זה, ולאחר מספר קליקים וnextים, תהיה בידך תצורה זמינה של מערכת הפעלה Compact שממנה תצטרך ליצור את האימג' של מערכת ההפעלה.

באמצעות אפשרות התפריט build ולאחר כחצי שעה של עבודת מחשב עצמאית, תוכל למצוא בתקיה המתאימה קובץ הנקרא nk.bin, שזהו למעשה קובץ אחד המכיל בתוכו את כל מערכת ההפעלה. גולד הקובץ הזה יכול לנוע בין 20 ל50 מגה בייט בלבד.

שלב שלישי – התקנת מערכת הפעלה על המחשב הזעיר.

כשברשותך, קובץ הnk.bin, עליך לקחת SD CARD פשוט בקיבולת הזעירה ביותר שתמצא ולפרמט אותה כWindows CE bootable. יש כלים חופשיים זמינים באינטרנט לשם כך.

לאחר מכן, כל שעליך לעשות זה להעתיק את הקובץ לSD CARD ולהכניס למחשב הזעיר ובכך הושלמה המשימה.

שלב רביעי – פיתוח תוכנה.

פיתוח תוכנה למערכת הפעלה compact זמין בשתי שיטות. האחת פיתוח native code   באמצעות C++ או פיתוח בדוט נט באמצעות כל שפה שזמינה לכך, אני עובד עם C#.

על מנת לעשות זאת, חזור למחשב הפיתוח שלך ובאמצעות הplatform builder צור SDK למחשב שלך והתקן אותו על סביבת הפיתוח.

מהמחשב שלך בו הותקן הVS, העתק את הקבצים המתאימים של הcorecon והעבר אותם אל המחשב הזעיר. באמצעות חיבור כרטיס רשת, הגדרות קצרות בVS והפעלת היישום במחשב הזעיר, תוכל לכתוב את הקוד במחשב האישי שלך ובהרצתו, הוא יטען דרך הרשת במחשב הזעיר ויורץ עליו, תוך שכל יכולות הdebug נשמרות כולל breaks, step by step וכו'.

שלב אחרון – התקנת התוכנה

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

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

משאבים נוספים:

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

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

בהצלחה ובהנאה

אבי ורטהיימר