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

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

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

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

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

  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง Bareflank เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบ UEFI เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเป„เบ›เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual;
  • เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เบญเบญเบเปเบšเบšเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ SLAB / Buddy เปƒเบ™ Linux. เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบซเบกเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเบซเบผเบธเบ”เบฅเบปเบ‡, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปƒเบซเป‰เบเบฑเบš hypervisor เบœเปˆเบฒเบ™. bfdriver, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ hypervisor เปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ‚เบถเป‰เบ™เบขเบนเปˆเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ CPU cores;
  • เบฅเบฐเบšเบปเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ CMake, เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบ™เบฒเบเบžเบฒเบชเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก hypervisor เปเบฅเบฐเบ‡เปˆเบฒเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบŠเบฑเปˆเบ™: ARM;
  • เบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบฅเบฝเบ‡เปƒเบซเบกเปˆเปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบšเบปเบ”เป€เบฅเบทเปˆเบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบ. เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เป€เบŠเบฑเปˆเบ™ hyperkernel เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”. เบฅเบฐเบซเบฑเบ”เปเบเบเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบเบงเปˆเบฒ hypervisor, unwind เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, runtime, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบ„เบงเบšเบ„เบธเบก, bootloader เปเบฅเบฐ SDK;
  • เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡ API, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบปเบ™เป„เบเบเบฒเบ™เบชเบทเบšเบ—เบญเบ”เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™เปƒเบ™ C ++, เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ เบ„เบฐเบ™เบฐเบœเบนเป‰เปเบ—เบ™, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ API เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™, เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบธเบ”เบฅเบปเบ‡.

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

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