# Glossary

## 9S

A server for the [9P](http://man.cat-v.org/plan_9/5/intro) file system protocol. There is one instance of 9s for each [VM](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) and it provides that VM with access to the user's data stored outside the VM. This includes things like the Downloads folder, Google Drive, and removable media. The lifecycle of each 9s instance is managed by [Seneschal](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary). Each 9s instance starts with no access to any files. Access to specific paths is granted by sending a message to Seneschal, which makes the requested path available to the specified 9s instance. Requests to share paths can only be triggered by some user action.

## AMD-V

[AMD Virtualization](https://en.wikipedia.org/wiki/AMD-V), AMD's marketing name for hardware virtualization extensions.

## ARC

App Runtime for Chrome; the old/deprecated method of running Android apps in a Chrome [NaCl](https://developer.chrome.com/native-client) (Native Client) sandbox. Had random compatibility issues.

## ARC ++

Android Runtime for Chrome \[plus plus\]; the current method for booting Android in a container under ChromeOS.

## CICERONE

A daemon that runs in ChromeOS which handles all communication directly with the [VM](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) and container once the container starts running. Specifically, it communicates with [Tremplin](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) (which runs inside of the VM, and [Garcon](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) (which runs in a container inside the VM).

## CONCIERGE

A daemon that runs in ChromeOS which handles lifecycle management of VMs and containers and uses gRPC over vsock to communicate with [Maitred](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary).

## CROSH

[ChromeOS shell](https://chromium.googlesource.com/chromiumos/platform2/+/master/crosh/); a restricted developer shell for running a handful of commands.

## CROSTINI / LINUX ON ChromeOS

The umbrella term for making Linux application support easy to use and integrate well with ChromeOS. It largely focuses on getting you a [Terminal](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) with a container with easy access to install whatever developer-focused tools you might want. It's the default first-party experience.

## CROSVM

[A custom virtual machine monitor](https://chromium.googlesource.com/chromiumos/platform/crosvm/) that takes care of managing [KVM](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary), the guest [VM](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary), and facilitating the low-level ([virtio](http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.html)-based) communication.

## FUSE

[Filesystem handling in userland](https://github.com/libfuse/libfuse/) which enables a wider variety of formats, remote filesystems, and improves overall security/stability.

## GARCON

[A daemon that runs inside a container](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/garcon/) within the [VM](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) and provides integration with [Cicerone](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary)/Chrome for more convenient/natural behavior. For example, if the container wants to open a URL, Garcon takes care of plumbing that request back out.

## KVMTOOL

[A simple/fast virtualization tool](https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git/).

## LXC

[Linux container solution](https://linuxcontainers.org/lxc/introduction/).

## MAITRED

[The init and service/container manager inside of the VM](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/maitred/), which is responsible for communicating with [Concierge](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) (which runs outside of the VM). Concierge sends it requests and Maitred is responsible for carrying those out.

## QEMU

[A large/complete virtual machine emulator](https://www.qemu.org/).

## SENESCHAL

[A daemon that runs in ChromeOS that handles lifecycle management of 9P](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/seneschal/) servers. When [Concierge](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) starts a [VM](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary), it sends a message to Seneschal to also start a [9s](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary#term--9s) instance for that VM. Then, while configuring the VM, Concierge sends a message to [Maitred](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) instructing it to connect to the 9s instance and mount it inside the VM.

## SOMMELIER

[A Wayland proxy compositor](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/sommelier/) that runs inside the container. Sommelier provides seamless forwarding of contents, input events, clipboard data, etc..., between Wayland applications inside the container and Chrome. Chrome does not run an [X](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) server or otherwise support the X protocol; thus Sommelier is also responsible for starting up [XWayland](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary) (in rootless mode), acting as the X window manager to the clients, and translating the X protocol inside the container into the Wayland protocol for Chrome.

## SVM

[Secure Virtual Machine](https://en.wikipedia.org/wiki/AMD-V), AMD's short name for [AMD-V](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary).

## TERMINA

[A VM image with a stripped-down ChromeOS Linux kernel and userland tools](https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/master/project-termina/). Its only goal is to boot up as quickly as possible and start running containers. Many of the programs/tools are custom here. In hindsight, we might not have named it one letter off from "Terminal", but so it goes.

## TERMINAL APP

The first entry point into the Linux on ChromeOS. It takes care of kicking off everything else in the system that you'll interact with. The default container launched via Terminal is [Debian](https://www.debian.org/) with custom packages, by default named `penguin`. See [cros-container-guest-tools](https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools/) for more details.

## TREMPLIN

[A daemon that runs in the VM](https://chromium.googlesource.com/chromiumos/platform/tremplin/+/master/) to provide a gRPC wrapper for LXD. This includes basic functionality such as creating and starting containers, but also provides other Linux on Chrome OS-specific integration such as setting up a container's primary user, and setting up apt repositories in the guest to match the ChromeOS milestone.

## USERLAND

[Everything not running inside of the kernel](https://en.wikipedia.org/wiki/User_space). Also known as user space.

## USERLAND

[Everything not running inside of the kernel](https://en.wikipedia.org/wiki/User_space). Also known as user space.

## VM

[Virtual Machine](https://en.wikipedia.org/wiki/Virtual_machine); a way to boot a different operating system in a strongly isolated environment.

## VMC

[crosh command to manually manage custom VM](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/concierge/) instances via [Concierge](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary).

## VMX

[Virtual Machine Extensions](https://en.wikipedia.org/wiki/Intel%20VT-x); Intel's short name for [VT-x](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary).

## VSH

[Shell that runs inside the VM](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/vsh/) (not inside of the container).

## VT-X

[Virtualization Extensions](https://en.wikipedia.org/wiki/Intel%20VT-x); Intel's marketing name for hardware virtualization extensions.

## WAYLAND

[The new graphics stack in the Linux world](https://wayland.freedesktop.org/).

## WM

[Window Manager](https://en.wikipedia.org/wiki/X_window_manager); program responsible for managing windows that other programs create. e.g. window borders, maximizing/minimizing, etc...

## X

[Umbrella term for the large classical project](https://en.wikipedia.org/wiki/X_Window_System) tasked with making graphics and inputs work in UNIX environments. May refer to the server, client, protocol, [WM](https://developers.google.com/chromeos/app-development/develop/linux-on-chromeos-glossary), or many other facets depending on context. a.k.a. X11, X.Org, and XFree86.

## XWAYLAND

[An X server that outputs to Wayland](https://wayland.freedesktop.org/xserver.html).