COMP 3000 2011 Report: Swift Linux: Difference between revisions

From Soma-notes
Mabadeer (talk | contribs)
Mabadeer (talk | contribs)
 
(70 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Distribution Report Part I: Swift Linux: User Experience ==
== Part I: User Experience ==


The following report provides background information on Swift Linux, installation/startup manual, basic operations on key programs that come with it and user evaluation.
The following report provides background information on Swift Linux, installation/startup manual, basic operations on key programs that come with it and user evaluation.
Line 5: Line 5:
===Background===
===Background===


Swift Linux is a light linux distribution based on MEPIS which is based on Debian and antiX. It is originated in the USA and runs on an i486 and i686 architecture. Swift is designed specifically to run on older computers as it only requires at least 128 MB of RAM and a Pentium 2 or a newer processor.
Swift Linux is a light linux distribution developed by Jason Hsu in mid 2010<ref>[http://jhsu802701.users.sourceforge.net Jason Hsu: Developer Web Hosting - Open Source Software, 2010, Last accessed: December 19, 2011]</ref>. Swift Linux was needed because it is a light-weight linux distribution that provides full compatibility with Debian-based packages - unlike other light-weight distributions such as Puppy or Mint Linux.<ref>[http://forum.tinycorelinux.net/index.php?topic=8549.0 Jason Hsu, Tiny Core Linux Forum, January 2011, Last accessed: December 19, 2011]</ref>. It is based on MEPIS (Managerial Education and Personal Information Systems) which is based on Debian and antiX. It is originated in the USA and runs on an i486 and i686 architecture. Swift is designed specifically to run on older computers as it only requires at least 128 MB of RAM and a Pentium 2 or a newer processor.
Swift Linux targets Windows XP users or Linux users that have older machines. It contains BleachBit which is a memory management software to clean unnecessary files. It offers compatibility with Debian software packages but at the same time runs extremely fast due to its low hardware requirements. Its speed is described on its official website that if a machine “is fast enough for Windows 98 ... it’s fast enough for Swift Linux”<sup>1</sup>.
 
Swift Linux targets Windows XP users or Linux users that have older machines. It contains BleachBit which is a memory management software to clean unnecessary files. It offers compatibility with Debian software packages but at the same time runs extremely fast due to its low hardware requirements. Its speed is described on its official website that if a machine “is fast enough for Windows 98 ... it’s fast enough for Swift Linux”.
Swift Linux comes with 3 different editions: Diet Swift Linux, Swift Linux and Special Editions. It is available for free on its [http://www.swiftlinux.org official website], it’s also available on [http://www.LinuxCD.org LinuxCD] and [http://www.OSDisc.com OSDisc]. Its size is approximately 600 MB.
Swift Linux comes with 3 different editions: Diet Swift Linux, Swift Linux and Special Editions. It is available for free on its [http://www.swiftlinux.org official website], it’s also available on [http://www.LinuxCD.org LinuxCD] and [http://www.OSDisc.com OSDisc]. Its size is approximately 600 MB.


===Installation / Startup===
===Installation / Startup===
Swift can be installed using a live CD/USB. It uses an antiX installer.


Installation was tested using two different virtualization programs. VMWare Player on Windows and Parallel Desktops on Mac OS. No problems encountered in either one. Below is a brief description of parallel desktops swift linux installation:
Installation was tested using two different virtualization programs. VMWare Player on Windows and Parallel Desktops on Mac OS. No problems encountered in either one. Below is a brief description of parallel desktops swift linux installation:
Line 34: Line 37:


===Basic Operation===
===Basic Operation===
Swift Linux uses IceWM as its window manager. According the IceWM's official website, IceWM is known for its simplicity and speed. Thus it fits perfectly with Swift's purpose. It also supports multiple keyboard shortcuts that windows users are used to (for example, alt+tab) making the transition very easy to Swift Linux.
Swift Linux uses IceWM as its window manager. According the IceWM's official website, IceWM is known for its simplicity and speed.<ref>[http://www.icewm.org/ Marko Maček, IceWM Official Website, 2010, Last accessed: December 19, 2011]</ref> Thus it fits perfectly with Swift's purpose. It also supports multiple keyboard shortcuts that windows users are used to (for example, alt+tab) making the transition very easy to Swift Linux.


It was noted that on the Minnesota Swift Linux installed, the applications run after one click. The desktop started with 18 desktop icons: Files, Help, Control, Terminal, Search, Apps, Synaptic, Browser, Sylpheed, Video, Music, Leafpad, Geany, AbiWord, Gnumeric, OO-Write, OO-Calc and OO-Impress.
It was noted that on the Minnesota Swift Linux installed, the applications run after one click. The desktop started with 18 desktop icons: Files, Help, Control, Terminal, Search, Apps, Synaptic, Browser, Sylpheed, Video, Music, Leafpad, Geany, AbiWord, Gnumeric, OO-Write, OO-Calc and OO-Impress.
Line 84: Line 87:


<h5 id="compare">Swift Linux vs. the competition</h5>
<h5 id="compare">Swift Linux vs. the competition</h5>
Comparing with other distributions of Linux, Swift distribution has smaller size and runs faster. The below table shows the difference among several famous Linux distributions<sup>[http://www.swiftlinux.org/about#compare 1]:
Comparing with other distributions of Linux, Swift distribution has smaller size and runs faster. The below table shows the difference among several famous Linux distributions<ref>[http://www.swiftlinux.org/ Jason Hsu, Introduction in Swift Linux Official Website, 2011, Last accessed: December 19, 2011]</ref>:
<!--break-->
<!--break-->
<table border="2"><!--break--><tr><td><b>Distro</b></td>
<table border="2"><!--break--><tr><td><b>Distro</b></td>
Line 110: Line 113:
</tr></table>
</tr></table>
The above table is an exact copy of Swift Linux's [http://www.swiftlinux.org/about#compare about] page.
The above table is an exact copy of Swift Linux's [http://www.swiftlinux.org/about#compare about] page.
<hr/>


Overall Swift Linux ran exactly as described. It is a very light-weighted version of Linux that is supported on older hardware. With a minimum requirement of only Pentium 2 and only 128 MB of RAM, Swift ran extremely fast on modern computers.


Overall Swift Linux ran exactly as described. It is a very light-weighted version of Linux that is supported on older hardware. With a minimum requirement of only Pentium 2 and only 128 MB of RAM, Swift ran extremely fast on modern computers. There are a few issues that were encountered that we explore below:
Based on use cases conducted on the system, the following issues were spotted:


# Iceape gave an error every time we booted it. The error says that it is "not responding" although it was running perfectly fine.
# Iceape gave an error every time we booted it. The error says that it is "not responding" although it was running perfectly fine.
Line 136: Line 139:
Overall, Swift has reached its goal of simplicity and fast speed. It runs very smoothly on older computers.
Overall, Swift has reached its goal of simplicity and fast speed. It runs very smoothly on older computers.


===References===
== Part II: Software Package==
# [http://www.swiftlinux.org/about Introduction in Swift Linux Official Website]
# [http://dl.acm.org/citation.cfm?id=1080084 Reviews: Ubuntu Linux 5.04]
# [http://www.icewm.org/ IceWM Official Website]
 
== Distribution Report Part II: Swift Linux: Software Package==


===Software Packaging===
===Software Packaging===
Line 150: Line 147:
====Packaging Format====
====Packaging Format====


Since Swift Linux is based off Debian, and it is intended to be lightweighted, it just used DPKG with .deb format and its front-end APT (Advanced Packaging Tool). DPKG installed is the most recent so far (v 1.16.0.2) and the APT version used is 0.8.14.1. The latest "stable" release of dpkg is 1.15.7.2 which makes the version installed on Swift up-to-date but not stable and prone to errors.
Since Swift Linux is based off Debian, and it is intended to be lightweighted, it just used DPKG with .deb format and its front-end APT (Advanced Packaging Tool). DPKG installed is the most recent so far (v 1.16.0.2) and the APT version used is 0.8.14.1. The latest stable release of dpkg is 1.15.7.2 which makes the version installed on Swift up-to-date but not stable and prone to errors.


====Listing installed packages====
====Listing installed packages====


The command dpkg -l will give all installed packages in a nice formatted table includes that Name, Version and a small Description of each package (See Figure)
The command <code>dpkg -l</code> will give all installed packages in a nice formatted table includes that Name, Version and a small Description of each package (See Figure)
[[File:dpkg-l.png|thumb|Listing all packages using dpkg-l]]
[[File:dpkg-l.png|thumb|Listing all packages using dpkg-l]]


Line 161: Line 158:
There are multiple ways you can install a package on Swift Linux. First we will discover different options to install using dpkg and then we'll list ways to install packages using APT.
There are multiple ways you can install a package on Swift Linux. First we will discover different options to install using dpkg and then we'll list ways to install packages using APT.


Using dpkg the following commands are available on Swift Linux<ref>[http://www.cyberciti.biz/howto/question/linux/dpkg-cheat-sheet.php DPKG Commands for Debian-based distributions]</ref>:  
Using dpkg the following commands are available on Swift Linux<ref>[http://www.cyberciti.biz/howto/question/linux/dpkg-cheat-sheet.php Vivek Gite, DPKG Commands for Debian-based distributions, 2005, Last accessed: December 19, 2011]</ref>:  
<code>dpkg -i {.deb package}</code> which allows you to install a .deb package or upgrade an existing one. There's also <code>dpkg -R {Directory-name}</code> which installs all packages in a specified directory name. Using APT there are also multiple ways for installing a package<ref>[http://www.cyberciti.biz/howto/question/linux/apt-get-cheat-sheet.php APT Commands for Debian-based distributions]</ref>: <code>apt-get install {package}</code> allows you to install a <code>.deb</code> package or upgrade an existing one and <code>apt-get dist-upgrade</code> allows you to upgrade the whole distro to the newest version available.
<code>dpkg -i {.deb package}</code> which allows you to install a .deb package or upgrade an existing one. There's also <code>dpkg -R {Directory-name}</code> which installs all packages in a specified directory name. Using APT there are also multiple ways for installing a package<ref>[http://www.cyberciti.biz/howto/question/linux/apt-get-cheat-sheet.php Vivek Gite, APT Commands for Debian-based distributions, 2005, Last accessed: December 19, 2011]</ref>: <code>apt-get install {package}</code> allows you to install a <code>.deb</code> package or upgrade an existing one and <code>apt-get dist-upgrade</code> allows you to upgrade the whole distro to the newest version available.


====Package Removal====
====Package Removal====
Line 170: Line 167:
====Software Packaging Evaluation====
====Software Packaging Evaluation====


Swift Linux comes with 213 software packages installed on it. This is pretty impressive given the size of the distribution and the fact that it has to run on slower machines.
Swift Linux comes with 213 software packages installed on it. This is pretty impressive given the size of the distribution and the fact that it has to run on slower machines. The latest release for Swift was in August 2011. However, many packages are more than a year old as illustrated below. There was not enough documentation for Swift explaining if this was done intentionally. My own speculation that it was since Swift is designed to work on older machines so it just maintains what is necessary to keep the system running with no fancy additions that will not be supported by older machines any way.


===Major package versions===
===Major package versions===


To report on the version numbers and upstream source for some of the major software packages included in Swift Linux as part of the standard install, we can find package resource, and download the associate version online, and use "diff" command to compare then:
To report on the version numbers and upstream source for some of the major software packages included in Swift Linux as part of the standard install, we can find package resource, and download the associate version online, and use <code>diff</code> command to compare them.
 
Briefly, all the packages investigated were not the most stable version except for GTK+, APT and Shell. The most significant commonality among the packages included is that they are all light-weighted. Below we explore in details 10 of those packages.


* '''Linux Kernel'''
* '''Linux Kernel'''


The Linux Kernel version installed is 2.6.36-1-mepis.smp released October 20, 2010<ref>[http://www.linux-mag.com/id/7901/2/ Linux Magazine]</ref> which is behind the current stable version (3.1.1 released November 11, 2011). This specific Linux kernel version was developed by MEPIS Linux Community. The Linux kernel used is an older version not supporting the complicated changes added to later versions. Swift's most recent version was released in August 2011 - almost a year after the kernel version the authors are using was release. This to me indicates that there is no intention that the authors will move to newly developed kernel. This makes sense given the purpose of this specific distribution which is to run on older machines.
The Linux Kernel version installed is 2.6.36-1-mepis.smp released October 20, 2010<ref>[http://www.linux-mag.com/id/7901/2/ Jeffrey B. Layton, Kernels 2.6.35 and 2.6.36: Storage Updates, December 12, 2010, Linux Magazine]</ref> which is behind the current stable version (3.1.1 released November 11, 2011). This specific Linux kernel version was developed by MEPIS Linux Community. The Linux kernel used is an older version not supporting the complicated changes added to later versions. Swift's most recent version was released in August 2011 - almost a year after the kernel version the authors are using was release. This to me indicates that there is no intention that the authors will move to newly developed kernel. This makes sense given the purpose of this specific distribution which is to run on older machines. Upstream URL can be obtained by clicking [http://www.mepis.org/ here].


* '''libc'''
* '''libc'''


The libc version installed on Swift is 2.11.2-11 developed January 31, 2011<ref>[http://packages.debian.org/changelogs/pool/main/e/eglibc/current/changelog LibC Changelog]</ref> where the lastest stable version is 2.11.2-10 making it more up-to-date however less stable. The update on this specific version was very minor as it just removed the stub marks for at* syscalls because it was not needed since it is only needed for FreeBSD 7.x kernels which is not supported by libc.
The libc version installed on Swift is 2.11.2-11 developed January 31, 2011<ref>[http://packages.debian.org/changelogs/pool/main/e/eglibc/current/changelog Aurelien Jarno, Debian Changelog eglibc (2.13-21), September 13, 2011, Last accessed: December 19, 2011]</ref> where the lastest stable version is 2.11.2-10 making it more up-to-date however less stable. The update on this specific version was very minor as it just removed the stub marks for at* syscalls because it was not needed since it is only needed for FreeBSD 7.x kernels which is not supported by libc. [http://www.eglibc.org/ Here] is the upstream source URL.


* '''X.org'''
* '''X.org'''


Swift Linux version uses version 1:7.6+6 developed on April 2, 2011. The most stable version is 1:7.5+8. The Debian Package Tracking system outlines the major changes that was made to the version installed on Swift<ref>[http://packages.debian.org/changelogs/pool/main/x/xorg/current/changelog XOrg Changelog]</ref>.
Swift Linux version uses version 1:7.6+6 developed on April 2, 2011. The most stable version is 1:7.5+8. The Debian Package Tracking system outlines the major changes that was made to the version installed on Swift<ref>[http://packages.debian.org/changelogs/pool/main/x/xorg/current/changelog Cyril Brulebois, Debian Changelog xorg (1:7.6+9), September 24, 2011, Last accessed: December 19, 2011]</ref>. [http://www.x.org/ Here] is the upstream source URL.


* '''GTK+ & QT'''
* '''GTK+ & QT'''


GTK+ version installed is 2.1.0-2 released on March 14, 2011 which is in fact the most up-to-date stable version.
GTK+ version installed is 2.1.0-2 released on March 14, 2011 which is in fact the most up-to-date stable version. [http://git.gnome.org/browse/gtk+ Here] is the upstream source URL.
Qt's installed version is 4.7.2-3 released on March 1, 2011 while the most up-to-date version is 4.7.4 released on September 1, 2011.  
Qt's installed version is 4.7.2-3 released on March 1, 2011 while the most up-to-date version is 4.7.4 released on September 1, 2011. [http://www.qtsoftware.com/ Here] is the upstream source.


* '''Shell'''
* '''Shell'''


Swift Linux comes installed with Bash version 4.1-3 which is the most up-to-date stable version released in April 2010.
Swift Linux comes installed with Bash version 4.1-3 which is the most up-to-date stable version released in April 2010. For the upstream source click [http://www.gnu.org/software/bash/bash here].


* '''BusyBox'''
* '''BusyBox'''


[[File:busybox.jpg|thumb|BusyBox Details]]
[[File:busybox.jpg|thumb|BusyBox Details]]
SWIFT Linux distribution has installed BusyBox v1.17.1 (Debian 1:1.17.1-10), which is released in July 24, 2010. Therefore, it is not quite old one, the latest version of BusyBox (v1.19.3)is released in October 30, 2011. When user types '''''BusyBox''''' , the details in the distribution of BusyBox should be popped up. From the output, we can find many functions defined in v1.17.1 have been removed by distribution authors. BusyBox unified common UNIX utilities. It provides the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.<ref>[http://busybox.net/about.html About BusyBox]</ref> As we know, SWIFT is a light Linux distribution, and its requirements and functionality are very limited, distribution authors may delete some needless functions based on the above reasons.
Swift Linux distribution has installed BusyBox v1.17.1 (Debian 1:1.17.1-10), which is released in July 24, 2010. The latest version of BusyBox (v1.19.3)is released in October 30, 2011. When user types '''''BusyBox''''' , the details in the distribution of BusyBox should be popped up. From the output, we can find many functions defined in v1.17.1 have been removed by distribution authors. BusyBox unified common UNIX utilities. It provides the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.<ref>[http://busybox.net/about.html Denys Vlasenko, BusyBox: The Swiss Army Knife of Embedded Linux, July 24, 2010, Last accessed: December 19, 2011]</ref> As we know, SWIFT is a light Linux distribution, and its requirements and functionality are very limited, distribution authors may delete some needless functions based on the above reasons.


* '''dpkg & apt'''
* '''dpkg & apt'''


The distribution in my laptop installed dpkg, whose version is v1.16.0.2, However, the latest stable version of dpkg has updated to v1.15.7.2, which is released in May, 2010. and apt(advanced front-end for dpkg) is v0.8.14.1, the latest one. This distribution authors did not change much on dpkg and apt, cause it is core package management tool, no needs to do any updates. The dpkg itself is a low level tool, however, the APT are used to fetch packages from remote locations or deal with complex package relations, which are more commonly used than dpkg on its own, because they have a more sophisticated way of dealing with package relationships and a friendlier interface, these should be the reasons why distribution authors choose dpkg and apt to manage packages in SWIFT Linux.<ref>[http://en.wikipedia.org/wiki/Dpkg DPKG WikiPedia Page]</ref>
The distribution comes with dpkg, v1.16.0.2. The latest stable version of dpkg is v1.15.7.2, which was released in May, 2010. APT (advanced front-end for dpkg) is v0.8.14.1, the latest one. Distribution authors did not change much on dpkg and apt, because it is core package management tool. The dpkg itself is a low level tool, however, the APT is used to fetch packages from remote locations or deal with complex package relations, which are more commonly used than dpkg on its own, because they have a more sophisticated way of dealing with package relationships and a friendlier interface.<ref>[http://en.wikipedia.org/wiki/Dpkg Wikipedia, dpkg - Wikipedia, the free encyclopedia, September 16, 2011, Last accessed: December 19, 2011]</ref>


* '''iceape-browser'''
* '''iceape-browser'''
Line 210: Line 209:
[[File:SWIFT-web-browser.jpeg|thumb|Iceape-browser v2.0.13-1]]
[[File:SWIFT-web-browser.jpeg|thumb|Iceape-browser v2.0.13-1]]


Iceape-browser v2.0.13-1 (2011 March) has been pre-installed in this SWIFT Linux distribution. The version v2.0.14-9 is released recently. There is no heavily needs to update iceape-browser to make it fit SWIFT Linux distribution. As internet browser and composer, iceape browser is distributed by the Debian project, it is based on [http://en.wikipedia.org/wiki/SeaMonkey SeaMonkey], however, it is not a stable and complex tool, and it lacks of development support within the Debian community. It is not commonly used by really big Linux distribution, but for a lightweight OS, it is good enough for SWIFT Linux. That is why authors choose iceape-browser in my opinion.
Iceape-browser v2.0.13-1 (2011 March) has been pre-installed in Swift. The version v2.0.14-9 was released recently. IceApe browser is distributed by the Debian project, it is based on [http://en.wikipedia.org/wiki/SeaMonkey SeaMonkey], however, it is not a stable and complex tool, and it lacks the development support within the Debian community. It is not commonly used by other major Linux distribution, but for a lightweight OS, it is good enough for Swift Linux thus the reason why it was chosen.


* '''sylpheed'''
* '''sylpheed'''


SWIFT Linux distribution chosen sylpheed v3.2.0~beta1-1 as its light weight e-mail client with GTK+, it is released in July 1st, 2011. And the latest development version is v3.2.0~beta-2 released in September 8th, 2011. So SWIFT Linux is taking the new version, Sylpheed is a free software distributed under the GNU GPL, and is designed for many platforms (Windows, Linux), so few changes needed to install Sylpheed to SWIFT Linux for distribution authors. Due to the Sylpheed is Lightweight operation and small, highly compatible, distribution authors chosen sylpheed for SWIFT Linux's standard install.
Swift Linux distribution chose sylpheed v3.2.0~beta1-1 as its light weight e-mail client with GTK+, it is released in July 1st, 2011. The latest development version is v3.2.0~beta-2 released in September 8th, 2011. So SWIFT Linux is taking the new version, Sylpheed is a free software distributed under the GNU GPL, and is designed for many platforms (Windows, Linux), so few changes needed to install Sylpheed to SWIFT Linux for distribution authors. Due to the Sylpheed is Lightweight operation and small, highly compatible, distribution authors chose sylpheed for SWIFT Linux's standard install.


* '''netbase'''
* '''netbase'''


Netbase is a basic TCP/IP networking system, the SWIFT distribution preinstall version:4.45. This version is released as stable version half a year ago, and the newest version 4.46 is released in one month ago. The netbase provides the necessar infrastructure for basic TCP/IP based networking.
Netbase is a basic TCP/IP networking system, Swift comes with v4.45. This version was released 6 months ago and the newest version 4.46 was released a month ago. The netbase provides the necessar infrastructure for basic TCP/IP based networking. Distribution authors removed some symlinks on upgrade, and change some commands as well. The netbase tool is also perfect choice for a lightweight OS like Swift and that is why it was included.


===Initialization===
===Initialization===


During SWIFT initialization, it will run the shell scripts: /etc/inittab as the start of the init process, and then the inittab will direct the boot process to /etc/init.d/rcS, rcS in SWIFT is to call all S** scripts in /etc/rcS.d in numberical order, you can get the list in SWIFT Linux by typing "cd /etc/rcS.d"<ref>[http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html Linux System Initialization]</ref>, the list is like:
Since Swift is based on Debian, the initialization process is similar to Debian OS. One main difference is that in Debian it adds kernel modules before the main boot process by running scripts under <code>/init</code> directory. There is no such scripts in Swift.


  S09module-init-tools      S15networking
First of all, BIOS is started as soon as the system is turned on to perform the basic initialization of the hardware, and then it hands control over to the boot loader, which loads Swift system kernel image <code>/boot/vmlinuz</code> and root filesystem image <code>/boot/initrd.img</code>.
S09mtab.sh                S16mountnfs.sh
 
After that, the main boot process is started by the <code>init</code> script <code>/sbin/init</code>. Swift goes into runlevel N (none) to initialize the system by scripts <code>/etc/inittab</code>, then the <code>inittab</code> script directs the boot process to <code>/etc/init.d/rcS</code>. rcS in Swift is to call all S** scripts in <code>/etc/rcS.d</code> in numerical order, The list in Swift is obtained by typing <code>cd /etc/rcS.d</code><ref>[http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html Greg Ippolito, Linux Init Process/PC Boot Procedure, 2009, Last accessed: December 19, 2011]</ref>. The output is as follows:
 
                      S09module-init-tools      S15networking
                      S09mtab.sh                S16mountnfs.sh
  S01mountkernfs.sh    S10checkfs.sh            S17mountnfs-bootclean.sh
  S01mountkernfs.sh    S10checkfs.sh            S17mountnfs-bootclean.sh
  S02udev              S11ifupdown              S18kbd
  S02udev              S11ifupdown              S18kbd
Line 241: Line 244:
  S09ifupdown-clean    S15antiX.sh
  S09ifupdown-clean    S15antiX.sh


As the above showed, rcS finished the basic initialization, let us point out some major programs:
These S** scripts are there for system initialization. For example, <code>S01mountkernfs.sh</code> mounts kernel filesystems in /proc and /sys, etc. Once all S** scripts in <code>/ect/rcS.d</code> have been executed, Swift executes the S and K scripts after changing the runlevel. Each runlevel uses a directory for its configuration as follows:
 
* Runlevel 0 is halt (/etc/rc0.d/);
* Runlevel 1 is single-user (/etc/rc1.d);
* Runlevels 2-5 are multi-user (/etc/rc2.d - /etc/rc5.d);
* Runlevel 6 is reboot (/etc/rc6.d).
 
All actual script files executed by the <code>init</code> system are located in the directory <code>/etc/init.d</code>. As a single-user mode, scripts <code>/etc/rc1.d</code>  starting with a "k" are executed in an alphabetical order to perform killing services, and script <code>/etc/rc1.d</code> names starting with an "S" are executed in alphabetical order to perform starting services. The single user will then be logged in to Swift.
 
Daemons started are, for example, xdm, gdm, kdm and wdm for device managers.


*'''S01mountkernfs''': this program runs firstly, it mount kernel virtual file systems.
As illustrated above, Swift linux initializes itself in a sequential order. The initialization process took less than 3 minutes.
*'''S04bootlogd''': it will start the system initialization logging, and hostname, keymap, etc. will run after.
*'''S09ifupdown-clean''': clean up old interface status info during boot.
*'''S14procps''': load kernel parameters that are specified in /etc/sysctl.conf
*'''S15networking''': raise network interface
*'''S19console-setup''': set console font and keymap
*'''S20svgalib-bin''': save or load SVGA text mode state
*'''S21stop-bootlogd-single''': stop boot log in single user mode


===References===
===References===
<references />
<references />

Latest revision as of 22:49, 19 December 2011

Part I: User Experience

The following report provides background information on Swift Linux, installation/startup manual, basic operations on key programs that come with it and user evaluation.

Background

Swift Linux is a light linux distribution developed by Jason Hsu in mid 2010<ref>Jason Hsu: Developer Web Hosting - Open Source Software, 2010, Last accessed: December 19, 2011</ref>. Swift Linux was needed because it is a light-weight linux distribution that provides full compatibility with Debian-based packages - unlike other light-weight distributions such as Puppy or Mint Linux.<ref>Jason Hsu, Tiny Core Linux Forum, January 2011, Last accessed: December 19, 2011</ref>. It is based on MEPIS (Managerial Education and Personal Information Systems) which is based on Debian and antiX. It is originated in the USA and runs on an i486 and i686 architecture. Swift is designed specifically to run on older computers as it only requires at least 128 MB of RAM and a Pentium 2 or a newer processor.

Swift Linux targets Windows XP users or Linux users that have older machines. It contains BleachBit which is a memory management software to clean unnecessary files. It offers compatibility with Debian software packages but at the same time runs extremely fast due to its low hardware requirements. Its speed is described on its official website that if a machine “is fast enough for Windows 98 ... it’s fast enough for Swift Linux”. Swift Linux comes with 3 different editions: Diet Swift Linux, Swift Linux and Special Editions. It is available for free on its official website, it’s also available on LinuxCD and OSDisc. Its size is approximately 600 MB.

Installation / Startup

Swift can be installed using a live CD/USB. It uses an antiX installer.

Installation was tested using two different virtualization programs. VMWare Player on Windows and Parallel Desktops on Mac OS. No problems encountered in either one. Below is a brief description of parallel desktops swift linux installation:

  • Open parallel desktops, click the "+" button to create new virtual OS.
  • Click the drop-down menu, and choose an image file. Then choose more Linux, and click other Linuxs , start it.
  • Your installation will start soon, and about one minute later, you will be logged in the Swift Linux, screenshot provided on the right hand side:
Swift installation
Boot options provided at startup
Main desktop screen after startup

The installation process went very well, no errors whatsoever.

Swift Linux allows you to pick from different boot options as illustrated in the screenshot on the right hand side.

This approach could help you save time and login to the correct mode you want, after this, you will see the interface of Swift Linux in particular mode.

Installation took approximately 5 minutes which proves that it perfectly serves its intended purpose which is to work smoothly on older hardware. As soon as OS started up, a white screen was displayed with all the system specifications along with a task manager that displayed CPU usage, kernel version, Time and Date, RAM usage, Swap usage and battery in case no AC adapters were connected.

Swift Linux started with 4 “Workspaces” which resembles the multiple desktops feature on the newest Mac OS X.

The “taskbar” starts with shortcuts to the following: Show desktop, Home Folder, Terminal, Browser, Control Center and Quit followed by the workspaces running which is set to 4 workspaces by default. It was noted that the “start menu” has a Debian logo on it.

Basic Operation

Swift Linux uses IceWM as its window manager. According the IceWM's official website, IceWM is known for its simplicity and speed.<ref>Marko Maček, IceWM Official Website, 2010, Last accessed: December 19, 2011</ref> Thus it fits perfectly with Swift's purpose. It also supports multiple keyboard shortcuts that windows users are used to (for example, alt+tab) making the transition very easy to Swift Linux.

It was noted that on the Minnesota Swift Linux installed, the applications run after one click. The desktop started with 18 desktop icons: Files, Help, Control, Terminal, Search, Apps, Synaptic, Browser, Sylpheed, Video, Music, Leafpad, Geany, AbiWord, Gnumeric, OO-Write, OO-Calc and OO-Impress.

What is common between all these applications is they are all very light-weighted. For example, Sylpheed is a light-weighted mail client, Leafpad, a very simple text editor, Geany, a light-weight integrated development environment package.

This version comes with OpenOffice. The only Swift version that does not come with OpenOffice is the Swift Diet version. Below we explore basic operations for the following applications: browser, compiler, office package, media player, swift control center and BleachBit.

Browser - Iceape:

It was noted that every time we started Swift Linux’s IceApe browser it gives a “not responding” error even though the browser is working fine. Also upon exit, it asks if you’d like to clear all the browsing data and it seems that there is no way of disabling this feature. Other than that Iceape never crashed during testing and it was also very fast.

Iceape startup error

Geany - Compiler:

A simple hello.c program that was used in Lab 2 was tested to compile on Swift. It was noted as well that it is a lot faster than when I tried it on Ubuntu on the second lab. Geany is very easy to use and very user friendly. Compilation errors are laid out very clearly in the bottom.

Text Editor:

Swift Linux comes with two text-editing packages, it has OpenOffice which contains OO-Write, OO-Impress and OO-Calc. It also has its own AbiWord (text editor) and Gnumeric (spreadsheet). A simple test documents were produced on both AbiWord and Gnumeric. No problems whatsoever encountered. Gnumeric operates exactly as Microsoft Excel with the same formula packages but runs at a faster speed. Leafpad is also a text editor available which is equivalent to Notepad on Windows or TextEdit on Mac OS.

Music

Swift Linux comes installed with a Music software that provides the very basic features of a media player. It allows you to add a playlist of songs and it also has a music equalizer.

Swift Music Program

Swift Control Center

Swift Control Center

Control Center is Swift's equivalent to Windows' control panel or Mac OS's System Preferences. It has all the controls that you need to customize the system. Control Center starts with 6 tabs that are explored below:

  1. Desktop: Allows you to choose a wallpaper, change themes, edit system monitor, edit IceWM settings, change cursor them. Edit system monitor and edit IceWM settings open up a Geany .c code that allows you edit the programming of these two options.
  2. System: Allows you to manage packages, manage users, configure system, edit configuration files, choose startup services and set date and time. Each option of these asks you to enter your administrator username and password.
  3. Network: Allows you to edit network interfaces (ceni command), wireless settings (rutilt command), configure GPRS/UMTS connection, configure dial-up connection, connect wirelessly (wicd command) and manage firewall settings.
  4. Session: Allows you to change keyboard layout, edit login options, change slim background, set auto-login and set screen resolution.
  5. Disks: Allows you to partition a drive, image a partition, mount connected devices, synchronize directories, backup your system and USB configuration.
  6. Hardware: Allows you to obtain system information, PC information, setup a printer, configure mouse, configure sound system and adjust audio mixer.

Swift Linux asks you for administration password to change a lot of options which provides a sense of security that no unauthorized change will happen.

BleachBit

A memory management tool that swift linux is perhaps popular with. It allows users to have full control over cleaning unused files that take up memory. It allows you to simply remove cache, temporary internet files ... etc. There's an option to preview files first before clearing them.

Swift BleachBit Memory Management Software

Usage Evaluation

Swift Linux vs. the competition

Comparing with other distributions of Linux, Swift distribution has smaller size and runs faster. The below table shows the difference among several famous Linux distributions<ref>Jason Hsu, Introduction in Swift Linux Official Website, 2011, Last accessed: December 19, 2011</ref>:

Distro Works well
with 256 MB
of RAM?
Over 20,000
software
packages?
User-friendly?
Swift Linux Yes Yes Yes
Ubuntu No Yes Yes
Linux Mint No Yes Yes
Puppy Linux Yes No Yes

The above table is an exact copy of Swift Linux's about page.

Overall Swift Linux ran exactly as described. It is a very light-weighted version of Linux that is supported on older hardware. With a minimum requirement of only Pentium 2 and only 128 MB of RAM, Swift ran extremely fast on modern computers.

Based on use cases conducted on the system, the following issues were spotted:

  1. Iceape gave an error every time we booted it. The error says that it is "not responding" although it was running perfectly fine.
  2. Iceape gives you the option to clear browsing data on startup and on exit by default. There is no apparent way of disabling that option which some users may find annoying.
  3. Bleachbit was advertised as it is one of the main attractions of Swift Linux, however there was no desktop shortcut for it on the desktop.
  4. Search application on Swift does not work that well. For example, as a test we tried to search for BleachBit but it could not find it.

Swift comes with different versions where each version has its own benefits. What is common among all these versions is the lightweight.

The fact that Swift Linux uses IceWM, transition for windows users is very smooth. It is very intuitive to find specific programs using the "start" menu - which has the Debian logo on it. Despite the problems reported above with the search application for example it was still very easy to locate different applications we were looking for.

Swift Linux's user-friendliness was not achieved in the control center. Editing login options for example or editing system monitor screen required programming knowledge. There is no user friendly version to edit those.

Desktop system monitor was very useful to track the system usage as you run new programs. Having it handy - right on your desktop wallpaper allows the user to be constantly aware of how much memory and CPU usage the system is currently using and make adjustments accordingly (quit unused programs for example).

Because this distribution is a light Linux operating system, it could not be that powerful like Ubuntu. Here are some disadvantages of it:

  • For some versions of Swift Linux, the original text size is too small, and it takes time to reset the size.
  • Many software such as OpenOffice only has some basic features. Swift may not provide enough features to implement a more complicated document.
  • It is developed many years ago, therefore, many fantastic and famous software could not be installed on Swift distribution.

Overall, Swift has reached its goal of simplicity and fast speed. It runs very smoothly on older computers.

Part II: Software Package

Software Packaging

This section covers how software is packaged for Swift Linux. It shows the packaging format, utilities, package installation and removal.

Packaging Format

Since Swift Linux is based off Debian, and it is intended to be lightweighted, it just used DPKG with .deb format and its front-end APT (Advanced Packaging Tool). DPKG installed is the most recent so far (v 1.16.0.2) and the APT version used is 0.8.14.1. The latest stable release of dpkg is 1.15.7.2 which makes the version installed on Swift up-to-date but not stable and prone to errors.

Listing installed packages

The command dpkg -l will give all installed packages in a nice formatted table includes that Name, Version and a small Description of each package (See Figure)

Listing all packages using dpkg-l

Package Installation

There are multiple ways you can install a package on Swift Linux. First we will discover different options to install using dpkg and then we'll list ways to install packages using APT.

Using dpkg the following commands are available on Swift Linux<ref>Vivek Gite, DPKG Commands for Debian-based distributions, 2005, Last accessed: December 19, 2011</ref>: dpkg -i {.deb package} which allows you to install a .deb package or upgrade an existing one. There's also dpkg -R {Directory-name} which installs all packages in a specified directory name. Using APT there are also multiple ways for installing a package<ref>Vivek Gite, APT Commands for Debian-based distributions, 2005, Last accessed: December 19, 2011</ref>: apt-get install {package} allows you to install a .deb package or upgrade an existing one and apt-get dist-upgrade allows you to upgrade the whole distro to the newest version available.

Package Removal

Using dpkg the following commands are available on Swift Linux: dpkg -r {package} which removes a package except for its configuration files. dpkg -P {package} Removes a package including its configuration files. Using APT the following commands removes a package: apt-get remove {package} which removes a package except its configuration files and apt-get --purge remove {package} which deletes everything including the configuration files.

Software Packaging Evaluation

Swift Linux comes with 213 software packages installed on it. This is pretty impressive given the size of the distribution and the fact that it has to run on slower machines. The latest release for Swift was in August 2011. However, many packages are more than a year old as illustrated below. There was not enough documentation for Swift explaining if this was done intentionally. My own speculation that it was since Swift is designed to work on older machines so it just maintains what is necessary to keep the system running with no fancy additions that will not be supported by older machines any way.

Major package versions

To report on the version numbers and upstream source for some of the major software packages included in Swift Linux as part of the standard install, we can find package resource, and download the associate version online, and use diff command to compare them.

Briefly, all the packages investigated were not the most stable version except for GTK+, APT and Shell. The most significant commonality among the packages included is that they are all light-weighted. Below we explore in details 10 of those packages.

  • Linux Kernel

The Linux Kernel version installed is 2.6.36-1-mepis.smp released October 20, 2010<ref>Jeffrey B. Layton, Kernels 2.6.35 and 2.6.36: Storage Updates, December 12, 2010, Linux Magazine</ref> which is behind the current stable version (3.1.1 released November 11, 2011). This specific Linux kernel version was developed by MEPIS Linux Community. The Linux kernel used is an older version not supporting the complicated changes added to later versions. Swift's most recent version was released in August 2011 - almost a year after the kernel version the authors are using was release. This to me indicates that there is no intention that the authors will move to newly developed kernel. This makes sense given the purpose of this specific distribution which is to run on older machines. Upstream URL can be obtained by clicking here.

  • libc

The libc version installed on Swift is 2.11.2-11 developed January 31, 2011<ref>Aurelien Jarno, Debian Changelog eglibc (2.13-21), September 13, 2011, Last accessed: December 19, 2011</ref> where the lastest stable version is 2.11.2-10 making it more up-to-date however less stable. The update on this specific version was very minor as it just removed the stub marks for at* syscalls because it was not needed since it is only needed for FreeBSD 7.x kernels which is not supported by libc. Here is the upstream source URL.

  • X.org

Swift Linux version uses version 1:7.6+6 developed on April 2, 2011. The most stable version is 1:7.5+8. The Debian Package Tracking system outlines the major changes that was made to the version installed on Swift<ref>Cyril Brulebois, Debian Changelog xorg (1:7.6+9), September 24, 2011, Last accessed: December 19, 2011</ref>. Here is the upstream source URL.

  • GTK+ & QT

GTK+ version installed is 2.1.0-2 released on March 14, 2011 which is in fact the most up-to-date stable version. Here is the upstream source URL. Qt's installed version is 4.7.2-3 released on March 1, 2011 while the most up-to-date version is 4.7.4 released on September 1, 2011. Here is the upstream source.

  • Shell

Swift Linux comes installed with Bash version 4.1-3 which is the most up-to-date stable version released in April 2010. For the upstream source click here.

  • BusyBox
BusyBox Details

Swift Linux distribution has installed BusyBox v1.17.1 (Debian 1:1.17.1-10), which is released in July 24, 2010. The latest version of BusyBox (v1.19.3)is released in October 30, 2011. When user types BusyBox , the details in the distribution of BusyBox should be popped up. From the output, we can find many functions defined in v1.17.1 have been removed by distribution authors. BusyBox unified common UNIX utilities. It provides the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.<ref>Denys Vlasenko, BusyBox: The Swiss Army Knife of Embedded Linux, July 24, 2010, Last accessed: December 19, 2011</ref> As we know, SWIFT is a light Linux distribution, and its requirements and functionality are very limited, distribution authors may delete some needless functions based on the above reasons.

  • dpkg & apt

The distribution comes with dpkg, v1.16.0.2. The latest stable version of dpkg is v1.15.7.2, which was released in May, 2010. APT (advanced front-end for dpkg) is v0.8.14.1, the latest one. Distribution authors did not change much on dpkg and apt, because it is core package management tool. The dpkg itself is a low level tool, however, the APT is used to fetch packages from remote locations or deal with complex package relations, which are more commonly used than dpkg on its own, because they have a more sophisticated way of dealing with package relationships and a friendlier interface.<ref>Wikipedia, dpkg - Wikipedia, the free encyclopedia, September 16, 2011, Last accessed: December 19, 2011</ref>

  • iceape-browser
Iceape-browser v2.0.13-1

Iceape-browser v2.0.13-1 (2011 March) has been pre-installed in Swift. The version v2.0.14-9 was released recently. IceApe browser is distributed by the Debian project, it is based on SeaMonkey, however, it is not a stable and complex tool, and it lacks the development support within the Debian community. It is not commonly used by other major Linux distribution, but for a lightweight OS, it is good enough for Swift Linux thus the reason why it was chosen.

  • sylpheed

Swift Linux distribution chose sylpheed v3.2.0~beta1-1 as its light weight e-mail client with GTK+, it is released in July 1st, 2011. The latest development version is v3.2.0~beta-2 released in September 8th, 2011. So SWIFT Linux is taking the new version, Sylpheed is a free software distributed under the GNU GPL, and is designed for many platforms (Windows, Linux), so few changes needed to install Sylpheed to SWIFT Linux for distribution authors. Due to the Sylpheed is Lightweight operation and small, highly compatible, distribution authors chose sylpheed for SWIFT Linux's standard install.

  • netbase

Netbase is a basic TCP/IP networking system, Swift comes with v4.45. This version was released 6 months ago and the newest version 4.46 was released a month ago. The netbase provides the necessar infrastructure for basic TCP/IP based networking. Distribution authors removed some symlinks on upgrade, and change some commands as well. The netbase tool is also perfect choice for a lightweight OS like Swift and that is why it was included.

Initialization

Since Swift is based on Debian, the initialization process is similar to Debian OS. One main difference is that in Debian it adds kernel modules before the main boot process by running scripts under /init directory. There is no such scripts in Swift.

First of all, BIOS is started as soon as the system is turned on to perform the basic initialization of the hardware, and then it hands control over to the boot loader, which loads Swift system kernel image /boot/vmlinuz and root filesystem image /boot/initrd.img.

After that, the main boot process is started by the init script /sbin/init. Swift goes into runlevel N (none) to initialize the system by scripts /etc/inittab, then the inittab script directs the boot process to /etc/init.d/rcS. rcS in Swift is to call all S** scripts in /etc/rcS.d in numerical order, The list in Swift is obtained by typing cd /etc/rcS.d<ref>Greg Ippolito, Linux Init Process/PC Boot Procedure, 2009, Last accessed: December 19, 2011</ref>. The output is as follows:

                     S09module-init-tools      S15networking
                     S09mtab.sh                S16mountnfs.sh
S01mountkernfs.sh    S10checkfs.sh             S17mountnfs-bootclean.sh
S02udev              S11ifupdown               S18kbd
S03antiX-l10n        S11mountall.sh            S19console-setup
S03mountdevsubfs.sh  S11planb_init.sh          S20alsa-utils
S04bootlogd          S12mountall-bootclean.sh  S20bootmisc.sh
S05keymap.sh         S13mountoverflowtmp       S20dns-clean
S06keyboard-setup    S14pcmciautils            S20eeepc-acpi-scripts
S07hdparm            S14pppd-dns               S20fuse
S07hostname.sh       S14procps                 S20screen-cleanup
S07hwclockfirst.sh   S14udev-mtab              S20svgalib-bin
S08checkroot.sh      S14ufw                    S21antiX-post.sh
S09antiX-init.sh     S14urandom                S21stop-bootlogd-single
S09hwclock.sh        S14x11-common
S09ifupdown-clean    S15antiX.sh

These S** scripts are there for system initialization. For example, S01mountkernfs.sh mounts kernel filesystems in /proc and /sys, etc. Once all S** scripts in /ect/rcS.d have been executed, Swift executes the S and K scripts after changing the runlevel. Each runlevel uses a directory for its configuration as follows:

  • Runlevel 0 is halt (/etc/rc0.d/);
  • Runlevel 1 is single-user (/etc/rc1.d);
  • Runlevels 2-5 are multi-user (/etc/rc2.d - /etc/rc5.d);
  • Runlevel 6 is reboot (/etc/rc6.d).

All actual script files executed by the init system are located in the directory /etc/init.d. As a single-user mode, scripts /etc/rc1.d starting with a "k" are executed in an alphabetical order to perform killing services, and script /etc/rc1.d names starting with an "S" are executed in alphabetical order to perform starting services. The single user will then be logged in to Swift.

Daemons started are, for example, xdm, gdm, kdm and wdm for device managers.

As illustrated above, Swift linux initializes itself in a sequential order. The initialization process took less than 3 minutes.

References

<references />