مجازی سازی ARMv8-A – مجازی سازی در حالت AArch64

توجه: این سری پست صرفاً ترجمه است. اگر مطالعه متن با زبان‌اصلی برای شما راحت‌تر است توصیه می‌کنم به متن اصلی مراجعه بفرمایید. افاضات بنده هم (به‌صورت زیرخط دار) به متن اضافه‌شده است.

AArch64 به حالت اجرای ۶۴ بیتی در مجموعه دستورات ARMv8 اطلاق می شود. پردازنده در این حالت عملیات را با مجموعه دستورات A64 اجرا می کند. نسخه های پیشین ARM تنها از حالت اجرای ۳۲ بیتی پشتیبانی می کنند و مد اجرای ۶۴ بیتی در مجموعه دستورات ARMv8 معرفی شده است. در این مد از اجرا تنها دستورات A64 در دسترس قرار دارد؛ با این حال در این حالت هر دو مجموعه ثبات ۶۴ بیت و ۳۲ بیت در دسترس قرار دارند.

در AArch64 چهار سطح استثناء (EL0 – El3) تعریف شده است. EL0 کمترین سطح مجوز را به برنامه کاربردی می دهد. این سطوح استثناء مشابه همان حلقه های حفاظت در معماری X86 هستند. فقط اندیس گذاری آن از نظر مجوز دسترسی برعکس شده است.

نرم افزارهایی که در سطح EL2 یا بالاتر اجرا می شوند به چندین کنترل برای مجازی سازی دسترسی دارند.

  • ترجمه مرحله ۲
  • امکان ایجاد تله برای دسترسی به ثبات و دستورات سطح EL0 و EL1
  • تولید حالت استثناء مجازی

سطوح استثناء (Exception Level – EL) در حالت های امن و غیر-امن در تصویر زیر نشان داده شده است:

AArch64
سطوح استثناء در حالت های امن و غیر-امن

در این دیاگرام، سطح ۲ امن با رنگ خاکستری نشان داده شده است. این رنگ به دلیل این که پشتیبانی از EL2 در حالت امن همیشه در دسترس نیست انتخاب شده است. این مورد در بخش دیگری (مجازی سازی امن) تشریح شده است.

همچنین از ویژگی های زیر نیز در معماری پشتیبانی می شود:

  • مجازی سازی امن
  • هایپروایزر میزبانی شده (نوع ۲)
  • مجازی سازی تو در تو (Nested)

پایان قسمت دوم

مطالب مرتبط

مجازی سازی ARMv8-A – مقدمه
بررسی مقاله: My VM is Lighter (and Safer) than your Container – ویدیو
بررسی مقاله: Unikernels: The Next Stage of Linux’s Dominance

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *