QEMU-KVM آپریشن کے عمومی اصول

QEMU-KVM آپریشن کے عمومی اصول

میری موجودہ سمجھ:

1) کے وی ایم

KVM (Kernel-based Virtual Machine) ایک ہائپر وائزر (VMM - ورچوئل مشین مینیجر) ہے جو لینکس OS پر ایک ماڈیول کے طور پر چل رہا ہے۔ کچھ سافٹ ویئر کو غیر موجود (ورچوئل) ماحول میں چلانے کے لیے ایک ہائپر وائزر کی ضرورت ہوتی ہے اور ساتھ ہی اس سافٹ ویئر سے حقیقی جسمانی ہارڈویئر کو چھپانے کے لیے جس پر یہ سافٹ ویئر چلتا ہے۔ ہائپر وائزر فزیکل ہارڈویئر (میزبان) اور ورچوئل OS (گیسٹ) کے درمیان ایک "اسپیسر" کے طور پر کام کرتا ہے۔

چونکہ KVM لینکس کرنل کا ایک معیاری ماڈیول ہے، اس لیے یہ کرنل (میموری مینجمنٹ، شیڈیولر، وغیرہ) سے تمام مطلوبہ سامان وصول کرتا ہے۔ اور اس کے مطابق، آخر میں، یہ تمام فوائد مہمانوں کو جاتے ہیں (چونکہ مہمان ایک ہائپر وائزر پر کام کرتے ہیں جو لینکس OS کرنل پر چلتا ہے)۔

KVM بہت تیز ہے، لیکن بذات خود یہ ورچوئل OS چلانے کے لیے کافی نہیں ہے، کیونکہ... اس کے لیے I/O ایمولیشن کی ضرورت ہے۔ I/O (CPU، ڈسک، نیٹ ورک، ویڈیو، PCI، USB، سیریل پورٹس وغیرہ) کے لیے KVM QEMU استعمال کرتا ہے۔

2) QEMU

QEMU (کوئیک ایمولیٹر) مختلف آلات کے لیے ایک ایمولیٹر ہے جو آپ کو ایک فن تعمیر کے لیے ڈیزائن کردہ آپریٹنگ سسٹم کو دوسرے پر چلانے کی اجازت دیتا ہے (مثال کے طور پر، ARM -> x86)۔ پروسیسر کے علاوہ، QEMU مختلف پردیی آلات کی تقلید کرتا ہے: نیٹ ورک کارڈ، HDD، ویڈیو کارڈ، PCI، USB، وغیرہ۔

یہ اس طرح کام کرتا ہے:

ہدایات/بائنری کوڈ (مثال کے طور پر، ARM) کو TCG (Tiny Code Generator) کنورٹر کا استعمال کرتے ہوئے انٹرمیڈیٹ پلیٹ فارم سے آزاد کوڈ میں تبدیل کیا جاتا ہے اور پھر اس پلیٹ فارم سے آزاد بائنری کوڈ کو ہدف ہدایات/کوڈ (مثال کے طور پر، x86) میں تبدیل کیا جاتا ہے۔

ARM -> intermediate_code -> x86

بنیادی طور پر، آپ کسی بھی میزبان پر QEMU پر ورچوئل مشینیں چلا سکتے ہیں، یہاں تک کہ پرانے پروسیسر ماڈلز کے ساتھ جو Intel VT-x (انٹیل ورچوئلائزیشن ٹیکنالوجی) / AMD SVM (AMD Secure Virtual Machine) کو سپورٹ نہیں کرتے ہیں۔ تاہم، اس معاملے میں، یہ بہت آہستہ کام کرے گا، اس حقیقت کی وجہ سے کہ ایگزیکیوٹنگ بائنری کوڈ کو دو بار فلائی پر دوبارہ کمپائل کرنے کی ضرورت ہے، TCG کا استعمال کرتے ہوئے (TCG ایک جسٹ ان ٹائم کمپائلر ہے)۔

وہ. QEMU خود میگا ٹھنڈا ہے، لیکن یہ بہت آہستہ کام کرتا ہے۔

3) حفاظتی حلقے

QEMU-KVM آپریشن کے عمومی اصول

پروسیسرز پر بائنری پروگرام کوڈ ایک وجہ سے کام کرتا ہے، لیکن ڈیٹا تک رسائی کی مختلف سطحوں کے ساتھ مختلف سطحوں (رِنگز / پروٹیکشن رِنگز) پر واقع ہے، انتہائی مراعات یافتہ (رنگ 0) سے لے کر انتہائی محدود، ریگولیٹڈ اور "گری دار میوے کے ساتھ سختی کے ساتھ۔ (رنگ 3)۔

آپریٹنگ سسٹم (OS کرنل) رنگ 0 (کرنل موڈ) پر چلتا ہے اور کسی بھی ڈیٹا اور ڈیوائسز کے ساتھ جو چاہے کرسکتا ہے۔ صارف کی ایپلی کیشنز رنگ 3 کی سطح (یوزر موڈ) پر کام کرتی ہیں اور انہیں جو چاہیں کرنے کی اجازت نہیں ہے، لیکن اس کے بجائے ہر بار کسی خاص آپریشن کو انجام دینے کے لیے رسائی کی درخواست کرنی چاہیے (اس طرح، صارف کی ایپلی کیشنز کو صرف اپنے ڈیٹا تک رسائی حاصل ہوتی ہے اور وہ حاصل نہیں کر سکتے۔ کسی اور کے سینڈ باکس میں)۔ رنگ 1 اور 2 ڈرائیوروں کے استعمال کے لیے ہیں۔

Intel VT-x/AMD SVM کی ایجاد سے پہلے، ہائپر وائزرز رنگ 0 پر چلتے تھے، اور مہمان رنگ 1 پر دوڑتے تھے۔ چونکہ رنگ 1 کے پاس OS کے نارمل آپریشن کے لیے کافی حقوق نہیں ہیں، اس لیے گیسٹ سسٹم سے ہر مراعات یافتہ کال کے ساتھ، ہائپر وائزر کو فلائی پر اس کال میں ترمیم کرنا تھی اور اسے رنگ 0 پر عمل میں لانا تھا (جیسا کہ QEMU کرتا ہے)۔ وہ. مہمان بائنری NOT براہ راست پروسیسر پر عمل میں لایا گیا تھا، اور ہر بار مکھی پر کئی درمیانی ترمیمات سے گزرا تھا۔

اوور ہیڈ اہم تھا اور یہ ایک بڑا مسئلہ تھا، اور پھر پروسیسر مینوفیکچررز نے، ایک دوسرے سے آزادانہ طور پر، ہدایات کا ایک توسیعی سیٹ (Intel VT-x/AMD SVM) جاری کیا جس نے مہمان OS کوڈ کو لاگو کرنے کی اجازت دی۔ براہ راست میزبان پروسیسر پر (کسی بھی مہنگے درمیانی مراحل کو نظرانداز کرتے ہوئے، جیسا کہ پہلے ہوا تھا)۔

Intel VT-x/AMD SVM کی آمد کے ساتھ، ایک خصوصی نیا رنگ لیول -1 (مائنس ون) بنایا گیا۔ اور اب ہائپر وائزر اس پر چلتا ہے، اور مہمان رنگ 0 پر چلتے ہیں اور CPU تک مراعات یافتہ رسائی حاصل کرتے ہیں۔

وہ. آخر کار:

  • میزبان رنگ 0 پر چلتا ہے۔
  • مہمان رنگ 0 پر کام کرتے ہیں۔
  • ہائپر وائزر رنگ -1 پر چلتا ہے۔

4) QEMU-KVM

KVM مہمانوں کو رنگ 0 تک رسائی فراہم کرتا ہے اور I/O (پروسیسر، ڈسک، نیٹ ورک، ویڈیو، PCI، USB، سیریل پورٹس، وغیرہ جو مہمان "دیکھتے ہیں" اور ان کے ساتھ کام کرتے ہیں) کی تقلید کے لیے QEMU استعمال کرتا ہے۔

لہذا QEMU-KVM (یا KVM-QEMU) :)

کریڈٹ
توجہ مبذول کرنے کے لیے تصویر
پروٹیکشن رِنگز کی تصویر

PS اس مضمون کا متن اصل میں ٹیلی گرام چینل میں شائع ہوا تھا۔ @RU_Voip چینل کے شرکاء میں سے ایک کے سوال کے جواب کے طور پر۔

تبصرے میں لکھیں جہاں میں موضوع کو صحیح طور پر نہیں سمجھتا ہوں یا اگر کچھ شامل کرنا ہو تو۔

آپ کا شکریہ!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں