Difference between revisions of "COMP 3000 2011 Report: Macpup"
Line 101: | Line 101: | ||
==Major Package Versions== | ==Major Package Versions== | ||
Note: Macpup 5.2.8 was released September 17th, 2011. | |||
{| border="1" | {| border="1" | ||
! Package | ! Package |
Revision as of 02:44, 11 November 2011
Part 1
![](/wiki/images/f/ff/Macpup_logo.png)
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"/>
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.
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
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>
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.
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"/>.
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.
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.
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
Note: Macpup 5.2.8 was released September 17th, 2011.
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<ref name = "busybox" >Last modified November 9, 2011, "BusyBox", accessed on November-09-2011</ref>. The latest stable build as of November 9th 2011 is version 1.19.3 which was released on October 29th 2011<ref name = "busybox" >Last modified November 9, 2011, "BusyBox", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "About BusyBox", accessed on November-09-2011</ref>. 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<ref name = "roxterm">Last modified November 9, 2011, "Debian Changelog roxterm (2.2.2-1)", accessed on November-09-2011</ref>. 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<ref name = "roxterm">Last modified November 9, 2011, "Debian Changelog roxterm (2.2.2-1)", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "ROXTerm", accessed on November-09-2011</ref>.
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<ref>Last modified November 9, 2011, "Mozilla Firefox Beta Release Notes", accessed on November-09-2011</ref>. The latest stable build as of November 9th 2011, is Firefox 8.0 which was released on November 8th 2011<ref>Last modified November 9, 2011, "Mozilla Firefox Release Notes", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "ChangeLog - gnome-mplayer - 1.0.3", accessed on November-09-2011</ref>. The latest stable version as of November 9th 2011 is 1.0.4, and was released on July 1st 2011<ref>Last modified November 9, 2011, "ChangeLog - gnome-mplayer - 1.0.4", accessed on November-09-2011</ref> . 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<ref>Last modified November 9, 2011, "gnome-mplayer - Gnome MPlayer is a GTK2/GTK3 interface for MPlayer. - Google Project Hosting", accessed on November-09-2011</ref>.
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<ref name = "gftp">Last modified November 9, 2011, "gFTP Official Homepage", accessed on November-09-2011</ref>. 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<ref name = "gftp">Last modified November 9, 2011, "gFTP Official Homepage", accessed on November-09-2011</ref>.
XChat
Macpup includes XChat version 2.8.8, which was released on May 30th 2010<ref name = "xchat">Last modified November 9, 2011, "XChat: Multiplatform Chat Program", accessed on November-09-2011</ref>. The latest stable version as of November 9th 2011 is 2.8.9, and was released on August 28th 2010<ref name = "xchat">Last modified November 9, 2011, "XChat: Multiplatform Chat Program", accessed on November-09-2011</ref>. 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<ref name = "xchat">Last modified November 9, 2011, "XChat: Multiplatform Chat Program", accessed on November-09-2011</ref>.
Geany
Macpup includes Geany version 0.20, which was released on January 10th 2011<ref name="geany">Last modified November 9, 2011, "Geany Changelog", accessed on November-09-2011</ref>. The latest stable version as of November 9th 2011 is 0.21.1, and was released on October 30th 2011<ref name="geany">Last modified November 9, 2011, "Geany Changelog", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "Geany : Home Page", accessed on November-09-2011</ref>, 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<ref>Last modified November 9, 2011, "Old Version of AbiWord 2.8.6 Download - OldApps.com", accessed on November-09-2011</ref>. The latest stable version as of November 9th 2011 is 2.9.1, and was released on July 7th 2010<ref>Last modified November 9, 2011, "Abiword Downloads Index", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "AbiWord", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "Gnumeric changelog 1.10.13", accessed on November-09-2011</ref>. The latest stable version as of November 9th 2011 is 1.10.17, and was released in July 31st 2011<ref>Last modified November 9, 2011, "Gnumeric changelog 1.10.17", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "GNOME Office / Gnumeric - Welcome to Gnumeric!", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "GParted 0.8.0 Released", accessed on November-09-2011</ref>. The latest stable version as of November 9th 2011 is 0.10.0, and was released on November 1st 2011<ref>Last modified November 9, 2011, "GParted - Browse /gparted/gparted-0.10.0 at SourceForge.net", accessed on November-09-2011</ref>. 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<ref>Last modified November 9, 2011, "GParted -- About", accessed on November-09-2011</ref>.
Initialization
While searching for some information on how Macpup starts up we found a few different pages that all seemed to describe different methods of the OS booting up. We finally came across a blog post with information on what scripts are started upon bootup. After examining the files within Macpup we found the blog to be accurate and we've expanded on the information given there below. Most of the information was found by reading the script comments and README files that were included in most directories.
The initialization sequence for Macpup uses the same boot process as its parent distribution, Puppy Linux, does. Initialization is a bit different depending on whether you are booting Macpup from a live CD or from a full install on a hard drive. We are going to cover the boot process for a full install of Macpup. The boot process begins with the bootloader launching the kernel. The kernel then runs the script /sbin/init. This script first checks to see if the file “/fsckme.flg” exists. If it does, then a filesystem check needs to be run before proceeding any further. The script will then create a ramdisk and populate it with a Linux environment. /sbin/init then calls the script /etc/rc.d/rc.sysinit which first makes the filesystem useable.
The sysinit script then calls /etc/rc.d/rc.update. The purpose of this script is to perform any required updates to files when a new version of Macpup is booted. Scripts are also called from the update script to clean up any obsolete files from older versions of Macpup, or old .pet packages.
Back in the sysinit script, some kernel modules are loaded, and then any extra modules that the user has specified in the BootManager are loaded. Next we move on to setting up services such as printing and networking. The scripts /etc/rc.d/network and /etc/rc.d/services are called. The services script will run all executable scripts found in /etc/init.d with the command line parameter “start”. Here are some notes on some particular services that are started from the init.d directory:
cups: This runs the CUPS daemon ‘cupsd’, required for printing. <ref>Last modified November 10, 2011 "man page cupsd section 8", accessed on November-10-2011</ref>
messagebus: This runs the ‘dbusd’ daemon. DBUS is a method for applications to communicate with each other <ref>Last modified November 10, 2011 "dbus-daemon-1: Message bus daemon - Linux man page", accessed on November-10-2011</ref>. Only certain applications use this, and most Puppy distributions are built with apps that don’t.
sys_logger: This runs the daemons ‘syslogd’ and ‘klogd’, which log kernel and application events (especially error messages) to various log files, mostly to /var/log/messages <ref>Last modified November 10, 2011 "UNIX man pages: syslogd(8)", accessed on November-10-2011</ref><ref>Last modified November 10, 2011 "UNIX klogd(8): Kernel Log Daemon - Linux man page", accessed on November-10-2011</ref><ref>Last modified November 10, 2011 "Barry Kauler - Powered by PPLOG", accessed on November-10-2011</ref>.
udev: Runs the daemons ‘udevd’ and ‘pup_even_frontend_d’. This is a mechanism that receives hardware event from the kernel, such as a USB drive being plugged in or removed. ‘udevd’ is essential during bootup. However after bootup the daemons can be killed, which actually saves quite a bit a CPU usage and resources.
Most Linux distributions would have runlevels that give an order to which services start in which order. Macpup and Puppy Linux do not have run levels, and run a very minimum essential set of services.
Finally, back in /etc/rc.d/rc.sysinit, we have a few more tasks to finish up. The script discovers media devices such as CD drives, mice, and keyboards, and also runs the script /etc/rc.d/rc.country which asks for the keyboard layout. The script rc.local is also called, which is simply the line “modprobe fbcon”. This gets you a framebuffer console <ref>Last modified November 10, 2011 "http://www.kernel.org/doc/Documentation/fb/fbcon.txt", accessed on November-10-2011</ref>. This is the end of the sysinit script, from here we head to the /etc/profile script.
The profile script evaluates all the files in the /etc/profile.d directory. The usual purpose for these files is to set environment variables for a particular package. Finally the profile script will start X (which provides an interface for GUIs <ref>Last modified November 10, 2011 "X Window System - Wikipedia", accessed on November-10-2011</ref>). When X starts it runs /root/.xinitrc, which will start any file in /root/Startup. After .xinitrc has finished running, the windowmanager is started and the user is in control.
Part 3
Coming soon...
References
<references />