COMP 3000 2011 Report: SliTaz: Difference between revisions
Bobbybobbets (talk | contribs) |
Bobbybobbets (talk | contribs) |
||
Line 191: | Line 191: | ||
''Speculations'' | ''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. | 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'''<br /> | '''Lua'''<br /> |
Revision as of 00:13, 15 November 2011
Part 1
Background
The linux distribution that I have chosen is called 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 OS available today. SliTaz can be obtained here.
Being just about 30 megabytes and taking approximately 16 megabytes of ram, this distribution is perfect for use on older computers. As little as 16 megabytes 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 megabytes of ram and use the "loram-slitaz" LiveCD version, or get 192 megabytes 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.
Installation/Startup
Running SliTaz for the first time
The download file is of type ISO and I chose to burn it on a CD, but it can also be copied on a usb. A file that enables booting from the floppy drive is also available for situations when a cd-rom is not available. This method makes it possible to boot SliTaz from a usb drive, a hard drive, and even a network. Once that is done, you must reboot your computer and boot from the cd. From there, SliTaz initializes itself and starts the boot sequence. It asks you in which language you would like the OS to run as well as the type of keyboard that is preferred. The whole boot sequence is very fast and takes 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.
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
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 inconvenient 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.
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/v3.0/linux-3.1.1.tar.bz2
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/glibc-2.14.tar.gz
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/xorg-server-1.11.2.tar.gz
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+/3.2/gtk+-3.2.0.tar.bz2
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/busybox-1.12.0.tar.bz2
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/0.4/midori-0.4.2.tar.bz2#!sha1!fac3dc4bb8935f35b38ffc4d6c7a5daba9dc52f1
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/2.10.0/pidgin-2.10.0.tar.bz2/download
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/sqlite-src-3070900.zip
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/lua-5.1.4.tar.gz
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 snippet of the boot proccess after init has been called.
Processing /etc/init.d/rcS...
Mounting proc filesystem...
Searching for early boot options...
Starting udev daemon...
Udevadm requesting events from the Kernel...
Udevadm waiting for the event queue to finish...
Remounting rootfs read/write...
Mounting filesystems in fstab...
Cleaning up the system...
Setting up tmp X11 and ICE unix dir...
Creating symlink : /dev/cdrom...
Adding /dev/cdrom to fstab...
Chmoding cdrom device...
Mounting /proc/bus/usb filesystem...
Setting default timezone to UTC...
Setting default mixer volumes...
Configuring Xorg...
patching file /etc/X11/xorg.conf
Starting local startup commands...
Starting all daemons specified in /etc/rcS.conf...
Starting message bus daemon: DBUS...
Starting Hardware Abstraction Layer: HAL...
Starting slim login manager: Slim...
In order of execution, here is a list of notable software that are started during the boot process :
1. udev - Device manager for the linux kernel residing in the user space. Usually manages devices that are mounted/unmounted in /dev.
2. X.org - Open source implementation of the X window system. Hardware abstraction layer for the creation of graphical interfaces with access to the networking protocol.
3. HAL- Application used to abstract the hardware interfaces of a particular computer setup.
4. D-Bus - Open source inter-process communication system.
5. SliM - Light login manager for X11 based systems.
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