Xen

Xen (מבוטא "זֶן") היא תוכנת Hypervisor המאפשרת להריץ מערכות הפעלה על גבי מכונה וירטואלית. Xen רצה על מעבדי אינטל, AMD ומעבדי PowerPC של IBM. ניתן להריץ באמצעותה מספר מערכות הפעלה על אותו המחשב בו זמנית, כולל גרסאות של לינוקס, BSD וחלונות. היא עושה זאת בשיטה של פארא-וירטואליזציה, שיטה הדורשת שינויים במערכת ההפעלה האורחת, או ללא שינוי כלל – באמצעות וירטואליזציית חומרה (טכנולוגיית VT, פסיפיקה וכדומה).

==היסטוריה==
פיתוחה של Xen החל בשנת 1995 במעבדות אוניברסיטת קיימברידג' בראשות ד"ר איאן פראט (Ian Pratt), כחלק ממערכת הפעלה למולטימדיה בשם Nemesis. באותה תקופה המחשבים הביתיים לא היו בעלי משאבים מספקים כדי להריץ את Xen. עם השנים המחשבים הפכו לחזקים דיים כדי להפיק את מלוא התועלת מטכנולוגיה זו.

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

התוכנה פורסמה לראשונה לרשות הציבור ב־2003.

בסוף שנת 2007, נרכשה XenSource על ידי Citrix Systems האמריקאית, אשר הוסיפה את הטכנולוגיה לסל המוצרים שלה בשם המסחרי XenServer.

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

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

==הפתרון של Xen==
לעומת התוכנות VMWare, QEMU, Bochs ויישומים אחרים, הפתרון של Xen דורש ביצוע שינויים במערכת ההפעלה האורחת. במקום שהמכונה הווירטואלית של Xen תנצל משאבים רבים, מערכת ההפעלה האורחת תוכל לתקשר אתה ישירות, מאחר שהיא מודעת לקיומה. Xen עצמה היא מעין ארכיטקטורת חומרה חדשה, שמחליפה את הפלטפורמה בה מותקנת מערכת ההפעלה העיקרית, ועבורה יש צורך להסב ליבות של מערכות ההפעלה שרוצים להריץ במכונה הווירטואלית.

השינויים הם קטנים יחסית, ולכן צוות הפיתוח יכול לעמוד במשימה. הפרויקט המקורי יצר גרסת לינוקס, גרסת NetBSD וגם גרסת FreeBSD שרצות על Xen. מספר הפצות לינוקס, בהן SUSE ו-Fedora כבר מופצות כאשר הן כוללות אפשרות לרוץ כמערכת אורחת במכונת Xen וירטואלית.

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

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

אינטל, HP, IBM וסאן מיקרוסיסטמס עסוקות כולן בהסבת Xen לארכיטקטורות החומרה ומערכות ההפעלה שלהן. לעומתן מיקרוסופט, שהייתה מעורבת בשלבים המוקדמים בפרויקט באמצעות מעבדות המחקר שלה, ואף פיתחה בהן אב-טיפוס של חלונות עבור Xen, הפסיקה את הפיתוח וכיום אינה מפתחת יותר תמיכה ב־Xen למערכת ההפעלה שלה.
מיקרוסופט השקיעה מאמצים בטכנולוגיות Virtual PC אותן היא רכשה בשנת 2003 מחברת Connectix כפי הנראה במטרה לפתח פתרון משלה.

במהלך הזמן, הודות למאמציהן של AMD ו־Intel הטכנולוגיה הפכה יעילה עוד יותר. בשבבים החדשים של מעבדיהן יש חלק מיוחד בשם VMX Root, שמבצע את מה שה- VMM של Xen עשה בחומרה וללא צורך בפאטצ' בינארי יקר. שבבים אלו אינם מיועדים להחליף את מדמה החומרה של Xen או של VMWare, אלא לשמש אותם ולעזור להם.

==המתחרים==
ל-Xen יש מתחרים למרות הסיוע והגיבוי הנרחב שהפרויקט זוכה לו, חברת EMC שרכשה את VMWare כבר מציעה תמיכה בריבוי מעבדים (עד 8 מעבדים בגרסה העדכנית של vSphere). חברת מיקרוסופט מפתחת טכנולוגיית מכונה וירטואלית דומה שהייתה צפויה להיות זמינה בשנת 2007, וגם IBM מפתחת טכנולוגיה משלה בשם rHype, אבל ככל הנראה לא עבור מעבדי אינטל.

בנוסף לכך, ישנן אופציות פחות כבדות, אשר מאפשרות חלוקת מחשב בין מספר משתמשים. לדוגמה: [http://user-mode-linux.sourceforge.net/ User Mode Linux], [http://openvz.org/ OpenSZ]/Virtuozo, ו־ Linux-VServer

==שימושים==
אפשרויות השימוש הן רבות. בין היישומים המתבקשים: וירטואליזציה של חוות שרתים, סביבות מבחן לניהול תצורה, מערכות בדיקות איכות, העברה "חמה" של מערכת הפעלה מחומרה אחת לאחרת. VM Relocation, מתחרה בטכנולוגיה דומה של חברת VMWare המכונה VMotion, אבל עם היתרון המובהק של Xen הודות לתקשורת הבלתי אמצעית עם מערכת ההפעלה האורחת.

==קישורים חיצוניים==

* 

* [http://www.cl.cam.ac.uk/Research/SRG/netos/xen The Xen™ virtual machine monitor]

קטגוריה:וירטואליזציה