<aside> đź’ˇ Due: 10/5/23 at 11:59PM

</aside>

<aside> đź’ˇ Due: 10/12/23 at 11:59PM

</aside>

In SeKVM, the VM memory is protected from accessing by the untrusted host. However, there may be occasions when a VM wants to share some information securely to another VM. Encrypted network channel is one solution, but may not always be available to a VM, for example, a VM may disable the network due to security policy. Therefore, you are going to implement a secure communication channel using shared memory.

Problems

  1. Passthrough a memory region to KCore

    Hypercall(HVC), an analogous of system call, is the interface used by the kernel and VM to communicate with the hypervisor. Implement the following hypercall to passthrough a range of memory to KCore.

  2. Reserve the shared memory in the guest

  3. Guest kernel shared memory driver

    The kernel needs to manage the shared memory and provides interfaces for user to access the shared memory in the user space. One way is using a system call, but a system call normally will not allocate user space memory. Instead, you can implement a driver with mmap operations and map the driver’s memory in the kernel to the user space.

    Implement the following device driver: