LXC

LXC (קיצור של: Linux Containers) היא שיטת וירטואליזציה ברמת מערכת ההפעלה להפעלת מספר מערכות לינוקס (קונטיינרים) מבודדות על מארח בקרה באמצעות ליבת לינוקס אחת.

ליבת לינוקס מספקת את פונקציונליות cgroups המאפשרת הגבלה ותעדוף של משאבים (מעבד, זיכרון, קלט/פלט, רשת וכו') ללא צורך בהפעלת מכונות וירטואליות כלשהן, וגם את פונקציונליות בידוד מרחב השמות המאפשרת בידוד מלא של סביבת ההפעלה, כוללים תהליך עצים, רשתות, מזהים המשתמשים ועיגון מערכות קבצים שרואה היישום.<ref></ref>

LXC משלב את cgroups של הליבה ותמיכה במרחבי שמות מבודדים כדי לספק סביבה מבודדת ליישומים. גרסאות מוקדמות של Docker השתמשו ב-LXC כדרייבר להרצת קונטיינרים, אם כי LXC נעשה אופציונלי בגרסה 0.9 והתמיכה בוטלה ב-Docker v1.10.<ref></ref><ref></ref> הפניות לקונטיינרי לינוקס מתייחסות בדרך כלל<ref></ref> לקונטיינרים של Docker הפועלים על לינוקס.

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

== אבטחת מידע ==
במקור, קונטיינרים של LXC לא היו מאובטחים כמו שיטות וירטואליזציה אחרות ברמת מערכת ההפעלה כגון OpenVZ: בליבות לינוקס לפני 3.8, משתמש השורש של מערכת האורח יכול להריץ קוד שרירותי במערכת המארחת עם הרשאות שורש, בדיוק כפי שהוא יכול ב"אזורי" chroot.<ref></ref> החל מה-LXC&nbsp;מהדורת 1.0, ניתן להפעיל קונטיינרים כמשתמשים רגילים על המארח באמצעות "קונטיינרים בלתי מורשים".<ref name="lxc-1-0-security-features/"></ref> קונטיינרים לא מורשים מוגבלים יותר בכך שהם אינם יכולים לגשת ישירות לחומרה. עם זאת, אפילו קונטיינרים מועדפים צריכים לספק בידוד הולם ב-LXC&nbsp;מודל אבטחה 1.0 (אם מוגדר כראוי).<ref name="lxc-1-0-security-features/" />

== חלופות ==
LXC דומה לטכנולוגיות וירטואליזציה אחרות ברמת מערכת ההפעלה בלינוקס כמו OpenVZ ו- Linux-VServer, כמו גם לאלו במערכות הפעלה אחרות כמו כלא FreeBSD, מחיצות עומס עבודה AIX ומכולות Solaris . בניגוד ל-OpenVZ, LXC עובד בקרנל וניל לינוקס ללא צורך בהחלת תיקונים נוספים על מקורות הליבה. גרסה 1 של LXC, אשר שוחררה ב-20 בפברואר 2014, היא גרסה נתמכת לטווח ארוך ומיועדת לתמיכה למשך חמש שנים. <ref></ref> LXC 2.0 ו-3.0 הם מהדורות תמיכה ארוכות טווח: LXC 2.0 (תמיכה עד יוני 2021); LXC 3.0 (עד 1 ביוני 2023).<ref></ref>

=== LXD ===
LXD הוא מנהל קונטיינרים, למעשה חלופה לכלים של LXC, (ולא "שכתוב של LXC"). למעשה הוא בונה על גבי LXC כדי לספק חווית משתמש טובה יותר <ref></ref>

== ראו גם ==
* Docker, פרויקט האוטומציה של פריסה של יישומים בתוך מיכלי תוכנה
* וירטואליזציה ברמת מערכת ההפעלה

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

* 
* [http://www.ibm.com/developerworks/linux/library/l-lxc-containers/ IBM developerworks article about LXC]
* [http://blog.bofh.it/debian/id_413 "Evading from Linux Containers" by Marco D'Itri]
* [http://www.haifux.org/lectures/299/netLec7.pdf Presentation about cgroups and namespaces, the underlying technology of Linux containers, by Rami Rosen]
* [http://haifux.org/lectures/320/netLec8_final.pdf Presentation about Linux Containers and the future cloud, by Rami Rosen]
* [https://wiki.deimos.fr/LXC_:_Install_and_configure_the_Linux_Containers LXC : Install and configure the Linux Containers]
* [https://lwn.net/Articles/515034/ LSS: Secure Linux containers] (LWN.net)
* [http://z900collector.wordpress.com/linux/containers/ Introduction to Linux Containers]
* , April 2013

== הערות שוליים ==

קטגוריה:וירטואליזציה
קטגוריה:תוכנות מערכת
קטגוריה:תוכנה חופשית