commit | 66cf8bbb3455ce67141801d040a12f17557f1c03 | [log] [tgz] |
---|---|---|
author | Zach Reizner <zachr@google.com> | Tue May 23 12:50:46 2017 -0700 |
committer | chrome-bot <chrome-bot@chromium.org> | Fri Jun 30 12:51:24 2017 -0700 |
tree | 443293a0d63575abf063df9a028abee599920404 | |
parent | 422e6502dee4c63d0cf742cdb17c922d2864ca08 [diff] |
crosvm: add control socket for crosvm inter-process control This change adds the control socket, a unix domain socket on the filesystem that other programs can use to control the operation of crosvm during runtime. Currently only shutdown is supported. BUG=None TEST=cargo test Change-Id: Ic5f91647e28d279debaa2f9f7dbcb606ca96439b Reviewed-on: https://chromium-review.googlesource.com/514416 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
This component, known as crosvm, runs untrusted operating systems along with virtualized devices. No actual hardware is emulated. This only runs VMs through the Linux's KVM interface. What makes crosvm unique is a focus on safety within the programming language and a sandbox around the virtual devices to protect the kernel from attack in case of an exploit in the devices.
The crosvm source code is organized into crates, each with their own unit tests. These crates are:
kvm-sys
low-level (mostly) auto-generated structures and constants for using KVMkvm
unsafe, low-level wrapper code for using kvm-syscrosvm
the top-level binary front-end for using crosvmCurrently there is no front-end, so the best you can do is run cargo test
in each crate.