GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - google/crosvm: The Chrome OS Virtual Machine Monitor - Mirror of https://chromium.googlesource.com/crosvm/crosvm/

BranchesTags
Open more actions menu

Latest commit

 

History

12,165 Commits
12,165 Commits

Folders and files

NameName
Last commit message
Last commit date
.agents
.agents
 
 
.cargo
.cargo
 
 
.config
.config
 
 
.devcontainer
.devcontainer
 
 
.github
.github
 
 
.vscode
.vscode
 
 
aarch64
aarch64
 
 
aarch64_sys_reg
aarch64_sys_reg
 
 
acpi_tables
acpi_tables
 
 
android_audio
android_audio
 
 
arch
arch
 
 
argh_helpers
argh_helpers
 
 
audio_streams_conformance_test
audio_streams_conformance_test
 
 
audio_util
audio_util
 
 
base
base
 
 
base_tokio
base_tokio
 
 
bit_field
bit_field
 
 
common
common
 
 
cros_async
cros_async
 
 
cros_fdt
cros_fdt
 
 
cros_tracing
cros_tracing
 
 
cros_tracing_types
cros_tracing_types
 
 
crosvm_cli
crosvm_cli
 
 
crosvm_control
crosvm_control
 
 
devices
devices
 
 
disk
disk
 
 
docs/book
docs/book
 
 
e2e_tests
e2e_tests
 
 
ext2
ext2
 
 
fuse
fuse
 
 
fuzz
fuzz
 
 
gpu_display
gpu_display
 
 
hypervisor
hypervisor
 
 
infra
infra
 
 
io_uring
io_uring
 
 
jail
jail
 
 
kernel_cmdline
kernel_cmdline
 
 
kernel_loader
kernel_loader
 
 
kvm_sys
kvm_sys
 
 
libcras_stub
libcras_stub
 
 
linux_input_sys
linux_input_sys
 
 
logo
logo
 
 
media
media
 
 
metrics
metrics
 
 
metrics_events
metrics_events
 
 
net_sys
net_sys
 
 
net_util
net_util
 
 
perfetto
perfetto
 
 
power_monitor
power_monitor
 
 
prebuilts
prebuilts
 
 
proc_init
proc_init
 
 
proto_build_tools
proto_build_tools
 
 
protos
protos
 
 
resources
resources
 
 
riscv64
riscv64
 
 
sandbox
sandbox
 
 
serde_keyvalue
serde_keyvalue
 
 
snapshot
snapshot
 
 
src
src
 
 
swap
swap
 
 
system_api
system_api
 
 
tests
tests
 
 
third_party
third_party
 
 
tools
tools
 
 
tube_transporter
tube_transporter
 
 
usb_sys
usb_sys
 
 
usb_util
usb_util
 
 
vendor
vendor
 
 
vfio_sys
vfio_sys
 
 
vhost
vhost
 
 
virtio_sys
virtio_sys
 
 
vm_control
vm_control
 
 
vm_memory
vm_memory
 
 
win_audio
win_audio
 
 
win_util
win_util
 
 
x86_64
x86_64
 
 
.dockerignore
.dockerignore
 
 
.envrc
.envrc
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
.rustfmt.toml
.rustfmt.toml
 
 
ARCHITECTURE.md
ARCHITECTURE.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
DIR_METADATA
DIR_METADATA
 
 
LICENSE
LICENSE
 
 
OWNERS
OWNERS
 
 
OWNERS_COUNCIL
OWNERS_COUNCIL
 
 
PRESUBMIT.cfg
PRESUBMIT.cfg
 
 
README.chromeos.md
README.chromeos.md
 
 
README.md
README.md
 
 
mypy.ini
mypy.ini
 
 
pyproject.toml
pyproject.toml
 
 
rust-toolchain
rust-toolchain
 
 

Repository files navigation

crosvm

crosvm logo

The ChromeOS Virtual Machine Monitor

License Documentation Matrix


crosvm is a secure, lightweight, and performant Virtual Machine Monitor (VMM) written in Rust. Originally developed for ChromeOS to run Linux (Crostini) and Android guests (ARCVM). It is now used across multiple products and platforms such as TerminalApp on Android, Cuttlefish and Windows.

crosvm focuses on security through strong isolation and a modern, memory-safe implementation. It leverages hardware-assisted virtualization to provide a robust execution environment for untrusted code.

🌟 Core Philosophy

  • Security First: Built with Rust's memory safety guarantees. Each virtual device can be run in its own sandboxed process with restricted system access.
  • Isolation: Uses Linux namespaces, seccomp filters, and Minijail to create a multi-layered security boundary.
  • Performance: Optimized for modern workloads with features like io_uring, vhost, and an internal async runtime (cros_async).
  • Portability: Supports multiple CPU architectures and hypervisor backends.

🛠️ Technical Specifications

Supported Architectures

  • x86_64
  • aarch64
  • riscv64

Supported Hypervisors

  • Linux/Android: KVM, Gunyah (Qualcomm), GenieZone (MediaTek), Halla (Exynos).
  • Windows: WHPX (Windows Hypervisor Platform), HAXM (Intel).

Virtio Device Support

crosvm implements a wide range of paravirtualized devices via the virtio standard:

  • Network: virtio-net with optional vhost and slirp backends.
  • Storage: virtio-block supporting raw, qcow2, zstd, and Android sparse formats.
  • Graphics: virtio-gpu with 2D and 3D acceleration (via virglrenderer, gfxstream, or vulkano).
  • Display/Input: Integrated virtio gpu cross domain support for wayland passthrough
  • Audio: virtio-snd with backends for CRAS (ChromeOS), AAudio (Android), and more.
  • File System: virtio-fs and virtio-9p.
  • Other: Console, RNG, Balloon, Vsock, TPM, Pmem, Video Decoder/Encoder, etc.

🔒 Security Architecture

crosvm is designed with a "process-per-device" model:

  1. Main Process: Handles VM initialization and core orchestration.
  2. Device Processes: Each virtio device can be forked into its own process.
  3. Sandboxing: Each device process is jailed using Minijail:
    • Namespaces: VFS (pivot_root), PID, User, and Network isolation.
    • Seccomp: Strict BPF filters restrict syscalls to only those required by the specific device.
    • Capabilities: All unnecessary Linux capabilities are dropped.

📖 Documentation

  • User Guide & Documentation: Comprehensive guide for users and developers.
  • Architecture Deep Dive: Details on the internal design and communication framework.
  • API Documentation: Auto-generated Rust API docs, useful for searching internal types and functions.
  • Source Code: The authoritative Chromium Git repository.
  • Contributor Guide: Workflow and coding standards.
    • Note that the GitHub repository is a read-only mirror. All contributions are submitted via Chromium Gerrit.

🚀 Getting Started

The recommended way to build and develop crosvm is using the provided development container.

Prerequisites

  • Linux: A modern kernel (5.x+) with KVM access.
  • Podman or Docker: Installed and configured.

Building

Use the dev container to build a release version of crosvm:

./tools/dev_container ./tools/build_release

Basic Usage

Follow this example usage to run a simple Linux guest.

🤝 Community & Support

  • Announcements: Join to watch for announcements
  • Matrix Chat: Join the #crosvm channel on Matrix.
  • Issue Tracker: Report bugs or request features.
    • For Googlers: See go/crosvm#filing-bugs.
  • Mailing List: Developer discussions.

crosvm is an open-source project licensed under the BSD-3-Clause License.

About

The Chrome OS Virtual Machine Monitor - Mirror of https://chromium.googlesource.com/crosvm/crosvm/

crosvm.dev/book/

Resources

Readme
BSD-3-Clause license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

1.4k stars

Watchers

17 watching

Forks

191 forks
Report repository

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.