COMP 3000 2011 Report: Swift Linux: Difference between revisions

From Soma-notes
Mabadeer (talk | contribs)
Mabadeer (talk | contribs)
Line 5: Line 5:
===Background===
===Background===


Swift Linux is a light linux distribution developed by Jason Hsu<ref>[http://jhsu802701.users.sourceforge.net Swift Linux Creator Website</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 is a light linux distribution developed by Jason Hsu<ref>[http://jhsu802701.users.sourceforge.net Swift Linux Creator Website]</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”<sup>1</sup>.
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.

Revision as of 19:33, 15 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<ref>Swift Linux Creator Website</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”1. 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

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. 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 distributions1:

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. There are a few issues that were encountered that we explore below:

  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.

References

  1. Introduction in Swift Linux Official Website
  2. Reviews: Ubuntu Linux 5.04
  3. IceWM Official Website

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>DPKG Commands for Debian-based distributions</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>APT Commands for Debian-based distributions</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 then:

  • Linux Kernel

The Linux Kernel version installed is 2.6.36-1-mepis.smp released October 20, 2010<ref>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>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. 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>XOrg Changelog</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. Upstream

  • 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. 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>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.

  • 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>DPKG WikiPedia Page</ref>

  • iceape-browser
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 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.

  • 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.

  • 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. 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. So distribution authors chosen netbase as a standard install.

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>Linux System Initialization</ref>, the list is like:

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

As the above showed, rcS finished the basic initialization, let us point out some major programs:

  • S01mountkernfs: this program runs firstly, it mount kernel virtual file systems.
  • 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 />