site  news  contact

How and why EasyOS is different

October 04, 2018 — BarryK

EasyOS was born in January 2017, and since then I have written bits and pieces here and there about how and why it is different from other Linux distributions. This includes some rather technical descriptions. What is needed is a simple plain-English list, so that anyone can get a quick idea of what EasyOS is all about.

So, here goes. Do note, though, that Easy is an experimental distribution, and the features may change. These items are not listed in any particular order, just as I think of them...

Container-friendly
EasyOS is designed from scratch to support containers. Any app can run in a container, in fact an entire desktop can run in a container. Container management is by a simple GUI, no messing around on the commandline. The container mechanism is named Easy Containers, and is designed from scratch (Docker, LXC, etc are not used). Easy Containers are extremely efficient, with almost no overhead -- the base size of each container is only several KB.
Compiled from source
Easy is built with woofQ, which takes as input binary packages. These packages can come from any distribution, such as Ubuntu DEBs, however, to reduce bloat and undesired architectural features (such as systemd), the binary packages are created by oe-qky-src, my fork of OpenEmbedded. That is, all packages in Easy are compiled from source, there is no reliance on any other distro. This does mean a much smaller repository, however, they are optimized for Easy (small and fast).
Run as root
This is controversial, however, it is just a different philosophy. The user runs as root, apps may optionally run as user 'spot' or in containers as a "crippled root" or users 'spot' or 'zeus'. The practical outcome is that you never have to type "sudo" to run anything, nor get hung up with file permissions.
No ISO
Optical media is a legacy format. Very few desktop PCs are sold these days, it is mostly laptops, and most of those do not have optical drives. Easy is provided as an image file that can be written to any Flash-stick of 2GB or greater (and will auto-grow to fill the drive). Or, the file can be opened up and directly installed to internal hard drive, in what we call "frugal" mode.
No full install
In a traditonal "full" installation, the filesystem occupies an entire partition, with the usual /etc, /bin, /usr, etc. Easy does not install like this.
Roll-back, roll-forward
With Easy, you can take a snapshot, and later on roll-back to it. Then, you can roll-forward. This can work across version changes, kernel changes.
SFS meta-packages
Easy supports SFS meta-packages, which are lots of packages bundled into one file, which is named with ".sfs" extension. These never get extracted, when in use they are mounted in the aufs overlay filesystem, and can be uninstalled just by removing. For example, there is 'devx-<version>.sfs', which has everything required for compiling and debugging. There is also kernel source SFS, and so on. SFSs make life very simple!
pup_event service manager
Easy uses the Busybox 'init' system, no systemd! To provide management of services with dependences, there is pup_event, a simple extension to the init-system. For example, a daemon could be brought up only when network is active.
GUIs for everything
The objective is that everything in Easy be configured by simple GUIs, without having to fiddle about on the commandline. This includes management of SFS files, Easy Containers and pup_event.
Non-standard hierarchies
When someone boots up Easy, they will see that the menu (bottom-left of screen) is totally different from what they are accustomed to. Ditto the folder hierarchy. The thing is, keep an open mind -- it is very easy to adjust, and there are solid reasons for the differences.
JWM-ROX desktop
Everyone knows about Gnome, KDE, Mate, XFCE and LXDE desktops, very few are aware of JWM-ROX. This has been used by Puppy Linux since around 2004, and is an extremely lightweight (fast) yet powerful desktop. JWM is a window manager, and ROX is the ROX-Filer file-manager and desktop handler. They work extremely well together, and are the choice for Easy.
Encryption
The working-partition has folders 'containers', 'home' and 'repository', and these may optionally be encrypted. These folders are everything, all your work, downloads. etc. Encryption means that a password must be entered at bootup.
x86_64 and aarch64
As Easy is built from binary packages compiled in oe-qky-src, my fork of OpenEmbedded, I can create anything, such as i686, x32 or armv7 binary packages, however, to remain focused, I intend to only release x86_64 and aarch64 builds. In the latter case, may target RPi3 and Rock64 boards.
Puppy heritage
I created Puppy Linux in 2003, turned it over to the "Puppy community" in 2013. It is only natural that a lot of "puppyisms" can be found in Easy, though, it must be stated that Easy is also very different, and should not be thought of as a fork of Puppy. Inherited features include the JWM-ROX desktop, menu-hierarchy, run-as-root, PET packages, and dozens of apps developed for Puppy.

The future. These are some things that may happen...

Devuan in a container
The container mechanism is powerful, and it is planned to offer the Devuan distro in a container. Running Easy, you will be able to click an icon on the desktop, and be in a new desktop running Devuan (or rather, a simulcrum of Devuan), then a simple key-press to flip back to Easy.
Every app in a container
Currently, apps by default run in the main filesystem, except SeaMonkey and Sakura terminal are offered in containers. Any app can be chosen to run in a container, by the Container Management app. Currently also, user-installed apps will run in the main filesystem. What I am thinking about, is that user-installed apps may be optionally installed directly into containers. Possibly also, every app could be in its own container.
Remove package manager
With the move to containers, perhaps the conventional package manager will be deprecated. Instead, there will be a "SFS Manager", and an installed SFS will run in its own container. Such an installation will work indefinitely, despite EasyOS version upgrades.

I do hope that these highlights give you a positive appreciation of what EasyOS is all about!

Regards,
Barry Kauler

Tags: about