زما اوسنۍ پوهه:
1) KVM
KVM (د کرنل پراساس مجازی ماشین) یو هایپروایزر (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 (کوچني کوډ جنریټر) کنورټر په کارولو سره منځګړی پلیټ فارم - خپلواک کوډ ته بدلیږي او بیا دا پلیټ فارم - خپلواک بائنری کوډ د هدف لارښوونو/کوډ ته بدلیږي (د مثال په توګه x86).
ARM -> منځنۍ_کوډ -> x86
په لازمي ډول ، تاسو کولی شئ په هر کوربه کې په QEMU کې مجازی ماشینونه چل کړئ ، حتی د زړو پروسیسر ماډلونو سره چې د Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD خوندي مجازی ماشین) ملاتړ نه کوي. په هرصورت ، پدې حالت کې ، دا به خورا ورو کار وکړي ، د دې حقیقت له امله چې اجرا کوونکی بائنری کوډ باید دوه ځله په الوتنه کې بیا تنظیم شي ، د TCG په کارولو سره (TCG یوازې په وخت کې تالیف کونکی دی).
هغوی. QEMU پخپله میګا ښه دی، مګر دا خورا ورو کار کوي.
3) د ساتنې حلقې
په پروسیسرونو کې د بائنری برنامه کوډ د یو دلیل لپاره کار کوي ، مګر په مختلف کچو کې موقعیت لري (رینګ / محافظت حلقې) د ډیټا لاسرسي مختلف کچو سره ، له خورا امتیاز لرونکي (رنګ 0) څخه تر خورا محدود ، تنظیم شوي او "د مغز سخت شوي سره. (۳ حلقه).
عملیاتي سیسټم (OS kernel) په Ring 0 (kernel mode) کې پرمخ ځي او کولی شي هر هغه څه چې وغواړي د هر ډول ډیټا او وسیلو سره ترسره کړي. د کاروونکي غوښتنلیکونه د Ring 3 کچې (د کارونکي حالت) کې کار کوي او اجازه نلري چې هر څه چې دوی یې غواړي ترسره کړي، مګر پرځای یې باید هر ځل د ځانګړي عملیاتو ترسره کولو لپاره د لاسرسي غوښتنه وکړي (په دې توګه، د کاروونکي غوښتنلیکونه یوازې خپل ډیټا ته لاسرسی لري او نشي کولی "ترلاسه کړي. د بل چا په شګو بکس کې). حلقه 1 او 2 د چلوونکو لخوا د کارولو لپاره دي.
د Intel VT-x/AMD SVM له ایجاد څخه مخکې، هایپروایزر په رینګ 0 کې چلیدل، او میلمانه په رینګ 1 کې چلیدل. ځکه چې Ring 1 د OS د نورمال عملیاتو لپاره کافي حقونه نلري، د میلمستون سیسټم څخه د هر امتیاز لرونکي زنګ سره. هایپروایزر باید دا زنګ په الوتنه کې بدل کړي او په رینګ 0 کې یې اجرا کړي (لکه د QEMU په څیر). هغوی. میلمه بائنری نه په مستقیم ډول په پروسیسر کې اجرا شوی و، او هر ځل په الوتنه کې د څو منځنیو بدلونونو څخه تیر شو.
سر د پام وړ و او دا یوه لویه ستونزه وه، او بیا د پروسیسر جوړونکو، په خپلواکه توګه د یو بل څخه، د لارښوونو پراخه لړۍ خپره کړه (Intel VT-x / AMD SVM) چې د میلمنو OS کوډ اجرا کولو ته اجازه ورکوي. په مستقیم ډول په کوربه پروسیسر کې (د هر قیمتي منځګړیتوب ګامونو څخه تیریدل، لکه څنګه چې مخکې قضیه وه).
د Intel VT-x / AMD SVM په راتګ سره، یو ځانګړی نوی حلقوي کچه -1 (منفی یو) رامینځته شو. او اوس هایپروایسر په دې چلیږي ، او میلمانه په رینګ 0 چلیږي او CPU ته امتیازي لاسرسی ترلاسه کوي.
هغوی. بالاخره:
- کوربه په Ring 0 چلیږي
- میلمانه په Ring 0 کار کوي
- هایپروایسر په رینګ -1 چلوي
4) QEMU-KVM
KVM میلمنو ته رینګ 0 ته لاسرسی ورکوي او د I/O تقلید لپاره QEMU کاروي (پروسیسر، ډیسکونه، شبکه، ویډیو، PCI، USB، سریال پورټونه، او داسې نور چې میلمانه "وګوري" او ورسره کار کوي).
له همدې امله QEMU-KVM (یا KVM-QEMU):)
ډيپارټمنټ
PS د دې مقالې متن په اصل کې په ټیلیګرام چینل کې خپور شوی و
په نظرونو کې ولیکئ چیرې چې زه په موضوع سم نه پوهیږم یا که د اضافه کولو لپاره کوم څه شتون ولري.
ساپی!
سرچینه: www.habr.com