آلة افتراضية تعتمد على النواة

كيه في إم
المؤلف(ون) الأصلي(ون)قمرانت
المطور(ون)مجتمع نواة لينكس
مستودع
  • git.kernel.org/pub/scm/virt/kvm/kvm.git
مكتوب فيج
نظام التشغيلشبيه يونكس
منصةARM ، PowerPC ، ESA/390 ، IA-32 ، x86-64
يكتبالمشرف الافتراضي
رخصةGNU GPL أو LGPL
موقع إلكترونيwww.linux-kvm.org

آلة افتراضية مبنية على النواة ( KVM ) هي وحدة محاكاة افتراضية مجانية ومفتوحة المصدر في نواة لينكس تسمح للنواة بالعمل كمشرف افتراضي . تم دمجها في نواة لينكس الرئيسية في الإصدار 2.6.20، الذي تم إصداره في 5 فبراير 2007. [1] تتطلب KVM معالجًا مزودًا بملحقات محاكاة افتراضية للأجهزة ، مثل Intel VT أو AMD-V . [2] تم نقل KVM أيضًا إلى أنظمة تشغيل أخرى مثل FreeBSD [3] و illumos [4] في شكل وحدات محاكاة افتراضية قابلة للتحميل.

تم تصميم KVM في الأصل لمعالجات x86 ولكن تم نقله منذ ذلك الحين إلى ESA/390 ، [5] PowerPC ، [6] IA-64 ، و ARM . [7] [8] تمت إزالة منفذ IA-64 في عام 2014. [9]

يدعم KVM المحاكاة الافتراضية بمساعدة الأجهزة لمجموعة واسعة من أنظمة التشغيل الضيفة بما في ذلك BSD و Solaris و Windows و Haiku و ReactOS و Plan 9 و AROS و macOS وحتى أنظمة Linux الأخرى. [10] [11] بالإضافة إلى ذلك، من المعروف أن Android 2.2 و GNU/Hurd [12] ( Debian K16) و Minix 3.1.2a وSolaris 10 U3 و Darwin 8.0.1، إلى جانب أنظمة تشغيل أخرى وبعض الإصدارات الأحدث من هذه المذكورة، تعمل مع بعض القيود. [13]

بالإضافة إلى ذلك، توفر KVM دعمًا شبه افتراضي لـ Linux و OpenBSD [ 14] وFreeBSD [15] و NetBSD [16] و Plan 9 [17] وضيوف Windows باستخدام واجهة برمجة تطبيقات VirtIO . [18] يتضمن هذا بطاقة إيثرنت شبه افتراضية ، ووحدة تحكم إدخال/إخراج القرص، [19] وبرنامج تشغيل البالون ، وواجهة رسوميات VGA باستخدام برامج تشغيل SPICE أو VMware .

تاريخ

بدأ آفي كيفيتي تطوير KVM في منتصف عام 2006 في Qumranet ، وهي شركة ناشئة في مجال التكنولوجيا [20] استحوذت عليها شركة Red Hat في عام 2008. [21]

ظهرت KVM في أكتوبر 2006 [22] وتم دمجها في الخط الرئيسي لنواة Linux في إصدار النواة 2.6.20، والذي تم إصداره في 5 فبراير 2007. [1]

يتم صيانة KVM بواسطة باولو بونزيني. [23]

الداخلية

نظرة عامة عالية المستوى على بيئة المحاكاة الافتراضية KVM/QEMU [24] : 3 

يوفر KVM تجريد الجهاز ولكن لا يوفر محاكاة للمعالج. ويعرض واجهة /dev/kvm ، والتي يمكن لمضيف وضع المستخدم استخدامها بعد ذلك من أجل:

  • قم بإعداد مساحة عنوان الجهاز الظاهري للضيف. يجب على المضيف أيضًا توفير صورة البرامج الثابتة (عادةً BIOS مخصص عند محاكاة أجهزة الكمبيوتر) التي يمكن للضيف استخدامها للتمهيد إلى نظام التشغيل الرئيسي الخاص به.
  • تغذية محاكاة الإدخال/الإخراج للضيف.
  • قم بتوصيل شاشة عرض الفيديو الخاصة بالضيف مرة أخرى بجهاز المضيف في النظام.

في الأصل، تم توفير نسخة متفرعة من QEMU لتشغيل الضيوف والتعامل مع محاكاة الأجهزة التي لا يتم التعامل معها بواسطة النواة. تم دمج هذا الدعم في النهاية في المشروع الأساسي. يوجد الآن العديد من أجهزة مراقبة الآلة الافتراضية (VMMs) التي يمكنها الاستفادة من واجهة KVM بما في ذلك kvmtool وcrosvm و Firecracker والعديد من أجهزة مراقبة الآلة الافتراضية المتخصصة المبنية باستخدام أطر عمل مثل rust-vmm.

داخليًا، تستخدم KVM SeaBIOS كتطبيق مفتوح المصدر لنظام BIOS x86 16 بت . [25]

سمات

لقد حظيت KVM بدعم وحدات المعالجة المركزية الافتراضية القابلة للتبديل السريع ، [26] وإدارة الذاكرة الديناميكية، [27] والهجرة المباشرة منذ فبراير 2007. [28] [29] كما أنها تقلل من تأثير أحمال العمل التي تتطلب الكتابة المكثفة في الذاكرة على عملية الهجرة. [30]

الأجهزة المُحاكاة

يقوم KVM بحد ذاته بمحاكاة القليل جدًا من الأجهزة، ويؤجل بدلاً من ذلك استخدام تطبيق عميل على مستوى أعلى مثل QEMU أو crosvm أو Firecracker لمحاكاة الجهاز.

يوفر KVM الأجهزة المحاكية التالية:

أدوات الإدارة الرسومية

libvirt يدعم KVM
  • كيمتشي  – أداة إدارة المحاكاة الافتراضية المستندة إلى الويب لـ KVM
  • مدير الآلة الافتراضية  – يدعم إنشاء وتحرير وبدء وإيقاف الآلات الافتراضية المستندة إلى KVM، بالإضافة إلى الترحيل المباشر أو السحب والإفلات البارد للآلات الافتراضية بين المضيفين.
  • بيئة Proxmox الافتراضية  – حزمة إدارة افتراضية مفتوحة المصدر تتضمن KVM و LXC . تحتوي على برنامج تثبيت عادي، وواجهة مستخدم رسومية لإدارة عن بعد تعتمد على الويب، ومجموعة HA، وتخزين موحد، وشبكة مرنة، ودعم تجاري اختياري.
  • OpenQRM  – منصة إدارة لإدارة البنى التحتية المتنوعة لمراكز البيانات
  • صناديق GNOME  – واجهة Gnome لإدارة ضيوف libvirt على Linux
  • oVirt  – أداة إدارة المحاكاة الافتراضية مفتوحة المصدر لـ KVM مبنية على libvirt

الترخيص

مكون وضع النواة في KVM هو جزء من نواة لينكس ، وهو مرخص بموجب رخصة جنو العمومية، الإصدار 2. [32 ]

انظر أيضا

مراجع

  1. ^ ab "Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM". kernelnewbies.org . 2007-02-05 . تم الاسترجاع في 2014-06-16 .
  2. ^ KVM FAQ: ما الذي أحتاجه لاستخدام KVM؟
  3. ^ "تقرير حالة ربع سنوي لـ FreeBSD: نقل Linux KVM إلى FreeBSD".
  4. ^ "KVM على illumos".
  5. ^ "Gmane - Mail To News And Back Again". مؤرشف من الأصل في 2007-09-29 . تم الاسترجاع في 2007-05-07 .
  6. ^ تم أرشفة Gmane Loom في 2007-09-29 على موقع Wayback Machine
  7. ^ "مشروع مفتوح المصدر KVM/ARM". مؤرشف من الأصل في 2013-03-10 . تم استرجاعه في 2017-11-01 .
  8. ^ كريستوفر دال؛ جيسون نيه (2014). "KVM/ARM: تصميم وتنفيذ برنامج التشغيل الافتراضي Linux ARM". مؤتمر ACM الدولي حول الدعم المعماري للغات البرمجة وأنظمة التشغيل.
  9. ^ "kernel/git/torvalds/linux.git: KVM: ia64: إزالة".
  10. ^ "KVM wiki: Guest support status" . تم الاسترجاع في 2007-05-27 .
  11. ^ "تشغيل Mac OS X كضيف QEMU/KVM" . تم الاسترجاع في 2014-08-20 .
  12. ^ "status". Gnu.org . تم الاسترجاع في 2014-02-12 .
  13. ^ "Guest Support Status - KVM". Linux-kvm.org . تم الاسترجاع في 2014-02-12 .
  14. ^ "صفحة دليل OpenBSD virtio(4)" . تم الاسترجاع في 2018-02-04 .
  15. ^ "حزم ثنائية من Virtio لنظام FreeBSD" . تم الاسترجاع في 2012-10-29 .
  16. ^ "صفحة دليل NetBSD virtio(4)". مؤرشف من الأصل في 2019-11-13 . تم الاسترجاع في 2013-07-15 .
  17. ^ "plan9front" . تم الاسترجاع في 2013-02-11 .
  18. ^ "واجهة برمجة تطبيقات للإدخال والإخراج الافتراضي: virtio". LWN.net . 2007-07-11 . تم الاسترجاع في 2014-04-16 .
  19. ^ "هدف SCSI لويكي KVM". linux-iscsi.org. 2012-08-07. مؤرشف من الأصل في 2020-06-05 . تم الاسترجاع في 2012-08-12 .
  20. ^ مقابلة: أفي كيفيتي محفوظ في 2007-04-26 على موقع Wayback Machine على KernelTrap
  21. ^ "Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition". Red Hat . 4 سبتمبر 2008 . تم الاسترجاع في 16 يونيو 2015 .
  22. ^ "KVM 15 مجهزة بالهجرة المباشرة | أخبار IT World Canada". 7 مارس 2007.
  23. ^ Libby Clark (7 أبريل 2015). "قصص نجاح Git ونصائح من مسؤول صيانة KVM باولو بونزيني". Linux.com . مؤرشف من الأصل في 15 مارس 2016. تم الاسترجاع في 17 يونيو 2015 .
  24. ^ Khoa Huynh؛ Stefan Hajnoczi (2010). "KVM/QEMU Storage Stack Performance Discussion" (PDF) . IBM . Linux Plumbers Conference . تم الاسترجاع في 3 يناير 2015 .[ رابط ميت دائم ]
  25. ^ "SeaBIOS". seabios.org. 2013-12-21 . تم الاسترجاع في 2014-06-16 .
  26. ^ "التوصيل السريع لوحدات المعالجة المركزية الافتراضية باستخدام Red Hat Enterprise Virtualization Manager".
  27. ^ "الأسئلة الشائعة - KVM".
  28. ^ "إصدار KVM-15 [LWN.net]".
  29. ^ "الهجرة - KVM".
  30. ^ "Daniel P. Berrangé » Blog Archive » تحليل التقنيات اللازمة لضمان استكمال الهجرة باستخدام KVM".
  31. ^ "التوثيق النهائي لواجهة برمجة التطبيقات KVM (آلة افتراضية تعتمد على النواة) — توثيق نواة Linux".
  32. ^ "قواعد ترخيص نواة لينكس - وثائق نواة لينكس". www.kernel.org . مؤرشف من الأصل في 7 مارس 2020 . تم الاسترجاع 2020-01-06 .

فهرس

  • أميت شاه (2016-11-02). "عشر سنوات من KVM". lwn.net . تم الاسترجاع في 2017-02-10 .
  • أفضل الممارسات للآلة الافتراضية القائمة على النواة أرشيف 2019-11-06 على موقع Wayback Machine ، IBM، الطبعة الثانية، أبريل 2012
  • تحسين أداء Virtio-blk، منتدى KVM 2012، 8 نوفمبر 2012، بقلم Asias He
  • ويكيبيديا QEMU & KVM
  • crosvm - مراقبة الآلة الافتراضية لنظام التشغيل Chrome
  • برنامج Firecracker VMM لـ KVM
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=آلة_افتراضية_مبنية_على_النواة&oldid=1243991148"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate