EasyOS 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. Packages, desktop settings, networking and sharing resources over the network can all be controlled through graphical utilities.
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 Woof, 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, a 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 user 'zeus'. The practical outcome is that you never have to type "sudo" or "su" to run anything, nor get hung up with file permissions.
No full install
In a traditional "full" installation, the filesystem occupies an entire partition, with the usual /etc, /bin, /usr, /proc, /sys, /tmp, etc. Easy does not install like this.
Easy installs to hard drive in what we call "frugal" mode, which occupies just one folder in a partition, allowing to co-exist with whatever else the partition is used for.
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. This mechanism applies to the main filesystem as well as the containers.
Atomic version upgrade
Unlike distributions that perform version upgrade on an error-prone per-package basis, Easy is upgraded by replacing three files. Thus, successful upgrade is "guaranteed". This is analogous to "atomic transactions" in finance. Read more here.
Easy supports SFS mega-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 or overlay layered filesystem, and can be uninstalled just by removing. For example, there is 'devx__amd64.sfs', which has everything required for compiling and debugging. There is also kernel source SFS, and so on. SFSs make life very simple!
Package manager audit trail
PETget, the traditional package manager, maintains an audit-trail. One outcome, if install a package that overwrites an existing file, the "deposed" files are kept (see /audit/deposed) and restored if the package is uninstalled.
Run anything in containers
SFS files and containers, combined, are very powerful. You can even run other Linux distributions. For example, Puppy Linux Xenialpup 7.5.
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. pup_event also provides an extremely flexible and simple IPC mechanism, pup_event_ipc.
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.
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.
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.
The "working-partition" has folders that may optionally be encrypted. These folders are everything, all your work, downloads, history. etc. Encryption is by fscrypt, uses AES-256, and requires that a password must be entered at bootup.
Network interfaces not renamed
Easy keeps the kernel-assigned interface names, eth0, wlan0, etc., does not rename them to something weird such as "enp2s0", as do most distributions. Easy network management has no problem with keeping track of the correct interface, even if the kernel-assigned names change.
Barry Kauler 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, SFS layered filesystem, PET packages, and dozens of apps developed for Puppy.