« Previous 1 2 3 4 Next »
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.
« Previous 1 2 3 4 Next »
Buy this article as PDF
(incl. VAT)
Buy ADMIN Magazine
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Most Popular
Support Our Work
ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.