EasyPup, a blend of classical-Puppy and EasyOS
Previous edit: February 29, 2020
The
EasyPup project is retired. The last release was version 2.5.1, on
December 4, 2020. The currently active project is EasyOS, see easyos.org |
EasyPup is a blend of "classical Puppy" with EasyOS. EasyOS originally
derived from Puppy, but is a complete redesign, based on use of
containers. EasyPup may be considered as a traditional Puppy, but with
many enhancements of EasyOS, sans container support.
Regarding the "Puppy part" of EasyPup, EasyPup is built with WoofQ,
not with WoofCE. The latter is the build system used to create the
latest official releases of Puppy. They both forked from Woof2 in 2013,
and the Puppy-components of WoofQ have pretty much stayed as they were
in 2013. So the Puppy-related infrastructure is a "classical Puppy".
Having said that, the "EasyOS part" of WoofQ has brought
considerable enhancements to the infrastructure, quite different from
WoofCE. For example, audit-tracking of installed packages, and hardware
profiling for video and sound. There is a web page that has a table listing how and why EasyOS is different (https://easyos.org/about/how-and-why-easyos-is-different.html). That table is reproduced here, with the features not in EasyPup greyed-out:
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. |
Totally isolated running in RAM |
The boot menu has an option "Copy session to RAM
& disable drives", which boots to a desktop with power of
administrator (root) in all respects except totally isolated from the
drives of the PC. This is an alternative to using containers, and is
intended to be even more secure than containers. An introduction is here. |
Run as root |
This is controversial, however, it is just a
different philosophy. The user runs as administrator (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. |
Deprecated 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. However, an ISO live-CD is still offered, with session-save capability, mostly to cater for those users who have a computer that will not boot from USB. |
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. |
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. 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. |
SFS mega-packages |
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_<version>_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. Read more here. |
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. |
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 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. |
x86_64 and aarch64 |
In theory, as Easy is built from WoofQ, it can
use any binary packages, i686 for example. However, each architecture
requires time and effort to support, so Easy releases
are only x86_64 and aarch64 builds. In the latter case, may target
RPi3&4 and
Rock64 boards. |
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. |
Drive names not renamed |
Ditto. The kernel-assigned names for drives and partitions are retained. For example drive sda and partition sda1. |
Hardware profiling |
Currently for video and audio. Boot EasyOS from a
USB-stick on different computers, and automatically remembers the setup
for that hardware. video audio |
Puppy heritage |
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. |
Narrowing it down a bit more, EasyPup differs from the official WoofCE-built puppies in that it has these EasyOS enhancements:
- Package manager audit-trail
- pup_event service manager
- Hardware profiling
Which one to choose, EasyOS or EasyPup? EasyOS is where the exciting action is, however, if you have used one of the other puppies and would like to stay in that fold, you could give EasyPup a go.
Links
Download EasyPup from here:
http://distro.ibiblio.org/quirky/easypup/amd64/releases/
Documentation on "classical-Puppy":
https://bkhome.org/archive/puppylinux/development/howpuppyworks.html
https://bkhome.org/archive/puppylinux/install.htm
The main Puppy Linux site:
The main Puppy Linux forum:
The main EasyOS site:
Tags: linux