COMP 3000 2011 Report: SliTaz

From Soma-notes
Jump to navigation Jump to search

Part 1

Background

The linux distribution that I have chosen is called Simple Light Incredible Temporary Autonomous Zone(SliTaz). It is developed by the SliTaz GNU/Linux Association with the main developer being Christophe Lincoln. The main goal of its developers was to create one of the smallest capable Operating system(OS) available today. SliTaz can be obtained here.

Being just about 30 megabytes(MB) and taking approximately 16 MB of Random-access memory(RAM), this distribution is perfect for use on older computers. As little as 16 MB of RAM is required but is only recommended if SliTaz is installed on the hard disk. Otherwise, with the LiveCD, you will have to either use a text based interface, upgrade to 80 MB of RAM and use the "loram-slitaz" LiveCD version, or get 192 MB of RAM if you would like to use the default version. This is good news for people that would like to use their decade old computer as a web server or a secondary workstation for the family. Another useful application for this OS is to use it on netbooks; these machines often come with bloatware and an operating system that is too resource hungry for its own good, making the experience very slow and frustrating for the user. Finally, users that want to keep their working environment on a usb key would most definitely be interested in this piece of software. Although it has many similarities to Damn small linux, SliTaz decided to create a new distribution instead of building upon older ones. It really makes sense when you think about it because the very nature of their goals forces the developers to design from the bottom-up, making sure that every component is as small as possible. Building on another distribution makes this much more difficult.

Installation/Startup

Running SliTaz for the first time

The download file is an International Organization for Standardization(ISO) image and I chose to burn it on a Compact disk(CD), but it can also be copied on a usb. I used the program Burn for this purpose and burning an ISO file using this program is simply a matter of dragging/finding the file while in "data" mode. Once that was done, I rebooted my computer and made sure that my basic input/output system (BIOS) had the right boot order so that the CD read-only memory(CD-ROM) would get read before the hard drive. From there, SliTaz initialized itself and started the boot sequence. It asked me in which language I'd like the OS to run as well as the type of keyboard that I preferred. The whole boot sequence was very fast and it took about 30-45 seconds to get to the desktop.


Installing SliTaz on a hard drive

The liveCD includes an installer for both a hard drive install or a usb key install. Either of them is recommended if you would like to keep data from your working environment. I have personally tried the hard drive install and everything went pretty well. Before I could start the installation process, I had to create a new ext3 partition using the GParted application included in SliTaz. Once that was done, I started the installation. Between selecting the partition and setting up my account, by choosing a username, password and language, the installation process took less than 2 minutes. At the end, the installer asked me if I wanted to install GRUB, which is a bootloader designed to choose between multiple operating systems. I naturally said yes, so the installation finished. This is where I had a small hiccup: after rebooting, I noticed that I could only boot in linux (I had windows 7 installed). After doing a little bit of research, I found out that I had to edit one of GRUB's config file in order to make it aware that windows 7 existed on one of the partitions; everything ran flawlessly from then on.


IMG 0002.jpg

SliTaz's initial boot screen

Since my new partition was 1.6 gigabytes and the file manager showed that only 1.3 gigabytes was left, I concluded that the whole installation took about 300 megabytes, which is very reasonable. All in all, I was very impressed with the speed and simplicity of the installation.

Basic Operation

As a programmer, there is some value in having an emergency development environment in case anything happens to your main computer, because it allows you to still meet some deadlines. SliTaz would be a very good candidate because of the fast installation process, the low system requirements and the flexibility offered by its package manager.

As a normal user, all of the mentioned properties are also advantageous because it allows me to use old computers and netbooks as perfectly acceptable recreational stations.

The development environment

SliTaz's default set of applications for developers is okay, but nothing extraordinary. The editor is called beaver and is exceedingly basic. There is no text highlighting, compilation module, ftp server support and file/project manager. It really is just a text editor. It supports plugins, so I assume that some of these issues can be remedied, but I haven't tried using them. Instead, I used the package manager to download "emacs", one of the most customizable editor, which means that its functionality can be scaled with the kind of computer being used.

The graphics section had some interesting applications to help with development involving any kind of graphics, such as game or web development. Clicking on "edit image" automatically downloads the latest version of GIMP, a very good open source image editor. It is very powerful and does most of what paid applications such as photoshop do. Although this is most likely the only tool needed for this kind of work, applications like the color selector and the vector graphics editor, inkscape, are welcomed additions.

The browser, called Midori, is quite fast and passes the acid3 test. However, it does not support flash out of the box and downloading the flash package did not fix that problem. It also does not support much of html 5 so it is not the best browser to test development work. Luckily, firefox and chrome are pretty small downloads and will get you as close as possible to an ideal testing environment. Internet explorer is unfortunately not available for linux.

SliTaz does not come with a compiler but I was able to quickly find a package for gcc.

The recreational environment

Midori again falls short here because of the lack of flash support. This will almost always force the user to either download opera, firefox or chrome. During my evaluation, firefox was expeditious and would behave normally in all test cases, making it a very good contender.

SliTaz includes some useful apps such as an irc client, a twitter client as well as a ssh client. If the "chat" button is clicked, the messenger application called pidgin is automatically downloaded and installed, which shows a lot about the OS' flexibility (by this I mean that the distribution is not bloated with all the possible applications; The user has to choose which ones he wants installed).

As for multimedia, SliTaz uses alsa player for music and mplayer for videos. While I don't know much about them, they seem to be very capable applications. Judging from their website, alsa player doesn't seem to be continually updated but mplayer, on the other hand, is.

The general environment

For general use, SliTaz provides a burning software, a word editor called "Abiword" and a spreadsheet editor called Gnumeric spreadsheet. Only one game, sudoku, comes with the default package, but it is no doubt possible to download and install new ones.

The package manager was a breeze to use and I was quite impressed by the large number of downloads available, currently sitting at a little bit more than 2000.

The OS' control panel, comprising of things such as the hardware and network managers, was quite simple to use. It was not bloated and only showed the meaningful settings.


A look at SliTaz's package manager

A Look at SliTaz's Package Manager

Usage Evaluation

SliTaz is no doubt a very useful package because it starts very slim, an important trait to have when running on slow computers, but it can also easily scale up to the desired balance of speed, memory usage and utility. The package manager makes this process quick and simple, with the only inconvenience being that the packages' information must be maintained. If, however, an application cannot be found on it, there is nothing stopping you from downloading and installing it manually; it is a win-win situation.

The only thing that I would change would be the browser, simply because most other options out there are better. The opportunity cost of going with firefox or chrome is very minimal, if not relatively insignificant.

Being that the goal of this distribution was to make the smallest possible OS, I think that they have succeeded. Its small memory footprint makes it ideal for old computers and netbooks, while its fast boot time makes it a good contender in the "OS on a usb" market. While it is a good thing that SliTaz is only 30 megabytes, what makes it stand out is the thought that was put into the design, making sure that every feature was optimally minimal.

Bibliography

Bellard. "Installation". SliTaz.
http://doc.slitaz.org/en:handbook:installation (28 Nov 2011)

Part 2

Software packaging

The packaging software used by SliTaz is called Tazpkg. It is a lightweight package manager with a size of about 35 kilobytes and is built from scratch using SH's shell script (SHell script). The packages are archived in a format called "cpio" and are embedded with a filesystem. This "cpio" file format has been used almost universally in unix and linux based kernels since 1976 and is a good contender to "tar". Right now, taspkg contains approximately 2085 installable packages.

Usability

Before we can do anything with the package manager, we need to request a list of available packages. SliTaz includes a graphic interface that makes tazpkg very easy to use as simply opening the interface will give you this list. Double clicking on one of the entry will spawn a modal window containing information pertaining to the package, such as its version, category, size, website and receipt. The window also allows the user to choose between installing, downloading or viewing the content of the package. If the package is already installed, the option to install is replaced with the option to remove.

If graphical interfaces are not your thing, you can always use the shell commands. For example, getting the list of available package is as easy as typing "tazpkg list".

Major package versions

Linux kernel
SliTaz's version : 2.6.30.6
Age : 2 years, 2 months and 5 days
Latest version : 3.1.1, nov 11, 2011
Time between latest version and used version : 2 years, 2 months and 3 days
Source : http://www.kernel.org/pub/linux/kernel/

Modifications

According to SliTaz's release notes, the kernel was patched to support LZMA (Lempel-Ziv-Markov chain-Algorithm) compression and display correction for the virtual console. Only the minimal parts of the kernel are available but modules can be added by the user through the packaging system. This was done to ensure compatibility with a wide range of computer while keeping the distribution lean. In version 3.0, additional drivers were added to the kernel in order to speed up boot speed.

Speculations

I believe that linux was chosen because of its high customizability, unparalleled stability through years of testing, and wide adoption by the community.

Being able to customize the kernel allows the developers to make it as lean and fast as possible while giving the end users the possibility to add new modules to fill their needs. In addition, linux is one of the most stable operating system because it has been tested for many years by a lot of different people. For the same reasons, a lot of documentation and help is available online which makes it much easier to fix potential problems. There is no doubt in my mind that using the linux kernel was the right choice to do in this situation.


glibc
SliTaz version : 2.10.1
Age : 2 years, 5 months and 27 days
Latest release : 2.14, June 1, 2011
Time between latest version and used version : 2 years and 15 days
Source : http://ftp.gnu.org/gnu/libc/

Speculations

There isn't much to say here; Pretty much every linux distribution contains this library so it isn't a surprise that the SliTaz team decided to include it. It is one of the most complete c libraries out there.


X.Org
SliTaz version : 1.5.2
Age : 3 years, 1month and 3 days
Latest version : 1.11.2, nov 4 2011
Time between latest version and used version : 3 years and 25 days
Source : http://xorg.freedesktop.org/archive/individual/xserver/

Speculations

Xorg was introduced in SliTaz version 3.0 to replace Xvesa. The overall feeling that I got while researching both of them was that Xvesa is leaner than Xorg but very limited in several aspects, such as video playback, refresh rate control and GLX compatibility. My hypothesis is that the SliTaz development team wanted to increase compatibility with a higher number of setups and was ready to sacrifice on size and ressource allocation. It must be noted that Xvesa is still supported and that the only drawback to including Xorg is the increased size of the ISO. I definitely think that the advantages that this move adds far outweight the small bump in size of the operating system.


GTK+
SliTaz version : 2.16.5
Age : 2 years, 3 months and 26 days
Latest version : 3.2.2, sept 26, 2011
Time between latest version and used version : 2 years, 2 months and 8 days
Source : http://ftp.gnome.org/pub/GNOME/sources/gtk+/

Speculations

I think that GTK+ was chosen by the developers because it has much better potential than the competition for smaller applications. It doesn't need to pull in the whole GNOME framework and is the graphical backbone of most applications aimed at being lightweight, such as abiword, midori, GIMP and pidgin. Given SliTaz's goal to be very small, it makes sense for it to use an environment that doesn't have a big footprint.


Busybox
SliTaz version : 1.12
Age : 3 years, 2 months and 24 days
Latest version : 1.19.2, sept 12, 2011
Time between latest version and used version : 3 years and 23 days
Source : http://busybox.net/downloads/

Speculations

Busybox was undoubtedly chosen because of its design philosophy, which is to work with systems that are very limited in ressources. Again, this philosophy syncs perfectly well with SliTaz's goal to be as lean as possible.


Tazpkg
SliTaz version : 3.2.2
Age : 1 year, 7 months and 17 days
Latest version : 3.2.2, March 28, 2010
Time between latest version and used version : 0 days
Source : Tazpkg is part of SliTaz and cannot be downloaded as a standalone application

Speculations

It is hard to say why they'd want to write their own package manager given the relatively big amount of free ones out there. I assume that none of them could run on the barebone configuration that SliTaz provides considering that tazpkg is completely written in SHell script. It is also said to work well with busybox, ash shell and bash - another reason why they might have needed a custom package manager.


Midori
SliTaz version : 0.2.4
Age : 1 year, 6 months and 11 days
Latest version : 0.4.2, nov 11, 2011
Time between latest version and used version : 1 year, 6 months and 8 days
Source : http://archive.xfce.org/src/apps/midori/

Speculations

Midori is designed to be lightweight and fast. It uses the GTK+ 2 interface and renders the webpages using webkit, the same engine used by safari and google chrome. All of these properties about the browser go hand in hand with SliTaz's philosophy of being as small as possible without sacrificing on usability.


Pidgin
SliTaz version : 2.6.5
Age : 1 year, 3 months and 13 days
Latest version : 2.10.0
Time between latest version and used version : 1 year and 12 days
Source : http://sourceforge.net/projects/pidgin/files/Pidgin/

Speculations

For SliTaz to be a proper workstation, it needs to have the necessary applications to communicate through the internet. This is where Pidgin comes in handy; It's a multi-platform messenger which understand almost all the protocols used by popular messengers, such as msn messenger, google talk and facebook chat. It uses the GTK+ interface and the fact that it supports all these protocols means that the OS doesn't need to include all the other applications.


Sqlite
SliTaz version : 3.6.16
Age : 2 years, 4 months and 17 days
Latest version : 3.7.9, November 1 2011
Time between latest version and used version : 2 years, 4 months and 4 days
Source : http://www.sqlite.org/download.html

Speculations

SliTaz would be a good candidate to build a webserver on an old machine which could be used, for example, by a web developer to test his work or by a small company to run its intranet application. Sqlite can be used for purposes that don't require a high volume of requests; Since SliTaz is designed to run on old, slow computers, it won't be used for high traffic websites and therefore won't need anything more complex than sqlite. It is important to note that sqlite has been shown to work flawlessly with websites getting up to 1 million requests per day.


Lua
SliTaz version : 5.1.4
Age : 3 years, 2 months and 27 days
Latest version : 5.1.4, August 18 2008
Time between latest version and used version : 0 days
Source : http://www.lua.org/ftp/

Speculations

Lua is a lightweight (150 kb) scripting language designed to be very extensible, which means that it can be used for pretty much any purpose. Given SliTaz's goal to be very slim, it makes sense to include a scripting language that can be customized by the user depending on its needs. The alternative would be to include many languages that fill different roles, but that wouldn't be very practical.

Initialization

Here is a list of notable processes, in order of execution, that run in SliTaz right after a full boot.

udev
Xorg
dbus
hald
SliM


"udev" is the first process to be executed because it's the device manager and is responsible for hotplug events (hardware recognition); without it, the applications wouldn't have access to the hardware. The kernel then mounts the filesystems specified in /etc/fstab and cleans up the system by removing temporary and unneeded files. "Xorg", an open source version of the "X" window manager, is then started, which means that it isn't dependent on dbus or hald. I thought that it was odd so I checked the documentation, and indeed there are options to use these 2 processes but they're not enabled in SliTaz. "dbus", a system used for inter-process communications, is the next process to fire up. HAL is executed right after as it is dependent on "dbus". "HAL" is a hardware abstraction layer which is used by applications to communicate with the hardware; it is now deprecated and its functionalities are merged into "udev". Because it's dependent on every prior processes, the last process in the boot sequence is a login manager called SliM.

SliTaz does not use the usual init structure. Every script that must be run is specified in the $RUN_SCRIPTS variables and all deamons in the $RUN_DAEMONS variable. The init file /etc/init.d/rcS, called by inittab , then uses the config file /etc/rcS to run the processes specified in the variables. This means that SliTaz does not use the runlevels to order the execution of the processes; instead, the boot order is specified in the script itself. The purpose of this is to centralize the main system boot initialization in one config file. Everything about the process is explained in /etc/init.d/README.

References

http://hg.slitaz.org/tazpkg/raw-file/tip/doc/tazpkg.en.html
http://en.wikipedia.org/wiki/Cpio
http://www.slitaz.org/en/doc/releases/2.0/relnotes.en.html#kernel
http://en.wikipedia.org/wiki/Linux_kernel
http://forum.tinycorelinux.net/index.php?topic=6990.0
http://www.murga-linux.com/puppy/viewtopic.php?p=227048
http://en.wikipedia.org/wiki/BusyBox
http://celettu.wordpress.com/2009/06/08/qt-vs-gtk-conclusion/
http://en.wikipedia.org/wiki/Pidgin_(software)
http://en.wikipedia.org/wiki/SQLite
http://www.sqlite.org/whentouse.html
http://en.wikipedia.org/wiki/Lua_(programming_language)
http://en.wikipedia.org/wiki/Udev
http://en.wikipedia.org/wiki/X_Window_System
http://en.wikipedia.org/wiki/HAL_(software)
http://en.wikipedia.org/wiki/D-Bus