Linux apps on Windows 10 and Chrome OS

Penguin Travel

Container Virtualization on Chrome OS

More than just Microsoft Windows is suitable as a platform for Linux development, Google Chrome OS is also establishing itself. Chrome OS has long become more than just a particularly lean base for the Chrome browser. Native extensions, Android apps, and platform-independent progressive web apps (PWAs) increase the feature set, and if that is not enough, Chrome OS has also come up with a Linux subsystem. Chrome OS even has an easier time than Windows of doing this because of its ancestry; after all, the open source Chromium OS project is a descendant of the Gentoo Linux distribution and is the basis for Google's proprietary operating system.

Google has integrated a Linux environment into Chrome OS with a project internally known as "Crostini." Although Google declared the system stable and ready for production use starting with Chrome OS 91 at the virtual Google I/ O 2021 in-house exhibition, it was still marked as beta in the Chrome OS settings and central administration in the Google Admin Console in releases before Chrome OS 94. Hardware integration is not yet fully developed. The Linux environment still lacks support for webcams, hardware-accelerated graphics, Bluetooth, and access to USB devices.

Unlike the strict security concept of Chrome OS, which locks every app and even every tab of the Chrome browser into a separate sandbox, all apps within Linux share a common security context.

Under the hood, Chrome OS uses a hypervisor named crosvm, which hosts a VM named termina as a guest. This in turn runs the Linux container manager LXD, which serves as the basis for a container simply named Penguin . The Debian 10 "Buster" distribution runs in the container. Unlike WSL in the Microsoft Store, Chrome OS does not officially support different distributions. Advanced users might be so bold as to build alternative containers themselves with LXD [7]. In the following example, however, I focus on the possibilities of the Debian container provided by Google.

Setup and Expand

On supported Chromebooks, go to Settings | Advanced | Developers | Linux development environment (newer Chromebooks might be able to go directly to Settings | Linux ). These settings could be missing for two reasons: Either your Chromebook does not support the ability to run a Linux environment, which may be the case on older or less powerful devices, or as part of central management, a policy is acting on the device that prohibits the use of Linux. Also, with further development, some menu choices could change but should be easily found.

When you click the Turn On button, Chrome OS starts setting up the Linux environment. The wizard prompts you for a username, which, much like WSL, does not have to match your username on Chrome OS. Google initially suggests 7.5GB as the size of the virtual drive. You can accept this without worry and expand the drive later if you run out of space. After successfully completing the install, Chrome OS presents you with a terminal window with the Linux shell of the Debian system. You will also find the terminal in the operating system's launcher in the Linux apps folder. As with WSL, you will first want to update Linux:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean

In addition to shell commands, Linux also integrates graphical applications and does so with far less overhead than with WSL. For example, you can install the Nemo file manager, a clone of the popular Gnome Nautilus:

sudo apt-get install -y nemo

Graphical applications like these anchor themselves in the Chrome OS launcher, as with the terminal, and you can pin them to the tray from there.

Chrome OS and Linux also exchange data bidirectionally. For this purpose, you will find the Linux Files folder in the Files app on Chrome OS; it points to the /home/<username> directory within the Debian environment. You can pass additional paths to Linux with the Share with Linux option in the context menu of each folder. The mountpoints can then be found in the Linux container under /mnt/chromeos/MyFiles/<folder name>.

Backup and Restore

In the Chrome OS settings click Advanced | Developers | Linux | Back up and restore (or Linux (Beta) | Backup & restore ) to create a backup of your working environment or restore it to a previous state. Chrome OS writes the contents of the container to a Crostini image file, recognizable by the *.tini file extension. In fact, this is a compressed TAR archive, so you can also read individual objects from it. Immediately after installation, a backup occupies only about 400MB, but including server daemons and developer tools can quickly expand this file to several gigabytes.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus