First Look at Jeoss, a Lean and Mean Ubuntu-Based Server Distribution



There is a new Linux on the block and its name is Jeoss. What’s Jeoss? It’s a compact, install-everywhere Ubuntu-based server distribution. Does the world need yet another Ubuntu derivative? Sure, why not? Let’s install Jeoss and kick its tires.


What It Is

Jeoss is a descendant of JeOS (just enough operating system), which was based on Ubuntu 7.10, Gutsy Gibbon. JeOS was intended to be a VMWare virtual appliance. JeOS is no longer a separate project, but has been absorbed into Ubuntu Server.

Jeoss is maintained by Patrick Massotta, and is based on Ubuntu 8.04 LTS, the Hardy Heron. It is not virtualized, but rather trimmed down to the naked essentials for a lean, mean efficient server. It uses a modified Ubuntu linux-image-2.6.24-27-server kernel. It differs from the Ubuntu server kernel in three significant ways: it is low-latency, it includes i586 instructions, and it does not require a PAE-enabled CPU. (PAE, Physical Address Extension, is a slick hack for 32-bit CPUs to access more than 4 GB RAM.) So Jeoss can be used with lower-power and non-PAE CPUs like Pentiums and AMD Geode processors, which are popular on single-board computers.

Unlike a lot of tiny Linuxes Jeoss includes a package manager. The ones that do not incorporate a package manager are painful to add software or to update, usually requiring a rebuild. This is fun only the first couple of times. Package managers are left out because they require a lot of storage space. On a stock Debian system, for example, the package cache requires about 120 MB just for the directory structure and indexes, plus the necessary commands like apt-get, apt-cache and dpkg. On Jeoss it’s a lot smaller, about 30 MB after installation, but that will grow as I install more packages. Just a few years ago Compact Flash was tiny and expensive, so it was imperative to strip down embedded operating systems as small as possible. Now Flash storage is cheap and big.

The Jeoss download image is about 137 megabytes, and it installs to 210-490 MB, depending on which packages you install. This makes it a great size for single-board computers like PC Engines and Soekris, and small form factor computers like Via mini-ITX, which are adaptable into a multitude of roles: firewall, iPBX, proxy server, print server, file server, Web server, wireless access point, thin client, kiosk, router, whatever you can think of. I love single board computers + Linux and use them a lot. It makes me happy to pay a fraction of what some over-priced, under-featured commercial device costs, and get many times the functionality. Plus I know exactly what goes into it and don’t get sneaky surprises, like secret backdoor passwords or phoning home.

It requires a minimum of 128 MB RAM, and I recommend a minimum 1 GB of storage to allow for the package cache. Remember the apt-get clean and apt-get autoclean commands for managing your packages caches. apt-get clean removes all downloaded packages, and apt-get autoclean removes only obsolete packages.

Poking and Prodding Inside

After downloading a new ISO I like to mount it and poke around inside before installing it. First create a temporary directory in your home directory. Then change to root and mount the Jeoss .iso in your temporary directory, adjusting filepaths to suit:

$ mkdir jeoss
$ su
# mount -o loop JeOSS-U-LTS-8.04.3-i386.R1.B1.1308385923.iso temp/

Now the temp/ directory displays the Jeoss filesystem:

$ ls temp
dists install jeoss.eula md5sum.txt pool README.diskdefines

Right away I spy jeoss.eula. It contains the usual boilerplate US export restrictions and GPL notices. The only restrictions are on using the Jeoss name, artwork, or any other Jeoss bits without permission. No big deal here.

You’ll find that install/doc/JeossInstall.txt contains a thorough and well-written installation manual. The Jeoss installer is a thing of beauty, which we shall get to presently. install/SCREENS/ contains all the boot help screens, F1-F9. You could easily print them for reference during installation.

There is even a Smart Boot Manager image in install/sbm. If you have an old machine that doesn’t support booting from a CD, or it has an aversion to ISOLINUX, then you can use SBM to create a boot manager on a 3.5″ diskette.

As I looked through the files and read the material on the Website, I formed an impression of an orderly, thoughtful mind at work. Everything is laid out cleanly and in a rational order.

Installing Jeoss

The installer is based on the Debian installer, with some cool added functionality. You can install Jeoss directly from a CD, PXE netboot, serial console, physical console, or over SSH. All work on headless machines.

I installed it from CD on my test PC, a valiant multi-boot Debian system that is abused daily. There was no drama; it went fast and smoothly. It offers the usual installer choices of normal, expert, rescue, and shell, and you don’t need an Internet connection to complete the installation. Note that Jeoss does not support Ext4, so if you’re running a test setup like mine, you won’t have access to any local Ext4 filesystems from Jeoss.

You get a thorough set of configurable options during installation: creating a user, serial port speed, network configuration, a default IP address as a fallback, and software selection. You can see the installation process in detail in install/doc/JeossInstall.txt, or the online installation manual. If you elect for a Normal installation be sure to install the Basic package group to get important utilities like OpenSSH and GNU Screen.

The installer also has special options for installing to removable media, which may be assigned different names on different machines. Jeoss will try to auto-configure GRUB when you boot it on different machines. When you’re putting Jeoss on Flash media be sure to take advantage of the special installation option for Flash that reduces unnecessary writes.

Using Jeoss

Jeoss, like Ubuntu, sets up your user with complete sudo admin powers. The root user has a disabled password, so if you like having a root user you’ll have to create a password (sudo passwd root). I installed the Basic, Router A, Lighttpd, OpenVPN, and Webmin package groups. Lighttpd, Webmin, and sshd all started automatically after installation, so I could access the Jeoss server remotely. Figure 1 shows the Webmin console, which properly requires a secure HTTPS connection and will not work without it. Webmin reports that Jeoss is using 1.51 GB disk space, which is a puzzle because both du and dh report about 410 MB.

Figure 1: Webmin Console

Jeoss uses the Ubuntu repositories, so it is very flexible for whatever role you want it to serve. You could even make a customized lightweight desktop system, though it’s going to have old Hardy packages.

Windows users should take a look at ePuTTY 32/64, Mr. Masotta’s improved version of PuTTY. Another interesting member of the Jeoss family is Serva32/Serva64, which can do PXE installations of Debian and Ubuntu from their installation ISOs.

Jeoss looks like a promising addition to the tiny Linux ranks. Editor willing and the creek don’t rise, stay tuned for more adventures with Jeoss, such as network installations and building cool useful devices like secure wireless access points and file and print servers.



Jeoss author Patrick Massota answers reader questions and gives some more information:

“I’m very conscious about the Linux distribution overpopulation but Jeoss was
born out of a necessity; my necessity.
There were no distributions around able to:
1) be directly installable on headless servers.
2) be directly installable on flash memory.
3) be completely installable from an ssh session to avoid the terminal
emulator serial cable.
4) be a light distro but able to install all the packages frorm a big distro
repository like Ubuntu.
5) be fully PXE installable with exactly the same iso.
6) not require Internet during the install.

The small distros tend to be reduced versions, adding packages/drivers is
generally not easy
Jeoss is just Ubuntu Server with a more elaborated user experience in a
single ISO.

About why 8.04 LTS the explanation is simple; I wanted to be based on a LTS
version and when the project began 10.4 LTS was not out.
When finally 10.4 was made available I realized the kernel was much bigger
than 8.04 then I decided to publish the project with 8.04 LTS as the first
Jeoss version. If people like Jeoss approach I have plans for Jeoss 10.4 LTS
and also Jeoss 6.0 (Debian); we’ll see.”