Hypervisor Là Gì

Hypervisor (hay còn gọi là Virtual Machine Monitor – VMM) là một phần mềm, firmware hoặc phần cứng cho phép tạo và quản lý các máy ảo (virtual machines). Nó đóng vai trò trung gian giữa phần cứng vật lý và các hệ điều hành chạy trên máy ảo. Có hai loại hypervisor chính là Native HypervisorHosted Hypervisor.

Native/Bare-metal Hypervisor chạy trực tiếp trên phần cứng vật lý, không cần hệ điều hành chủ và thường được dùng trong môi trường server hoặc datacenter. Ví dụ: VMware ESXi, Microsoft Hyper-V, Xen, KVM (trong một số cấu hình).

Hosted Hypervisor chạy trên một hệ điều hành chủ (host OS), phù hợp với người dùng cá nhân hoặc môi trường phát triển (development). Ví dụ: VMware Workstation, Oracle VirtualBox, QEMU (trong một số cấu hình).

Vai trò của Hypervisor:

Hypervisor có thể được dùng để chạy nhiều hệ điều hành (ví dụ: một RTOS và một Linux) trên cùng một SoC. Nó giúp tăng tính bảo mật bằng cách cách ly các vùng xử lý nhạy cảm. Ví dụ hypervisor cho hệ thống nhúng: Jailhouse, Xvisor, Acrn, L4 microkernel.

Hypervisor trong hệ thống nhúng

Hypervisor trong hệ thống nhúng (embedded systems) là một công nghệ ngày càng phổ biến, đặc biệt khi các thiết bị nhúng trở nên mạnh mẽ hơn và yêu cầu chạy nhiều hệ điều hành hoặc ứng dụng cách ly nhau trên cùng một phần cứng.

Vì sao cần hypervisor trong hệ thống nhúng?

Trong các hệ thống nhúng hiện đại (như ô tô, thiết bị IoT, robot, thiết bị y tế…), có nhu cầu:

  • Tách biệt tài nguyên: CPU, RAM, I/O được phân phối cho từng máy ảo.
  • Chạy song song nhiều hệ điều hành: ví dụ một hệ điều hành thời gian thực (RTOS) để xử lý tín hiệu điều khiển, và một hệ điều hành như Linux để xử lý giao diện người dùng hoặc mạng.
  • Tăng tính bảo mật và cách ly: Các máy ảo hoạt động độc lập, giảm rủi ro lây nhiễm hoặc lỗi hệ thống. Các phần mềm từ bên thứ ba hoặc mạng không được phép ảnh hưởng đến phần điều khiển quan trọng.
  • Tối ưu hóa tài nguyên phần cứng: Cho phép chạy nhiều hệ điều hành trên cùng một máy vật lý, tận dụng CPU đa nhân, bộ nhớ, thiết bị ngoại vi hiệu quả hơn.
  • Di động và snapshot: Dễ dàng sao lưu, di chuyển hoặc khôi phục trạng thái máy ảo.

Các loại hypervisor trong hệ thống nhúng

1. Bare-metal Hypervisor

Bare-metal Hypervisor Chạy trực tiếp trên phần cứng, phù hợp với hệ thống nhúng yêu cầu hiệu năng cao và độ tin cậy. Ví dụ:

  • Jailhouse (cho x86 và ARM, do Siemens phát triển)
  • Xvisor (nhẹ, open-source)
  • Acrn (Intel phát triển, dùng trong ô tô và IoT)
  • L4 microkernel (nhiều biến thể như seL4, OKL4…)

2. Hosted Hypervisor

Hosted Hypervisor Ít phổ biến trong embedded vì cần hệ điều hành chủ, không phù hợp với yêu cầu thời gian thực.

Tính năng nổi bật của hypervisor trong hệ thống nhúng

  • Partitioning: chia tài nguyên phần cứng cho từng máy ảo (VM) hoặc domain.
  • Isolation: mỗi VM hoạt động độc lập, không ảnh hưởng lẫn nhau.
  • Real-time support: một số hypervisor hỗ trợ chạy RTOS song song với Linux.
  • Security: cách ly phần mềm không tin cậy, giảm nguy cơ tấn công.

Ví dụ thực tế như trong ô tô, một SoC có thể chạy đồng thời RTOS và Linux OS. RTOS để điều khiển động cơ, phanh, cảm biến và Linux OS để xử lý giao diện người dùng, GPS, kết nối mạng. Hypervisor giúp cách ly hai phần này để đảm bảo an toàn. Ngoài ra trong các thiết bị IoT, Một phần mềm từ cloud có thể được sandbox trong VM riêng biệt để không ảnh hưởng đến phần điều khiển thiết bị.