เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบง hypervisor Bareflank 3.0

The Bareflank 3.0 hypervisor เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เบชเบฐเบซเบ™เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบ‚เบญเบ‡ hypervisor เบžเบดเป€เบชเบ”. Bareflank เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ C ++ เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ C ++ STL. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ modular เบ‚เบญเบ‡ Bareflank เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ‚เบญเบ‡ hypervisor เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบชเป‰เบฒเบ‡ hypervisors เบฎเบธเปˆเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡, เบ—เบฑเบ‡เปเบฅเปˆเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบฎเบฒเบ”เปเบง (เป€เบŠเบฑเปˆเบ™ Xen) เปเบฅเบฐเปเบฅเปˆเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบŠเบญเบšเปเบงเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง (เป€เบŠเบฑเปˆเบ™ VirtualBox). เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” LGPL 2.1.

Bareflank เบฎเบญเบ‡เบฎเบฑเบš Linux, Windows เปเบฅเบฐ UEFI เปƒเบ™ CPU Intel เปเบฅเบฐ AMD 64-bit. เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต Intel VT-x เบ–เบทเบเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบฎเบฒเบ”เปเบงเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš macOS เปเบฅเบฐ BSD เปเบกเปˆเบ™เป„เบ”เป‰เบงเบฒเบ‡เปเบœเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบญเบฐเบ™เบฒเบ„เบปเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป€เบงเบ—เบต ARM64. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป‚เบ„เบ‡เบเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป€เบงเบตเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ” VMM (Virtual Machine Manager), เป€เบ„เบทเปˆเบญเบ‡เป‚เบซเบฅเบ” ELF เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เป‚เบกเบ”เบนเบ™ VVM, เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ bfm เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบก hypervisor เบˆเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰. เบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป‚เบ”เบเปƒเบŠเป‰เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ C++ 11/14 เบชเบฐเป€เบžเบฒเบฐ, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ unwinding stack เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ (unwind), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ constructors / destructors เปเบฅเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™.

เบญเบตเบ‡เปƒเบชเปˆ Bareflank, เบฅเบฐเบšเบปเบš virtualization Boxy เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เปเบ‚เบเปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒเบเบฑเบš Linux เปเบฅเบฐ Unikernel เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบซเบผเบทเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบดเป€เบชเบ”. เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบฑเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบฑเบšเบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบดเป€เบชเบ”เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเปเบฅเบฐเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž, เบšเปเปˆเป€เบชเบเบ„เปˆเบฒเบˆเบฒเบเบญเบดเบ”เบ—เบดเบžเบปเบ™เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบˆเบปเป‰เบฒเบžเบฒเบš (เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบˆเบปเป‰เบฒเบžเบฒเบšเปเบกเปˆเบ™เบขเบนเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ). Bareflank เบเบฑเบ‡เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ MicroV hypervisor, เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเปเบฅเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual minimalistic (เป€เบ„เบทเปˆเบญเบ‡ virtual เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ”เบฝเบง), เบ›เบฐเบ•เบดเบšเบฑเบ” KVM API เปเบฅเบฐเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบžเบฒเบฅเบฐเบเบดเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.

เบเบฒเบ™เบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡ Bareflank 3.0:

  • เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบเบฒเบ™เปƒเบŠเป‰เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡ microkernel. เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, hypervisor เบกเบตเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ monolithic, เปƒเบ™เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ API เบžเบดเป€เบชเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เป‚เบ—เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบžเบฒเบชเบฒ C ++ เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบฒเบเปƒเบ™. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ microkernel เปƒเปเปˆ เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡ hypervisor เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ kernel เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบงเบปเบ‡เปเบซเบงเบ™เบชเบนเบ™เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เปเบฅเบฐเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบงเบปเบ‡เปเบซเบงเบ™เบชเบฒเบก (เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰). เบ—เบฑเบ‡เบชเบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบฎเบฒเบ VMX, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบฎเบฒเบ VMX. เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ Virtual Machine Manager (VMM) เปเบฅเบฐเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบซเบผเบฑเบ hypervisor เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบซเบฅเบฑเบ‡. เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบฅเบงเบกเบ—เบฑเบ‡ Rust.
  • เบกเบตเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” BSL เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡เป‚เบ”เบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Rust เปเบฅเบฐ C ++, เป€เบŠเบดเปˆเบ‡เบ›เปˆเบฝเบ™เปเบ—เบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบžเบฒเบเบ™เบญเบ libc++ เปเบฅเบฐ newlib. เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบžเบฒเบเบ™เบญเบ, Bareflank เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก Windows เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เป€เบงเบ—เบตเบ™เบฑเป‰เบ™เบ‡เปˆเบฒเบเบ”เบฒเบ.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Bareflank เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบต CPU AMD เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ ported เบเบฑเบš CPU Intel.
  • bootloader เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ ARMv8, เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบ‚เบญเบ‡ hypervisor เบ—เบตเปˆเบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ•เปเปˆเป„เบ›.
  • เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบปเบ‡เบเบฒเบ™ AUTOSAR เปเบฅเบฐ MISRA.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™