محاكاة افتراضية بمستوى نظام التشغيل
الافتراضية بمستوى نظام التشغيل (بالإنجليزية: Operating-system-level virtualization) هي طريقة لإنشاء بيئة افتراضية على مستوى نظام التشغيل حيث أن نواة نظام التشغيل تسمح بإنشاء عدة مستخدمين بدلا من واحد مع مساحات منعزلة. مثل هذه الحالات (التي تسمى أحيانا الحاويات، حاويات البرمجيات، أو محركات الافتراضية (VE)، خدمة الشبكة الخاصة الافتراضية (VPS)، أو السجون) حيث يبدو لمستخدمها عند اتصاله بالملقم كأنه مدير الخادم والمشرف عليه.
على أنظمة التشغيل مثل يونكس ، يمكن للمرء أن يعمل على هذه التقنية لتنفيذا عدة مهام قياسية بصفة الجدر . بالإضافة إلى آليات العزل، غالبا ما توفر النواة ميزات كإدارة الموارد للحد من تأثير الأنشطة في الخوادم أو تغلب حاوية على حاويات أخرى.
الاستخدامات
تستخدم التقنية عادة في بيئة الاستضافة الظاهرية، حيث أنه من الضروري تخصيص موارد الملقم وتحديدها بشكل آمن بين عدد كبير من المستخدمين .و قد يستخدمها مسؤولي النظام لتعزيز أجهزة الخوادم عن طريق نقل الخدمات في مضيفين منفصل في حاويات على خادم واحد. أو فصل العديد من التطبيقات كل على حدى في حاويات لتحسين الأمان وإستقلالية الأجهزة.
تطبيقات
آلية | نظام التشغيل | الرخصة | متوفر منذ/خلال | الميزات | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
عزل نظام الملفات | نسخ عند الكتابة | حصص القرص | I/O تحديد | تحديد الذاكرة | حصص المعالج | عزل الشبكة | تداخل الإفتراضية | فحص التقسيمات الهجرة الألية |
عزل صلاحيات الجذر | ||||
chroot | معظم الانظمة شبيه يونكس | يختلف حسب نظام التشغيل | 1982 | جزئي[arabic-abajed 1] | لا | لا | لا | لا | لا | لا | نعم | لا | لا |
دوكر (برمجية) | لينكس[2] | رخصة أباتشي | 2013 | نعم | نعم | Not directly | Not directly | نعم | نعم | نعم | نعم | لا | لا |
Linux-VServer (security context) |
جنو/لينكس | حر | 2001 | نعم | نعم | نعم | نعم[arabic-abajed 2] | نعم | نعم | جزئي[arabic-abajed 3] | ؟ | لا | جزئي |
lmctfy | جنو/لينكس | رخصة أباتشي 2.0 | 2013 | نعم | نعم | نعم | نعم[arabic-abajed 2] | نعم | نعم | جزئي [arabic-abajed 3] | ؟ | لا | جزئي |
ال إكس سي | جنو/لينكس | حر | 2008 | نعم[3] | نعم | جزئي[arabic-abajed 4] | جزئي[arabic-abajed 5] | نعم | نعم | نعم | نعم | لا | نعم[3] |
LXD | جنو/لينكس | رخصة أباتشي | 2015 | نعم | نعم | جزئي(see LXC) | جزئي(see LXC) | نعم | نعم | نعم | نعم | جزئي | نعم |
أوبن في زي | جنو/لينكس | رخصة جنو العمومية | 2005 | نعم | لا | نعم | نعم[arabic-abajed 6] | نعم | نعم | نعم[arabic-abajed 7] | جزئي[arabic-abajed 8] | نعم | نعم |
Virtuozzo | جنو/لينكس, | إحتكاري | 2000[6] | نعم | نعم | نعم | نعم[arabic-abajed 9] | نعم | نعم | نعم[arabic-abajed 7] | جزئي[arabic-abajed 10] | نعم | نعم |
Solaris Containers (Zones) | اي لوم او اس (أوبن سولاريس), سولاريس |
CDDL, برمجيات احتكارية |
2004 | نعم | نعم (ZFS) | نعم | جزئي[arabic-abajed 11] | نعم | نعم | نعم[arabic-abajed 12][9][10] | جزئي[arabic-abajed 13] | جزئي[arabic-abajed 14][arabic-abajed 15] | نعم |
FreeBSD jail | فري بي إس دي | رخص بي إس دي | 2000[11] | نعم | نعم (ZFS) | نعم[arabic-abajed 16]jail&sektion=8 FreeBSD jail man page] for details.}} | لا | نعم[12] | نعم | نعم[13] | نعم | لا | نعم[14] |
sysjail | أوبن بي إس دي, نت بي إس دي | رخص بي إس دي | 2006–2009 (اعتبارًا من 3 مارس 2009 , it is no longer supported) | نعم | لا | لا | لا | لا | لا | نعم | لا | لا | ? |
WPARs | آي بي إم إيه آي إكس | إحتكاري | 2007 | نعم | لا | نعم | نعم | نعم | نعم | نعم[arabic-abajed 17] | لا | نعم[16] | ? |
HP-UX Containers (SRP) | إتش بي - يو إكس | إحتكاري | 2007 | نعم | لا | جزئي[arabic-abajed 18] | نعم | نعم | نعم | نعم | ؟ | نعم | ? |
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، مؤرشف من الأصل في 23 ديسمبر 2018.
- "Docker drops LXC as default execution environment"، InfoQ، مؤرشف من الأصل في 27 مارس 2019.
- Graber, Stéphane (01 يناير 2014)، "LXC 1.0: Security features [6/10]"، مؤرشف من الأصل في 07 مايو 2019، اطلع عليه بتاريخ 12 فبراير 2014،
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، مؤرشف من الأصل في 03 مارس 2016.
- "Docker inside CT"، مؤرشف من الأصل في 22 يوليو 2017.
- "Initial public prerelease of Virtuozzo (named ASPcomplete at that time)"، مؤرشف من الأصل في 14 أبريل 2016.
- "Parallels Virtuozzo Now Provides Native Support for Docker"، مؤرشف من الأصل في 13 مايو 2016.
- Pijewski, Bill، "Our ZFS I/O Throttle"، مؤرشف من الأصل في 05 أكتوبر 2018.
- Network Virtualization and Resource Control (Crossbow) FAQ نسخة محفوظة 21 أكتوبر 2009 على موقع واي باك مشين.
- "Managing Network Virtualization and Network Resources in Oracle® Solaris 11.2"، مؤرشف من الأصل في 29 أبريل 2016.
- "Contain your enthusiasm - Part Two: Jails, Zones, OpenVZ, and LXC"، مؤرشف من الأصل في 16 مايو 2018،
Jails were first introduced in FreeBSD 4.0 in 2000
- "Hierarchical_Resource_Limits - FreeBSD Wiki"، Wiki.freebsd.org، 27 أكتوبر 2012، مؤرشف من الأصل في 18 فبراير 2018، اطلع عليه بتاريخ 15 يناير 2014.
- "Implementing a Clonable Network Stack in the FreeBSD Kernel" (PDF)، usenix.org، 13 يونيو 2003، مؤرشف من الأصل (PDF) في 18 أبريل 2016.
- "3.5. Limiting your program's environment"، Freebsd.org، مؤرشف من الأصل في 23 ديسمبر 2018، اطلع عليه بتاريخ 15 يناير 2014.
- "IBM Fix pack information for: WPAR Network Isolation - United States"، ibm.com، مؤرشف من الأصل في 30 يونيو 2017.
- Live Application Mobility in AIX 6.1 نسخة محفوظة 08 يوليو 2017 على موقع واي باك مشين.
- بوابة تقنية المعلومات