These are exciting times for devices.
End users have the options of Android, ChromeOS, FirefoxOS, KDE Plasma Active,
etc., to choose from. Here’s a look at how similar or different these OSs are
from each other.
One striking difference is that each OS is
supposed to have a distinct personality in addition to, perhaps, some
differences in functionality. This is in contrast to the flexibility of
distributions like Fedora and Arch Linux, where you can get very different
environments by switching between KDE, GNOME, Cinnamon, XFCE, LXDE, etc. Ubuntu
may have a preference for Unity, but it too can be changed to any of the other
personalities.
Users
have the options of Android, ChromeOS, FirefoxOS, KDE Plasma Active, etc., to
choose from. Here’s a look at option of Firefox OS
You may also differentiate various
environments on the basis of thin and thick clients. The new environments seem
to fall between the two. They rely predominantly on the Web or the cloud, but
do have local applications, which tend to be lightweight. They also rely upon a
rich browser, which can work with local data as well. So, to use comparatively
ancient terminology, would you consider these devices the ‘clients’ in a
‘client-server’ environment?
Given so many new choices, especially as
developers, you need a way to play around with the various alternatives, and
understand their specialties and idiosyncrasies. In a corporate or educational
environment, you may need to support and manage the variations.
It is good to re-look at some of the old
and not-so-old solutions, and see how they perform today. One of the ideas
would be to check out if you could extend some of these solutions in order to
incorporate the desirable features of the new environments in corporate and
educational environments.
Running Linux from RAM
If you haven't tried Puppy Linux in a
while, do try it. It is not that it is very different from what it was some
years ago; but if you run it on a recent desktop, the user experience is remarkable.
It is incredibly responsive.
Running
Linux from RAM
Puppy Linux has packaged a limited set of
applications, which are small in size. The default operation is that it runs
from RAM. So, when you boot into Puppy Linux, it seems to take a comparatively
long time for such a compact distribution; however, this time is needed to copy
and set up the root partition in RAM.
Base Puppy Linux consists of three files –
minus, initrd.gz and a root squash file system (something like
puppy_precise_5.4.3.sfs). You may copy the three files in, say, a puppy
sub-directory under the /boot partition, and add an entry in the GRUB menu as
follows:
menuentry‘PuppyLinux’{linux/boot/puppy/vmlinuz-puppypsubdir=boot/puppyinitrd/boot/puppy/initrd-puppy.gz}
You may wish to experiment with booting
from a server over the network. Since the Puppy Linux kernel does not come with
NFS support, the easiest option is to create a new, larger initrd file by
adding the sfs file in the initrd. You will need to suitably configure the dhcpd,
tftpd and HTTP servers. The latter is important, as booting with tftp is slow
for large files and iPXE boot rom s (ipxe.org) supports a variety of options,
including HTTP. You may use ipxe.krn from http://boot.ipxe.org/ipxe.iso, which
includes all the supported drivers. The GRUB entry is simple:
menuentry “ipxe”{ kernel16 ipxe.krn}
A comparison of booting times on the same
hardware follows:
·
Linux Flavour: Boot-up Time
·
Ubuntu 12.10 from local disk: 45 sec
·
Precise Puppy 5.4.3 from local disk: Almost 40
sec
·
Precise Puppy 5.4.3 using HTTP over 100 MBps net
connection: Just over 1 min
·
Precise Puppy 5.4.3 using HTTP over 1 Gigabit
net connection: 50 sec
Porteus: An alternate RAM-resident
distribution
Wikipedia has a list of distributions that
run from RAM. Porteus seemed appealing. It evolved from Slax, which also runs
from RAM and uses a KDE desktop. Porteus offers you an option of KDE and LXDE
desktops. The newly released version 2 has an XFCE-based alternative package as
well. Another attraction of Porteus is that it includes the option to boot into
Porteus using PXELINUX from a machine running Porteus. Version 2 is even
easier, as it has an initrd with the network drivers included; no modification
of initrd is needed for client machines. You may adopt the scripts to use dhcpd
and the Apache Web server instead, and boot into Porteus from a server running
Fedora, Ubuntu or any other distribution.
Porteus
offers you an option of KDE and LXDE desktop
·
Porteus Linux Flavor: Boot-up Time
·
Porteus v2.0 KDE from local disk: 35 sec
·
Porteus v2.0 LXDE from local disk: Under 20 sec
·
Porteus v2 KDE using HTTP over 1 Gigabit net
connection: 50 sec
·
Porteus v2 LXDE using HTTP over 1 Gigabit net
connection: 40 sec
·
Porteus v2 KDE using HTTP over 100 MBps net
connection: 70 sec
·
Porteus v2 LXDE using HTTP over 100 MBps net
connection: 55 sec
What is striking is that Porteus with an
LXDE desktop boots from the local disk in half the time of Puppy Linux! Even
the KDE desktop boots faster. The most likely reason would be the more recent
kernel version used by Porteus. Puppy Linux uses Linux kernel 3.2 for i386,
while Porteus uses kernel 3.7, and we chose the x86_64 architecture. Subtle
differences in the Linux Live Kit scripts between the two versions might also
make a difference.
I had not expected the network boot to add
about 15 seconds to the boot time even on a Gigabit network, for distributions
of the order of 200 MB. Hopefully, with the renewed active development of iPXE,
you may see significant improvements.