محاكاة افتراضية بمستوى نظام التشغيل
الافتراضية بمستوى نظام التشغيل (بالإنجليزية: Operating-system-level virtualization) هي طريقة لإنشاء بيئة افتراضية على مستوى نظام التشغيل حيث أن نواة نظام التشغيل تسمح بإنشاء عدة مستخدمين بدلا من واحد مع مساحات منعزلة. مثل هذه الحالات (التي تسمى أحيانا الحاويات، حاويات البرمجيات، أو محركات الافتراضية (VE)، خدمة الشبكة الخاصة الافتراضية (VPS)، أو السجون) حيث يبدو لمستخدمها عند اتصاله بالملقم كأنه مدير الخادم والمشرف عليه.
على أنظمة التشغيل مثل يونكس ، يمكن للمرء أن يعمل على هذه التقنية لتنفيذا عدة مهام قياسية بصفة الجدر . بالإضافة إلى آليات العزل، غالبا ما توفر النواة ميزات كإدارة الموارد للحد من تأثير الأنشطة في الخوادم أو تغلب حاوية على حاويات أخرى.
الاستخدامات
[عدل]تستخدم التقنية عادة في بيئة الاستضافة الظاهرية، حيث أنه من الضروري تخصيص موارد الملقم وتحديدها بشكل آمن بين عدد كبير من المستخدمين .و قد يستخدمها مسؤولي النظام لتعزيز أجهزة الخوادم عن طريق نقل الخدمات في مضيفين منفصل في حاويات على خادم واحد. أو فصل العديد من التطبيقات كل على حدى في حاويات لتحسين الأمان وإستقلالية الأجهزة.
تطبيقات
[عدل]آلية | نظام التشغيل | الرخصة | متوفر منذ/خلال | الميزات | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
عزل نظام الملفات | نسخ عند الكتابة | حصص القرص | I/O تحديد | تحديد الذاكرة | حصص المعالج | عزل الشبكة | تداخل الإفتراضية | فحص التقسيمات الهجرة الألية |
عزل صلاحيات الجذر | ||||
chroot | معظم الانظمة شبيه يونكس | يختلف حسب نظام التشغيل | 1982 | جُزئيٌّ[ا] | لا | لا | لا | لا | لا | لا | نعم | لا | لا |
دوكر (برمجية) | لينكس[2] | رخصة أباتشي | 2013 | نعم | نعم | Not directly | Not directly | نعم | نعم | نعم | نعم | لا | لا |
Linux-VServer (security context) |
جنو/لينكس | حر | 2001 | نعم | نعم | نعم | نعم[ب] | نعم | نعم | جُزئيٌّ[ج] | ؟ | لا | جُزئيٌّ |
lmctfy | جنو/لينكس | رخصة أباتشي 2.0 | 2013 | نعم | نعم | نعم | نعم[ب] | نعم | نعم | جُزئيٌّ [ج] | ؟ | لا | جُزئيٌّ |
ال إكس سي | جنو/لينكس | حر | 2008 | نعم[3] | نعم | جُزئيٌّ[د] | جُزئيٌّ[ه] | نعم | نعم | نعم | نعم | لا | نعم[3] |
LXD | جنو/لينكس | رخصة أباتشي | 2015 | نعم | نعم | جُزئيٌّ(see LXC) | جُزئيٌّ(see LXC) | نعم | نعم | نعم | نعم | جُزئيٌّ | نعم |
أوبن في زي | جنو/لينكس | رخصة جنو العمومية | 2005 | نعم | لا | نعم | نعم[و] | نعم | نعم | نعم[ز] | جُزئيٌّ[ح] | نعم | نعم |
Virtuozzo | جنو/لينكس, | إحتكاري | 2000[6] | نعم | نعم | نعم | نعم[ط] | نعم | نعم | نعم[ز] | جُزئيٌّ[ي] | نعم | نعم |
Solaris Containers (Zones) | اي لوم او اس (أوبن سولاريس), سولاريس |
CDDL, برمجيات احتكارية |
2004 | نعم | نعم (ZFS) | نعم | جُزئيٌّ[يا] | نعم | نعم | نعم[يب][9][10] | جُزئيٌّ[يج] | جُزئيٌّ[يد][يه] | نعم |
FreeBSD jail | فري بي إس دي | رخص بي إس دي | 2000[11] | نعم | نعم (ZFS) | نعماكتب عنوان المرجع بين علامتي الفتح <ref> والإغلاق </ref> jail&sektion=8 FreeBSD jail man page] for details.}}
|
لا | نعم[12] | نعم | نعم[13] | نعم | لا | نعم[14] |
sysjail | أوبن بي إس دي، نت بي إس دي | رخص بي إس دي | 2006–2009 (اعتبارًا من 3 مارس 2009[تحديث], it is no longer supported) | نعم | لا | لا | لا | لا | لا | نعم | لا | لا | ؟
|
WPARs | آي بي إم إيه آي إكس | إحتكاري | 2007 | نعم | لا | نعم | نعم | نعم | نعم | نعم[يو] | لا | نعم[16] | ؟
|
HP-UX Containers (SRP) | إتش بي - يو إكس | إحتكاري | 2007 | نعم | لا | جُزئيٌّ[يز] | نعم | نعم | نعم | نعم | ؟ | نعم | ؟
|
iCore Virtual Accounts | ويندوز اكس بي | إحتكاري | 2008 | نعم | لا | نعم | لا | لا | لا | لا | ؟ | لا | ؟
|
Sandboxie | ويندوز | إحتكاري | 2004 | نعم | نعم | جُزئيٌّ | لا | لا | لا | جُزئيٌّ | لا | لا | نعم |
Spoon | ويندوز | إحتكاري | 2012 | نعم | نعم | لا | لا | لا | لا | نعم | لا | لا | نعم |
VMware ThinApp | ويندوز | إحتكاري | 2008 | نعم | نعم | لا | لا | لا | لا | نعم | لا | لا | نعم |
ملاحظات
[عدل]- ^ Root user can easily escape from chroot. Chroot was never supposed to be used as a security mechanism.[1]
- ^ ا ب Utilizing the CFQ scheduler, there is a separate queue per guest.
- ^ ا ب Networking is based on isolation, not virtualization.
- ^ Disk quotas per container are possible when using separate partitions for each container with the help of LVM.
- ^ I/O rate limiting is supported when using Btrfs.
- ^ Available since Linux kernel 2.6.18-028stable021. Implementation is based on CFQ disk I/O scheduler, but it is a two-level schema, so I/O priority is not per-process, but rather per-container.[4]
- ^ ا ب Each container can have its own IP addresses, firewall rules, routing tables and so on. Three different networking schemes are possible: route-based, bridge-based, and assigning a real network device (NIC) to a container.
- ^ Docker containers can run inside OpenVZ containers.[5]
- ^ Available since version 4.0, January 2008.
- ^ Docker containers can run inside Virtuozzo containers.[7]
- ^ Yes with illumos[8]
- ^ See OpenSolaris Network Virtualization and Resource Control for more details.
- ^ Only when top level is a KVM zone (illumos) or a kz zone (Oracle).
- ^ Starting in Solaris 11.3 Beta, Solaris Kernel Zones may use live migration.
- ^ Cold migration (shutdown-move-restart) is implemented.
- ^ Available since TL 02.[15]
- ^ Yes with logical volumes.
مراجع
[عدل]- ^ "3.5. Limiting your program's environment". freebsd.org. مؤرشف من الأصل في 2018-12-23.
- ^ "Docker drops LXC as default execution environment". InfoQ. مؤرشف من الأصل في 2019-03-27.
- ^ ا ب Graber، Stéphane (1 يناير 2014). "LXC 1.0: Security features [6/10]". مؤرشف من الأصل في 2019-05-07. اطلع عليه بتاريخ 2014-02-12.
LXC now has support for user namespaces. [...] LXC is no longer running as root so even if an attacker manages to escape the container, he'd find himself having the privileges of a regular user on the host
- ^ "I/O priorities for containers". OpenVZ Virtuozzo Containers Wiki. مؤرشف من الأصل في 2016-03-03.
- ^ "Docker inside CT". مؤرشف من الأصل في 2017-07-22.
- ^ "Initial public prerelease of Virtuozzo (named ASPcomplete at that time)". مؤرشف من الأصل في 2016-04-14.
- ^ "Parallels Virtuozzo Now Provides Native Support for Docker". مؤرشف من الأصل في 2016-05-13.
- ^ Pijewski، Bill. "Our ZFS I/O Throttle". مؤرشف من الأصل في 2018-10-05.
- ^ Network Virtualization and Resource Control (Crossbow) FAQ نسخة محفوظة 21 أكتوبر 2009 على موقع واي باك مشين.
- ^ "Managing Network Virtualization and Network Resources in Oracle® Solaris 11.2". مؤرشف من الأصل في 2016-04-29.
- ^ "Contain your enthusiasm - Part Two: Jails, Zones, OpenVZ, and LXC". مؤرشف من الأصل في 2018-05-16.
Jails were first introduced in FreeBSD 4.0 in 2000
- ^ "Hierarchical_Resource_Limits - FreeBSD Wiki". Wiki.freebsd.org. 27 أكتوبر 2012. مؤرشف من الأصل في 2018-02-18. اطلع عليه بتاريخ 2014-01-15.
- ^ "Implementing a Clonable Network Stack in the FreeBSD Kernel" (PDF). usenix.org. 13 يونيو 2003. مؤرشف من الأصل (PDF) في 2016-04-18.
- ^ "3.5. Limiting your program's environment". Freebsd.org. مؤرشف من الأصل في 2018-12-23. اطلع عليه بتاريخ 2014-01-15.
- ^ "IBM Fix pack information for: WPAR Network Isolation - United States". ibm.com. مؤرشف من الأصل في 2017-06-30.
- ^ Live Application Mobility in AIX 6.1 نسخة محفوظة 08 يوليو 2017 على موقع واي باك مشين.