ืกื™ืžื ืก ืคืจืกืžื” ืืช ื”ื”ื™ืคืจื•ื•ื™ื–ืจ Jailhouse 0.12

ื—ื‘ืจืช ืกื™ืžื ืก ะพะฟัƒะฑะปะธะบะพะฒะฐะปะฐ ืฉื—ืจื•ืจ hypervisor ื‘ื—ื™ื ื ื‘ื™ืช ื”ื›ืœื 0.12. ื”ื”ื™ืคืจื•ื•ื™ื–ืจ ืชื•ืžืš ื‘ืžืขืจื›ื•ืช x86_64 ืขื ื”ืจื—ื‘ื•ืช VMX+EPT ืื• SVM+NPT (AMD-V), ื›ืžื• ื’ื ืžืขื‘ื“ื™ ARMv7 ื•-ARMv8/ARM64 ืขื ื”ืจื—ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื”. ืœึฐื—ื•ึผื“ ืžืชืคืชื— ืžื—ื•ืœืœ ืชืžื•ื ื•ืช ืขื‘ื•ืจ ื”-Hypervisor ืฉืœ Jailhouse, ืฉื ื•ืฆืจ ืขืœ ื‘ืกื™ืก ื—ื‘ื™ืœื•ืช ื“ื‘ื™ืืŸ ืขื‘ื•ืจ ืžื›ืฉื™ืจื™ื ื ืชืžื›ื™ื. ืงื•ื“ ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืžื•ืจืฉื” ืชื—ืช GPLv2.

ื”-Hypervisor ืžื™ื•ืฉื ื›ืžื•ื“ื•ืœ ืขื‘ื•ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก ื•ืžืกืคืง ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ื‘ืจืžืช ื”ืงืจื ืœ. ืจื›ื™ื‘ื™ื ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืื•ืจื—ื•ืช ื›ื‘ืจ ื›ืœื•ืœื™ื ื‘ืงืจื ืœ ื”ืจืืฉื™ ืฉืœ ืœื™ื ื•ืงืก. ื›ื“ื™ ืœื ื”ืœ ื‘ื™ื“ื•ื“, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื ื’ื ื•ื ื™ ื”ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ื”ื—ื•ืžืจื” ื”ืžืกื•ืคืงื™ื ืขืœ ื™ื“ื™ ืžืขื‘ื“ื™ื ืžื•ื“ืจื ื™ื™ื. ืžืืคื™ื™ื ื™ื ื‘ื•ืœื˜ื™ื ืฉืœ Jailhouse ื”ื ื”ื™ื™ืฉื•ื ื”ืงืœ ืฉืœื” ื•ื”ืชืžืงื“ื•ืช ื‘ื”ืฆืžื“ืช ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืœืžืขื‘ื“ ืงื‘ื•ืข, ืื–ื•ืจ ื–ื™ื›ืจื•ืŸ RAM ื•ื”ืชืงื ื™ ื—ื•ืžืจื”. ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ืœืฉืจืช ืจื™ื‘ื•ื™ ืžืขื‘ื“ื™ื ืคื™ื–ื™ ืื—ื“ ืœืชืžื•ืš ื‘ืคืขื•ืœื” ืฉืœ ืžืกืคืจ ืกื‘ื™ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืขืฆืžืื™ื•ืช, ืฉื›ืœ ืื—ืช ืžื”ืŸ ืžื•ืงืฆื™ืช ืœืœื™ื‘ืช ื”ืžืขื‘ื“ ืฉืœื”.

ืขื ืงื™ืฉื•ืจ ื”ื“ื•ืง ืœืžืขื‘ื“, ื”ืชืงื•ืจื” ืฉืœ ื”-Hypervisor ืžืžื•ื–ืขืจืช ื•ื”ื˜ืžืขืชื• ืžืคื•ืฉื˜ืช ืžืฉืžืขื•ืชื™ืช, ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืฆื•ืจืš ืœื”ืคืขื™ืœ ืžืชื–ืžืŸ ื”ืงืฆืืช ืžืฉืื‘ื™ื ืžื•ืจื›ื‘ - ื”ืงืฆืืช ืœื™ื‘ืช CPU ื ืคืจื“ืช ืžื‘ื˜ื™ื—ื” ืฉืœื ื™ื‘ื•ืฆืขื• ืžืฉื™ืžื•ืช ืื—ืจื•ืช ื‘ืžืขื‘ื“ ื–ื”. . ื”ื™ืชืจื•ืŸ ืฉืœ ื’ื™ืฉื” ื–ื• ื”ื•ื ื”ื™ื›ื•ืœืช ืœืกืคืง ื’ื™ืฉื” ืžื•ื‘ื˜ื—ืช ืœืžืฉืื‘ื™ื ื•ื‘ื™ืฆื•ืขื™ื ืฆืคื•ื™ื™ื, ืžื” ืฉื”ื•ืคืš ืืช Jailhouse ืœืคืชืจื•ืŸ ืžืชืื™ื ืœื™ืฆื™ืจืช ืžืฉื™ืžื•ืช ื”ืžื‘ื•ืฆืขื•ืช ื‘ื–ืžืŸ ืืžืช. ื”ื—ื™ืกืจื•ืŸ ื”ื•ื ื™ื›ื•ืœืช ื”ืจื—ื‘ื” ืžื•ื’ื‘ืœืช, ืžื•ื’ื‘ืœืช ื‘ืžืกืคืจ ืœื™ื‘ื•ืช ื”ืžืขื‘ื“.

ื‘ื˜ืจืžื™ื ื•ืœื•ื’ื™ื” ืฉืœ ื‘ื™ืช ื”ื›ืœื, ืกื‘ื™ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื ืงืจืื•ืช "ืžืฆืœืžื•ืช" (ืชื, ื‘ื”ืงืฉืจ ืฉืœ ื‘ื™ืช ื”ื›ืœื). ื‘ืชื•ืš ื”ืžืฆืœืžื”, ื”ืžืขืจื›ืช ื ืจืื™ืช ื›ืžื• ืฉืจืช ื‘ืขืœ ืžืขื‘ื“ ื™ื—ื™ื“ ื”ืžืจืื” ื‘ื™ืฆื•ืขื™ื ืกื’ื•ืจ ืœื‘ื™ืฆื•ืขื™ื ืฉืœ ืœื™ื‘ืช ืžืขื‘ื“ ื™ื™ืขื•ื“ื™ืช. ื”ืžืฆืœืžื” ื™ื›ื•ืœื” ืœื”ืจื™ืฅ ืกื‘ื™ื‘ื” ืฉืœ ืžืขืจื›ืช ื”ืคืขืœื” ืฉืจื™ืจื•ืชื™ืช, ื›ืžื• ื’ื ืกื‘ื™ื‘ื•ืช ืžื•ืคืฉื˜ื•ืช ืœื”ืคืขืœืช ืืคืœื™ืงืฆื™ื” ืื—ืช ืื• ื™ื™ืฉื•ืžื™ื ื‘ื•ื“ื“ื™ื ืฉื”ื•ื›ื ื• ื‘ืžื™ื•ื—ื“ ืฉื ื•ืขื“ื• ืœืคืชื•ืจ ื‘ืขื™ื•ืช ื‘ื–ืžืŸ ืืžืช. ื”ืชืฆื•ืจื” ืžื•ื’ื“ืจืช ื‘ ืงื‘ืฆื™ .cell, ืืฉืจ ืงื•ื‘ืขื™ื ืืช ื”ืžืขื‘ื“, ืื–ื•ืจื™ ื”ื–ื™ื›ืจื•ืŸ ื•ื™ืฆื™ืื•ืช ื”-I/O ื”ืžื•ืงืฆื•ืช ืœืกื‘ื™ื‘ื”.

ืกื™ืžื ืก ืคืจืกืžื” ืืช ื”ื”ื™ืคืจื•ื•ื™ื–ืจ Jailhouse 0.12

ื‘ืžื”ื“ื•ืจื” ื”ื—ื“ืฉื”

  • ื ื•ืกืคื” ืชืžื™ื›ื” ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช Raspberry Pi 4 Model B ื•-Texas Instruments J721E-EVM;
  • ืขื•ื‘ื“ ืžื—ื“ืฉ ืžื›ืฉื™ืจ ivshmem ื”ืžืฉืžืฉ ืœืืจื’ื•ืŸ ืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ ืชืื™ื. ื‘ื ื•ืกืฃ ืœ-ivshem ื”ื—ื“ืฉ, ืืชื” ื™ื›ื•ืœ ืœื™ื™ืฉื ื˜ืจื ืกืคื•ืจื˜ ืขื‘ื•ืจ VIRTIO;

    ืกื™ืžื ืก ืคืจืกืžื” ืืช ื”ื”ื™ืคืจื•ื•ื™ื–ืจ Jailhouse 0.12

  • ื”ื˜ืžื™ืข ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉื‘ื™ืช ืืช ื”ื™ืฆื™ืจื” ืฉืœ ื“ืคื™ ื–ื™ื›ืจื•ืŸ ื’ื“ื•ืœื™ื (ืขื ืง ืขืžื•ื“) ื›ื“ื™ ืœื—ืกื•ื ืืช ื”ืคื’ื™ืขื•ืช CVE-2018-12207 ื‘ืžืขื‘ื“ื™ ืื™ื ื˜ืœ, ืžื” ืฉืžืืคืฉืจ ืœืชื•ืงืฃ ื—ืกืจ ื–ื›ื•ื™ื•ืช ืœื™ื–ื•ื ืžื ื™ืขืช ืฉื™ืจื•ืช ื•ื›ืชื•ืฆืื” ืžื›ืš ืœืชืœื™ื™ื” ืฉืœ ื”ืžืขืจื›ืช ื‘ืžืฆื‘ "ืฉื’ื™ืืช ื‘ื“ื™ืงืช ืžื›ื•ื ื”";
  • ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืขื ืžืขื‘ื“ื™ ARM64, ืžื™ื•ืฉืžืช ืชืžื™ื›ื” ื‘-SMMUv3 (ื™ื—ื™ื“ืช ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ืžืขืจื›ืช) ื•-TI PVU (ื™ื—ื™ื“ืช ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ื”ื™ืงืคื™ืช). ื ื•ืกืคื” ืชืžื™ื›ืช PCI ืขื‘ื•ืจ ืกื‘ื™ื‘ื•ืช ืžื‘ื•ื“ื“ื•ืช ื”ืคื•ืขืœื•ืช ืขืœ ื’ื‘ื™ ื—ื•ืžืจื” (ืžืชื›ืช ื—ืฉื•ืคื”);
  • ื‘ืžืขืจื›ื•ืช x86 ืœืžืฆืœืžื•ืช ื‘ืกื™ืก, ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืืช ืžืฆื‘ CR4.UMIP (ืžื ื™ืขืช ื”ื•ืจืื•ืช ืžืฉืชืžืฉ) ื”ืžืกื•ืคืง ืขืœ ื™ื“ื™ ืžืขื‘ื“ื™ ืื™ื ื˜ืœ, ื”ืžืืคืฉืจ ืœืš ืœืืกื•ืจ ื‘ื™ืฆื•ืข ื‘ื—ืœืœ ื”ืžืฉืชืžืฉ ืฉืœ ื”ื•ืจืื•ืช ืžืกื•ื™ืžื•ืช, ื›ื’ื•ืŸ SGDT, SLDT, SIDT , SMSW ื•-STR, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ื”ืชืงืคื•ืช, ื‘ืžื˜ืจื” ืœื”ื’ื“ื™ืœ ืืช ื”ื”ืจืฉืื•ืช ื‘ืžืขืจื›ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”