EasyOS 2.2EasyOS is an experimental Linux distribution which uses many of the technologies and package formats pioneered by Puppy Linux. The distribution features custom container technology called Easy Containers which can run applications, or the entire desktop environment, in a container.
The project's latest version is EasyOS 2.2 which is based on Debian 10 packages. I last tried EasyOS (version 1.0) about a year ago and I was curious to see how the distribution has evolved. EasyOS is available for 64-bit (x86_64) computers and its download is a compressed image file, 514MB in size. Once the file is unpacked, it expands to 1,281MB (about 1.2GB).
Once the image file is written to a thumb drive we can boot the distribution which brings up a text console. We are prompted to pick our keyboard from a list of abbreviated language options. Then we are asked to make up a password. The password is later used to unencrypt a filesystem - I suspect the area of the thumb drive which contains our data and settings. In other words, it is important to remember this password.
The desktop, a customized version of JWM, loads and shows us a setup screen where we can adjust language and desktop settings. We are then given a chance to enable a firewall and open any listed network ports we wish. The window manager then displays icons along the top of the screen for launching package managers, a virtual terminal, a web browser, and a program that helps us find installed applications. Towards the central-top area of the desktop we find specially marked icons which launch containers. Specifically there are containers for running a console, a web browser, and a fully contained desktop. I will come back to these a bit later.
The bottom of the desktop is home to a panel which includes an application menu, task switcher, and system tray. The system tray has a tiny resource monitor in it, along with a volume control, battery monitor, and icon for connecting to local networks.
The application menu is a bit crowded. There are a lot of programs, many of them for adjusting settings and tweaking the desktop. The programs are well organized, though labelled differently than we might usually see in other distributions, so it took me a while to find programs I wanted to run.
The main focus of EasyOS is its container technology. A container allows the user to click an icon and launch an application in an isolated environment, with its own filesystem and its own files. Data we save in a container is kept separate from the rest of the operating system, and files we save outside of containers are hidden from applications inside the container. This allows the user to run multiple programs (or copies of programs) that do not interfere with each other and cannot see files we may wish to keep private.
EasyOS 2.2 -- Running a regular and a contained terminal in the same directory (full image size: 163kB, resolution: 1366x768 pixels)
These containers are especially useful when running untrusted scripts or applications. For example, we might want to run a web browser that is unable to see any of our files and, if it is hijacked, it will be unable to place malicious code in our home directory.
The nice thing about EasyOS containers is that they work seamlessly with the desktop. At a glance, a contained application looks like any other. We can click a contained program's icon (contained applications have a little lock symbol next to them) and the program opens in a window as usual and functions just like any other desktop application.
We can check to see if our program is running in a container by checking for the existence of a file in the program's default directory. A contained application will find its default directory includes an empty file featuring the name of the container. For example, INSIDE_console or INSIDE_buster.
Apart from the default application containers, there is also a launcher on the desktop for running an entire separate desktop environment in its own container. Launching this icon immediately creates a new, full-screen desktop that has its own application menu and icons. We can then run programs, move icons around, and install new software inside the contained desktop. We can switch back to our regular desktop (leaving the container running) by pressing Alt+F6. At this point the contained desktop can be accessed like any other window in the task switcher, or closed like we would with any other window.
EasyOS 2.2 -- Running an entirely isolated desktop in a container (full image size: 99kB, resolution: 1366x768 pixels)
Lots of operating systems, including other Linux distributions, feature application containers. This on its own is not new. What EasyOS does, which I have not seen done as well anywhere else, is make containers entirely seamless. They look and operate just like any other program running on the desktop, and are distinct only by their icons. This makes setting up and running isolated programs, for testing or privacy purposes, entirely a point-n-click experience.
EasyOS provides two package managers that can be accessed from desktop short-cuts. The first is PETget. This is a classic package manager that shows categories of applications on the left side of the window and a list of available software in the selected category on the right. At the top of the window there are a series of radio buttons that let us switch between different repositories, such as the Contrib, Main, and Multimedia repositories. This is a different approach from most package managers which merge package lists from all available repositories. With PETget we may need to browse through multiple repositories to find the software we want. There is a search box that helps us locate specific packages, located at the bottom of the window.
I installed a few programs using PETget and it worked well enough. PETget is unusual in that it asks us if we want to download dependencies, not just optional dependencies but hard requirements, for the software we are installing. Otherwise, PETget works mostly the same way as Pamac or Synaptic.
The second software manager is SFSget, which installs portable bundles of software. While I was using SFSget there were just a handful of packages (seven, to be accurate) available. These included larger applications such as Firefox, Chromium, and Krita. When we install these SFS bundles, we have the option of placing them on the main operating system (as we would with any other package) or we can install the software into a container. This allows us to place a specific application in an isolated environment, for security or testing purposes.
I experimented with this and found it worked pretty well. I could, for example, install Firefox into a container and then run the web browser in an environment separated from the main operating system. However, the application menu launcher for Firefox did not work, I had to open the container, launch a console and run Firefox from the command line. Apart from the Firefox launcher not working, everything else with managing SFS packages and containers worked beautifully and seamlessly.
EasyOS 2.2 -- Downloading SFS packages into a container (full image size: 275kB, resolution: 1366x768 pixels)
The EasyOS application menu is packed with a lot of useful applications and tools. The Seamonkey web browser is available along with the GNOME-mpv multimedia player and LibreOffice. The Evince document viewer is installed for us along with the GNU Image Manipulation Program and mtPaint. The ROX-Filer file manager is available too, as are programs for ripping, burning, and playing audio discs.
EasyOS 2.2 -- Running Firefox in a desktop container (full image size: 312kB, resolution: 1366x768 pixels)
The distribution ships with many small configuration programs for changing the wallpaper, adjusting the clock, setting up network connections, browsing hardware information, and adjusting the display. There are a lot of these little configuration modules and it can take a while to search through them, but they help insure that almost anything we want to do can be handled through a graphical utility instead of from the command line.
In the background EasyOS runs the Busybox init software and runs on version 5.4.6 of the Linux kernel.
At first I tried to run EasyOS in a VirtualBox environment. The distribution could boot, but was unable to initiate a graphical environment. The user is asked to run the xorgwizard program which will try to help us find the right display settings. Unfortunately this program was unable to fix my problem and I was only able to run a text console environment in VirtualBox.
The distribution ran much better on my laptop. EasyOS was able to boot in both UEFI and Legacy BIOS modes. The system started up quickly, the desktop was highly responsive, and programs loaded quickly. My hardware was handled well for the most part. My screen was set to its maximum resolution, sound worked, and my wireless networking card worked as expected. At first my touchpad would not register taps as clicks. This behaviour can be enabled through the Input Devices settings in the EasyOS Setup module.
When running on the laptop, EasyOS used about 140MB of RAM when logged into the JWM environment. Running a minimal container used about an extra 15MB of memory. A fresh copy of the distribution used 510MB of space on my thumb drive. This makes EasyOS unusually small and light on resources compared to most Linux distributions.
While it is possible to install EasyOS to a hard drive, the distribution seems to be primarily designed for use as a live desktop system that maintains persistent file storage on a thumb drive and that is how I used it this week.
I want to say up front that EasyOS does not appear to be designed with day to day use in mind. Someone certainly could use EasyOS on a regular basis, but since most programs are run as root, and the distribution seems geared to be run from a thumb drive, it seems more of an experimental and portable tool than a day-to-day operating system. This is how I was using it, at any rate, during my trial.
As a portable operating system we can use to rescue files, run some tests, browse the web, and edit documents, EasyOS performs beautifully. It is fast, the interface is fairly clean, the system is lightweight, and it works on both UEFI and Legacy BIOS computers. If your system has a 64-bit processor and can boot from a thumb drive, EasyOS can probably run on it.
The main draw though is containers. EasyOS makes running, setting up, and installing software inside containers a point-n-click experience. It is wonderfully simple, lightweight, and smooth. Other distributions have put forward isolated environments in one form or another. However, the other containers and integrated virtual machines I have tried either were either very heavy or cumbersome to use in comparison. EasyOS does not require us to use the command line, or run a special container manager to set up isolated environments. Everything is built into the desktop and the package manager for us and I really like how simple the experience is for the end user.
I hope other distributions take a hard look at how EasyOS manages isolated environments because it makes testing software and running untrusted programs (or programs dealing with untrusted input, such as web browsers) a much more straightforward experience.
* * * * *
Hardware used in this review
My physical test equipment for this review was a de-branded HP laptop with the followingspecifications:
Processor: Intel i3 2.5GHz CPU
Display: Intel integrated video
Storage: Western Digital 700GB hard drive
Memory: 6GB of RAM
Wired network device: Realtek RTL8101E/RTL8102E PCI Express Fast