Crostini I: Brief introduction

A quick introduction to how does ChromeOS provides a Linux Environment for developers with Crostini.

·

2 min read

Crostini I: Brief introduction

As I explained in my last post, ChromeOS has a nice feature for a developer which lets you run an isolated Linux environment called Crostini.

In this article, I will talk about Crostini and its architecture.

What is Crostini?

Crostini is the umbrella term for making Linux application support easy to use and integrates well with Chrome OS. It largely focuses on getting you a Terminal with a container with easy access to install whatever developer-focused tools you might want. It's the default first-party experience. - According to Chromium OS project.

Crostini is not software, neither a Linux distro nor a virtual machine. It is a set of tools that provides a Debian 10 LXD container that works smoothly on ChromeOS. It can run pretty much every Linux software, including Graphical/GUI-based pieces of software like VSCode or Firefox.

Crostini architecture.

The following picture from Chromiums' Google Source repo is the architecture diagram of Crostini.

image.png

As you can see, crostini is complex. But not hard to understand.

Crostini is composed of 3 component layers which are:

  • CrOS: CrOS is the abbreviation of ChromeOS (Blue). It is the uppermost layer, as it controls the Termina VM and the Debian Container.
  • Termina VM: The middle layer is a VM called Termina (Red). It's a virtual machine with ChromeOS and a stripped-down version of its kernel. Its purpose is to boot up the Debian Container quickly through LXD.
  • Debian Container: The final layer is the Debian Container (Yellow). Every Linux software is installed and executed through this layer.

These layers work together to provide a smooth way for running Linux software from ChromeOS, no matter if they are TUI or GUI.

Crostini features.

Here is a non-extensive list of Crostini features in ChromeOS:

  • USB forwarding (Still in progress).
  • Camera access from Crostini (Soonly available. Explained here).
  • You can develop web application and run web servers directly accessible through your Host Browser.
  • Develop under any programming language like C, Java, Golang, Rust, Adalang, {you name it}.
  • Hundred of thousands of software available. If it runs on Debian, it will probably run on Crostini too!
  • You can easily emulate Android with you ChromeOS while using Flutter/Android Studio from Crostini.

What next?

In the next post I will explain how does crostini works, identifying each layers and it's component.

Did you find this article valuable?

Support @nichromat Blog by becoming a sponsor. Any amount is appreciated!