COMP 3000 2011 Report: Macpup

From Soma-notes
Revision as of 01:59, 11 November 2011 by Kbyrd (talk | contribs) (→‎Enlightenment)
Jump to navigation Jump to search

Part 1

DISTRIBUTION NAME: Macpup

GOAL: Fully featured lightweight OS, capable of running in RAM

TARGET AUDIENCE: Linux newbies, and users who may have an older slower PC

DEVELOPER: Johnny Lee

DOWNLOAD LINK: Official Macpup Website

FILESIZE: Approx. 165MB

HERITAGE: Puppy Linux

Background

The distribution we chose is Macpup, and our report will be based on the latest version (Macpup 5.2.8). Older versions can be downloaded here.

Macpup is based on Puppy Linux which both share a common goal - to provide a lightweight fully featured OS that can run in RAM and is very fast. Macpup provides a fully featured collection of applications for office, graphics, multimedia and internet right from the start.<ref>Last modified October 13, 2011, "Macpup: A beautiful derivative of Puppy Linux", accessed on October-13-2011</ref> The distribution mainly targets users who want to get their old PC up and running, and is also very friendly for Linux newbies. It can be loaded with very minimal system requirements and still performs quite well.

Macpup is being developed by Johnny Lee, and can be obtained here with approximate file size of 165MB’s. Macpup is a derivation of Puppy Linux which has been built from scratch and is not based on any other Linux distribution. It is known for its small file size, and incredible speed.<ref name="puppy">Last modified April 2, 2009, "Puppy Linux", accessed on October-14-2011</ref> What distinguishes Macpup from Puppy Linux is mainly its default Window Manager Enlightenment E17.

Installation/Startup

The first boot of Macpup was quick as promised. At first we were presented with two options, "Macpup 528" and "Macpup 528 RAM". The difference between these two options comes after you've done an install of Macpup. After you have some files saved, choosing the Macpup 528 option will load the system along with all your saved files/settings/etc. The Macpup 528 RAM option only boots the system and will not display the changes you've made, or files you've created. The purpose of this is to allow you to test things out within Macpup without taking the risk of damaging your personal files.<ref name="hardkap">Last modified October 15, 2011, "Using Macpup: Hardkap Forums", accessed on October-15-2011</ref>

We gave our virtual machine 1GB of RAM to use, however from looking at htop (an interactive process viewer for Linux, included in Macpup) the system only ever seemed to use around 40 to 50MB. The official Macpup forums recommended 256MB of RAM or more.<ref name="hardkap"/>

Macpup boot options

We ran into trouble trying to get Macpup installed to our hard drive. The distributions we have experience with (such as Ubuntu or Fedora) offer very simple 1 click install buttons that might ask you a couple of questions, but then take care of the installation process themselves. Macpup does have a "universal installer" tool, however it won't run until the drive you want to install on has been partitioned correctly, which you have to do yourself in a program called GParted (it comes pre-installed on Macpup). After a quick search on Google we found instructions on how to get everything set up properly.

We then hit another roadblock as we were both using VMware Workstation 8, and for whatever reason Macpup could not detect the virtual hard drive that we wanted to install it to. After some searching we found several possible solutions, however the easier alternative seemed to be just running it in VirtualBoxinstead. Macpup detected our hard drive file within VirtualBox, and we were able to partition it using GParted.

Partitioning our virtual drive in GParted

After the drive was partitioned we were able to run the universal Puppy installer and complete the installation to the hard drive with no problems.


USB Installation

One of the features of Macpup, and Puppy Linux in general, is that you can install it onto a USB flash drive and take it with you anywhere <ref name="puppy"/>. Installing Macpup onto our flash drive was incredibly simple. First we burned the Macpup ISO file onto a disc to make a live CD and then booted up off of that. Once we had Macpup loaded up we plugged in our flash drive and chose the option to install to a USB flash drive from the universal installer. Macpup detected our USB device right away and took care of the entire installation process in a couple minutes, with a few prompts to ensure we knew the data on the device was going to be erased and what not. After the process was complete we shut down Macpup and booted off the flash drive with no problems.

Basic Operation

One of the features of Macpup and Puppy Linux is that it can run smoothly even on older systems. To test this out we created a virtual machine with 256MB of RAM and gave it just 1 processor core to work with. We originally ran into some problems using this setup, namely that Firefox (the default browser on Macpup) kept crashing. It would either freeze while trying to load up, or if it actually loaded up it would freeze when we tried to browse to another webpage. The version of Firefox included is the beta version (currently 7.0) so that may have something to do with it. We gave up on Firefox and downloaded a couple other web browsers (Opera and Chromium) to try out and had a much better experience with them. The system was very quick to respond and we didn’t notice any slowdowns at all. Memory was a constant worry though, we discovered that if we used all of our allotted memory the entire OS would freeze up, sometimes for a full minute, and then Macpup would kill off whatever application was causing the problem. It’s easy to monitor memory usage using htop, but it’s also easy to open up a few too many tabs.

If you’re careful with your memory usage Macpup does perform very well however. We installed Thunderbird and had it running along with Opera and a few other pre-installed applications that come with Macpup and had no slowdowns, which we feel is a pretty standard session for many users. Despite the problems we ran into we still think Macpup does perform very well even with limited resources, newer versions of Windows simply wouldn’t run on that little RAM and the older ones would allow far less usability than what we experienced with Macpup.

More Features


Macpup with JWM
Macpup with Enlightenment E17

Window Managers

Macpup provides two window managers to choose from:

1. Enlightenment E17

With Enlightenment being Macpups default Window Manager we decided to play around with a lot more of it's features compared to JWM. One of our favourite features was the ability to set Virtual Desktops. Virtual desktops allow you to create a grid of different workspaces which can easily be accessed through the ibar. For more information on customizing Enlightenment you can checkout the guide here.


2. JWM (Joe's Window Manager)

JWM is a lightweight stacking window manager written by Joe Wingbermuehle. It provides an interface similar to Windows 98 with a modern-looking appearance. <ref>Last modified October 15, 2011, "joewing.net | JWM (Joe's Window Manager)", accessed on October-15-2011</ref>

Setting Virtual Desktops

Installing Applications

With Puppy Linux having binary-compatibility with Ubuntu Lucid Lyncpackages Macpup 5.28 contains all the apps from Lucid Puppy with the addition of Firefox 7.01 beta. Additional apps such as Opera, Skype, Open Office, Virtual Box, Adobe Reader, and many driver updates are also available using the Quickpet App on the ibar or the Puppy Package Manager.

Quickpet Download Package Manager

Usage Evaluation

Macpup did meet our expectations and seems to achieve its goals quite well. If you do have an old machine lying around with minimal RAM, a slow CPU, and maybe even no HDD we think Macpup would be a good solution if you wanted to give it some life again. Maybe you have an old Pentium II machine with Windows 98 on it, you could go out and buy an 8GB USB drive and boot Macpup off of it.

One critique we first had was with the general default appearance settings within the Enlightenment window manager, but that is just a personal preference that happens with most default OS’s settings. This quickly changed when we played with a lot of Macpups customizable features to its interface. We changed the default theme and the mouse controls. As the left click would bring up the Main Menu whenever you clicked on the desktop, we switched it to the right click under Mouse Binding Settings. Some users may also want a taskbar on the desktop which displays all the programs installed, similar to a Windows interface – for this a good alternative would be JWM.

Although Macpup is very user friendly for non-linux users, the process of setting it up to boot from a USB drive may prove to be a moderately difficult task if you’ve never partitioned a hard drive, or are unsure on how to approach this. Luckily there are tutorials for this, and for most Linux users this will be a very trivial task.

Overall we think Macpup is very user friendly for non-linux users, fairly easy to start-up, has support for a great deal of device drivers, seems to run very smoothly, and is immensely customizable making it a good alternative to a more resource heavy OS when you have older hardware to work with.

Part 2

Software Packaging

Since Macpup is based off of Puppy Linux it uses the same package format and package manager. Puppy’s native package format has filenames ending in .pet <ref name="package">Last modified October 12, 2009, "Package Management", accessed on November-8-2011</ref>. Puppy Linux actually started as a collection of applications on a live CD, with no way to install additional packages. Improvements were made to allow packages to be installed, and later in version 2.0 of Puppy Linux the PET format was introduced. PET is said to stand for “Puppy’s Extra Treats”. A .pet file is really just a .tar.gz file, except that it has a 32 byte md5sum (file integrity verification code) appended at the end of the file <ref>Last modified February 7, 2007, "PET Packages", accessed on November-8-2011</ref>.

Another type of package available within Macpup/Puppy Linux is SFS (Squash File System) modules. These can be identified by their .sfs extension. SFS files are intended for frugal installs or run from a USB drive, not full installations <ref name="sfs">Last modified November 8, 2011, "PuppyLinux: New SFS Feature in Quickpet", accessed on November-8-2011</ref>. SFS files are loaded at the boot up and are typically “combo packs” of applications, containing all packages needed for what is required <ref name="package"/>.

Puppy Package Manager checks for dependencies

In version 5 of Puppy Linux a new package manager called Quick Pet was introduced, it is an easy to use, cut-down version of the full featured Puppy Package Manager (PPM) <ref name="lucid">Last modified November 8, 2011, "PuppyLinux: Quickpet", accessed on November-8-2011</ref>. Both Quick Pet and the PPM are included in Macpup 528. Quick Pet highlights some of the most popular software available for Puppy, organized by category (popular pets, internet pets, useful pets, sfs gets, and drivers), and allows for one click installations <ref name="lucid"/>. SFS files that are downloaded through Quick Pet’s SFS Grabber utility get automatically installed. The alternative way to manually install these files is to download them, place them in /mnt/home, and then follow the instructions in the BootManager to add the SFS file to the boot up sequence <ref name="sfs"/>.

While Quick Pet is useful for grabbing a few more popular packages quickly, the real full featured package manager in Macpup is the Puppy Package Manager. PPM was introduced in Puppy Linux 4.3 <ref>Last modified November 25, 2009, "Woof the puppy linux builder", accessed on November-8-2011</ref>. PPM allows you to select packages from online repositories, download them, and install them onto the system. PPM is also able to search and install dependencies when installing a package <ref>Last modified November 8, 2011, "PuppyLinux: Puppy Package Manager", accessed on November-8-2011</ref>. PPM also shows what packages you’ve installed from it. Clicking on the name of any package that you’ve previously installed will give you the option to uninstall it.

Puppy Package Manager install screen

One drawback of PPM is you are only able to see the packages that you’ve installed from it, there’s no way to see the packages that came pre-installed with Macpup. There is a hidden folder in the root directory (/root/.packages) that lists the packages, however it also lists some packages found in the devx SFS module as well. Barry K, the creator of Puppy Linux, posted a script that can be run to get a listing of all the packages included on the live CD on his blog <ref>Last modified November 8, 2011, "Barry Kauler - Powered by PPLOG", accessed on November-8-2011</ref>.

In terms of quantity of packages available from the default Puppy-lucid repository, we found that Macpup/Puppy was a bit lacking. There are definitely a wide variety of applications available to perform most major tasks, but there’s a lack of choice between different applications that accomplish the same task.

Puppy Package Manager with Ubuntu repositories

One very interesting feature of Puppy Linux that we found was the “Puppy Builder” called Woof [8]. Woof allows you to take binaries from other Linux distributions such as Ubuntu or Debian, cut them down to Puppy size, and automatically build a Puppy live CD with the binaries of your choosing. The end result still runs in RAM and is still Puppy Linux at its heart, but contains the binaries you chose from other supported distributions <ref>Last modified March 22, 2010, "Woof the puppy linux builder", accessed on November-8-2011</ref>. The version of Macpup that we are testing is 5.2.8, which is based off of Puppy Linux 5.2.8, which is a woof build that is about 60% Ubuntu packages <ref>Last modified November 8, 2011 "PuppyLinux: Puppy52", accessed on November-8-2011</ref>. Because of this we are able to install packages from several Ubuntu repositories, which greatly increased the selection of applications available to us.





Major Package Versions

Package Version Upstream Source
Linux Kernel 2.6.33.2 http://www.kernel.org/
eglibc 2.11.1 http://www.eglibc.org/
JWM 2.0 rev 500 http://joewing.net/programs/jwm/
Enlightenment 0.17 http://www.enlightenment.org/
BusyBox 1.16.2 http://busybox.net/
ROXTerm 1.18.5 http://roxterm.sourceforge.net/
Firefox 7.01 beta http://www.mozilla.org/en-US/firefox/features/
Gnome-mplayer 1.0.3 https://sites.google.com/site/kdekorte2/gnomemplayer
gFTP 2.0.19 http://www.gftp.org/
XChat 2.8.8 http://xchat.org/
Geany 0.20 http://www.geany.org/
Abiword 2.8.6 http://www.abisource.com/
Gnumeric 1.10.13 http://projects.gnome.org/gnumeric/
GParted 0.8.0 http://gparted.sourceforge.net/


Comparison of Packages

Linux Kernel

The Linux Kernel included in Macpup is version 2.6.33.2, which was announced on April 1st, 2010<ref>Last modified November 8, 2011, "Linux 2.6.33.2", accessed on November-08-2011</ref>. The latest stable version of the kernel as of November 8th 2011 is version 3.0.8, which was released on October 25th 2011<ref>Last modified November 9, 2011, "http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.8", accessed on November-09-2011</ref>. The Kernel hasn’t been modified at all by the distribution authors, and is the same kernel Puppy Linux version 5.2.8 uses. There is no apparent reason why the distribution authors chose to include this kernel besides the fact that it may have just been one of the latest stable builds near the release date of Macpup 5.2.8.

eglibc

Macpup includes version 2.11.1 of eglibc (Embedded GLIBC) which is also included in Ubuntu 10.04.3 LTS (Lucid Lynx), and was released on February 1st, 2011<ref>Last modified November 9, 2011, "eglibc source package : Lucid (10.04) : Ubuntu", accessed on November-09-2011</ref>. The latest stable version of eglibc as of November 9th 2011 is version 2.14.1, which was released on October 25th 2011<ref>Last modified November 9, 2011, "svn View of /branches/eglibc-2_14/libc/NEWS", accessed on November-09-2011</ref>. The version of eglibc that is included in Macpup hasn’t been modified by the distribution authors at all. One of eglibc’s, goals is to include a reduced footprint (smaller file size)<ref>Last modified November 9, 2011, "EGLIBC: EGLIBC", accessed on November-09-2011</ref>, which is most likely why Macpup included this version of glibc.

JWM (Joe's Window Manager)

Macpup includes version 2.0 (revision 500) of Joe’s Window Manager, which was released on December 26th 2010<ref name ="jwm" >Last modified November 9, 2011, "http://joewing.net/programs/jwm/snapshots/ChangeLog", accessed on November-09-2011</ref>. The latest version of JWM as of November 9th 2011 is 2.1 (revision 5430), which was released on October 22nd, 2011<ref name ="jwm" >Last modified November 9, 2011, "http://joewing.net/programs/jwm/snapshots/ChangeLog", accessed on November-09-2011</ref>. The version of JWM that is included in Macpup hasn’t been modified by the distribution authors at all. Despite Enlightenment being Macpups default window manager, JWM still provides Macpup with a fast, lightweight window manager that runs with only using Xlib at a minimum<ref>Last modified November 9, 2011, "joewing.net | JWM (Joe's Window Manager)", accessed on November-09-2011</ref>.

Enlightenment

Macpup includes the Enlightenment Window Manager as its default window manager. Included is Enlightenment version 0.17 (E17), which as November 9th 2011, hasn’t been officially released and has been in development since December of 2000<ref>Last modified November 9, 2011, "Enlightenment (window manager) - Wikipedia, the free encyclopedia", accessed on November-09-2011</ref>. The latest stable build version E16 1.0.10 was released on October 9th 2011<ref>Last modified November 9, 2011, "Enlightenment Download<", accessed on November-09-2011</ref>. Macpup includes a customized version of E17 (version 62861). Enlightenment E17 for Macpup comes with a custom build to run under Puppy Linux’s environment. Enlightenment E17, is not just a window manager, but it is also a desktop shell. A desktop shell means a window manager plus a file manager, plus configuration utilities all in one. E17 is fast, it is even known to run on very slow machines with 100Mhz CPU’s, and 64 MB’s of RAM. Enlightenment also has various animations and tons of effects that each theme provides.<ref>Last modified November 9, 2011, "Enlightenment 0.17", accessed on November-09-2011</ref> Running very fast and having a small footprint while still staying sleek is part of Macpup’s philosophy and is what distinctively separates it from its derivation – which is why the authors chose E17 as its default window manager.

BusyBox

Macpup includes BusyBox version 1.16.2 which was released on June 12th 2010. The latest stable build as of November 9th 2011 is version 1.19.3 which was released on October 29th 2011. The version of BusyBox that is included in Macpup hasn’t been modified by the distribution authors at all. BusyBox combines tiny versions of many common UNIX utilities into a single small executable and provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. Having all these small utilities combined into a small executable is most likely why this particular package was chosen for Macpup’s standard installation.

ROXTerm

Macpup includes ROXTerm version 1.18.5-3 which was released on October 3rd 2010. The latest stable build as of November 9th 2011 is version 1.18.5-3. A current experimental version also exists at version 2.2.2-1 which was released on October 5th 2011. The version of ROXTerm that is included in Macpup hasn’t been modified by the distribution authors at all. ROXTerm was most likely included to as a more powerful alternate to Xterm. It’s more configurable than the gnome-terminal and aimed more at “power users”. ROXTerm was originally designed to have a small footprint and quick start-up but can now be accused of bloat with all the features it’s acquired over the years.

Firefox

Macpup includes Firefox 7.01 beta, and comes configured to download updates from the beta channel. Firefox 7.01 beta was released on August 18th 2011. The latest stable build as of November 9th 2011, is Firefox 8.0 which was released on November 8th 2011. The version of Firefox that is included in Macpup hasn’t been modified by the distribution authors at all. Firefox 7.01 beta was most likely included in this particular package as it drastically improved memory use over the previous version of Firefox, and Firefox in general is one of the more popular open source web browsers currently available.

Gnome-mplayer

Macpup includes Gnome-mplayer version 1.0.3, which was released on April 21st 2011. The latest stable version as of November 9th 2011 is 1.0.4, and was released on July 1st 2011. The version of Gnome-mplayer that is included in Macpup hasn’t been modified by the distribution authors at all. Gnome-mplayer was most likely included because it’s a fairly powerful multimedia player with a friendly UI.

gFTP

Macpup includes gFTP version 2.0.19, which is also the latest stable build as of November 9th 2011 was released on November 30th 2008. The version of gFTP that is included in Macpup hasn’t been modified by the distribution authors at all. gFTP was most likely included because it’s a free powerful multithreaded file transfer client with many features, and runs with minimal requirements.

XChat

Macpup includes XChat version 2.8.8, which was released on May 30th 2010. The latest stable version as of November 9th 2011 is 2.8.9, and was released on August 28th 2010. The version of XChat that is included in Macpup hasn’t been modified by the distribution authors at all. XChat was most likely included because it’s a free IRC chat program that allows you to join multiple IRC channels (chat rooms) at the same time, and runs with minimal requirements.

Geany

Macpup includes Geany version 0.20, which was released on January 10th 2011. The latest stable version as of November 9th 2011 is 0.21.1, and was released on October 30th 2011. The version of Geany that is included in Macpup hasn’t been modified by the distribution authors at all. Geany is a text editor using the GTK2 toolkit, and was developed to provide a small and fast IDE, that has only a few dependencies from other packages making it a very small and useful code editor for Macpup.

Abiword

Macpup includes Abiword version 2.8.6, which was released on June 13th 2010. The latest stable version as of November 9th 2011 is 2.9.1, and was released on July 7th 2010. The version of Abiword that is included in Macpup hasn’t been modified by the distribution authors at all. Abiword is a free word processing program similar to Microsoft Word, and is suitable for a wide variety of word processing tasks. It is most likely included in Macpup’s standard install to provide users with a more advanced text editor tool.

Gnumeric

Macpup includes Gnumeric version 1.10.13, which was released on February 2nd 2011. The latest stable version as of November 9th 2011 is 1.10.17, and was released in July 31st 2011. The version of Gnumeric that is included in Macpup hasn’t been modified by the distribution authors at all. Gnumeric is a spreadsheet tool that is free and fast. It is most likely included in Macpup’s standard install to provide users with a more advanced spreadsheet editor that is fast and remains responsive when handling larger spreadsheets.

GParted

Macpup includes GParted version 0.8.0, which was released on February 15th 2011. The latest stable version as of November 9th 2011 is 0.10.0, and was released on November 1st 2011. The version of GParted that is included in Macpup hasn’t been modified by the distribution authors at all. GParted has most likely been included in Macpup’s standard install to provide users with a well-known free partition editor for graphically managing your disk partitions.

Initialization

Part 3

Coming soon...

References

<references />