COMP 3000 2011 Report: APODIO

From Soma-notes
Jump to navigation Jump to search

Part I


APODIO logo.

APODIO is a GNU/Linux distribution whose development began roughly eight years ago in an effort to create a platform of unified multimedia tools and programs that provide a complete and comprehensive suite of applications for A/V development.<ref name = "APODIO_about">"About << APODIO": 2011-01-09. (Last accessed 2011-10-13).</ref><ref>" APODIO": 2011-07-27. (Last accessed 2011-10-13).</ref> It provides an extensive collection of applications focusing on audio and video creation, development and production. Built on the Ubuntu platform, APODIO provides its users with a range of applications for various multimedia-based tasks (image and photo editing and manipulation, audio and video recording and editing, etc.). Users new to the concept will find solace in the simpler programs provided with the distribution (such as Audacity, a utility designed to record and edit music, and GIMP, a larger program designed for image manipulation and modification). The plurality of applications available, however, are designed for users who have a bit more knowledge and experience in A/V development, and thus, this distribution is utilized most efficiently in the hands of advanced to intermediate users.

APODIO is developed by APO33, a primarily French laboratory located in France, consisting of artists and programmers focusing on the immersion of technology and art.<ref>"APO33 (English)": 2011. (Last accessed 2011-10-13).</ref> Their attitude towards software development and distribution is "coplyleft,"<ref>"Copyleft Attitude << APO33" 2010. (Last accessed 2011-10-13).</ref> the cleverly coined method by which a program or software distribution is made free (including any extended or modified version of the software).<ref>"What is Copyleft? - GNU Project - Free Software Foundation (FSF)": 2011-09-20. (Last accessed 2011-10-17).</ref> The most recent version of APODIO (APODIO8-RC5) can be downloaded from their website here, and comes in a roughly 4.1 GB .iso file. Once installed and expanded, however, roughly 10 GB of file space is used (due to the extensive number of robust applications that come prepackaged with the distribution).

Even though more advanced A/V users will appreciate the full functionality of APODIO, that's not to say it's not for beginners, as well. Members of APO33 have access to the APODIO Support Club, as well as software workshops, however, annual membership subscriptions to APO33 come at a small fee.<ref>"APODIO SUPPORT CLUB << APODIO": 2010-09-10. (Last accessed 2011-10-14).</ref>

APODIO is licensed under the GNU/GPL.<ref name = "APODIO_about" />

Installation and Startup

Requirements and System Setup

The installation of APODIO is relatively straight-forward. Unlike major Linux distributions that choose to expose minuscule aspects of the operating system to the user for personalization and customization purposes, APODIO hides these, as they are unnecessary for those wanting to simply take advantage of the packaged software within.

Virtualization software (more specifically, VirtualBox 4.1.4) was utilized for the purpose of running this operating system, with Mac OS X 10.7.1 running as the host. The version of APODIO used was APODIO8-RC5, the most recent release.

Iso apodio.png

A new virtual machine was created for APODIO, with the following specifications:

  • OS Type: Other Linux
  • Base Memory: 512 MB
  • Virtual Hard Drive: Normal, .vdi, Fixed Size (16 GB)

APO33 recommends the following minimum hardware specifications in order to run APODIO<ref>"APODIO - Howto - first step! << APODIO": 2009-08-02. (Last accessed 2011-10-15).</ref>:

  • 750 Mhz Pentium-type processor
  • 512 MB of RAM
  • A standard graphics card (NVIDIA recommended for 3D/OpenGL)
  • A screen that supports 1024 x 768 resolution (recommended)
  • A sound card recognized by Alsa
  • A DVD player (recommended)
  • A PS/USB mouse
  • A PS/USB keyboard

Installing APODIO

(Figure 1) APODIO boot-up screen.
(Figure 2) APODIO installer.
(Figure 3) APODIO installer copy operating system files.
(Figure 4) APODIO desktop.

When the .iso is mounted to the virtual CD/DVD drive of the virtual machine and run, you are greeted with a rather friendly boot-up screen, with a variety of options presented (Figure 1). The two options of importance, however, are the abilities to boot the Live System from the disk image, or to immediately start the installer and write the file system to the virtual hard disk. APODIO is fully capable of booting and running as a Live System (from the Live CD/.iso). Some users may prefer this instead of installing all of the files to disk. For the purposes of this report, however, APODIO was installed to disk. After booting live once to see if the virtual machine was capable of running in its environment, the operating system installer was initiated.

After the system loads the necessary files, the user is greeted with a more-friendly looking installer: a simple seven-step procedure with a graphical user-interface to install the operating system (Figure 2). This allows the user to select their desired language, keyboard layout, geographical location and non-administrator user settings (this is misleading, however, and is explained in detail in the section, "User APO33"), as well as configuring and partitioning the (virtual) hard drive that will be used as the install location. There are no installation settings specific to APODIO; all configurable settings are generic to installing any GNU/Linux distribution.

Once all of the settings have been configured, the installer begins to install the operating system (Figure 3). This can take anywhere between five and twenty minutes, depending of the resources allocated to the virtual machine. APODIO does minimal partitioning, creating only two partitions: one for itself and all packages, and another for swap space. Once the system has been installed, the virtual machine will restart, and the operating system can be booted into from disk.

From this point on, when the virtual machine is booted (from the virtual disk, not the .iso disk image), the user is logged in automatically (see section, "User APO33"). At this point, the APODIO desktop is readily available, where the user can utilize all services offered by the operating system, and run any of the installed applications (should their hardware support running it) (Figure 4).

User APO33

Even though during the installation setup a user could seemingly be created, once the operating system is installed and booted, the system automatically logs in as user "APO33," and the user created earlier is gone. On the desktop, a simple text file is listed, entitled, "apoido passwd." The contents of this file lists the credentials (username/password combination) for the only normal user on the operating system, "APO33." New users can be created simply by accessing 'System > Administration > Users and Groups.'

The justification derived from the creation of user "APO33" is that on a GNU/Linux distribution such as this, complex user management is unnecessary, as the system is primarily only used for multimedia management; more complex options take away from the operating system's purpose: to provide a vast collection of tools for A/V development without the hassle of numerous system settings.

At this stage, however, the operating system is ready to be used.

Basic Operation

(Figure 5) APODIO applications menus.
(Figure 6) APODIO running Audacity.
(Figure 7) APODIO running GIMP.
(Figure 8) APODIO's terminal.

As a relatively new user to this environment of audio-video development, only programs simpler in nature were used to demonstrate this distribution's potential.

APODIO organizes the packaged programs within it by media-type and by purpose, in that order (Figure 5). This makes it much easier for finding desired applications, as well as discovering new ones that can be used for the same tasks.

To sample a simple audio program, Audacity was used. Audacity is an open-source, cross-platform program that allows users to record and edit sounds.<ref>"Audacity: Free Audio Editor and Recorder": 2011-04-11. (Last accessed 2011-10-15).</ref> Tasks include amplifying, splicing and mixing sounds, editing .mp3 and .wav files, and changing the speed and pitch of a track, to name a few. A generic .midi file was imported to explore the various features. Opening a .midi file yields rather fantastic abilities: since a .midi is just instructions on how to play music (as opposed to actual recorded music), you can see what musical notes actually comprise the file in Audacity (like virtual sheet music). Even running in a virtual environment, the program worked very well, and was able to perform various tasks efficiently (Figure 6).

To sample a simple image program, MyPaint and GIMP were used. MyPaint is an open-source graphics program for artists who appreciate digital mediums for creating, and don't want an annoying interface,<ref>"MyPaint": 2011. (Last accessed 2011-10-16).</ref> and GIMP is the GNU Image Manipulation Program, a package that allows users to modify and manipulate photos, providing features such as photo enhancement and digital retouching.<ref>"GIMP - Feature Overview": 2011. (Last accessed 2011-10-16).</ref> It is a raster editor (meaning that it performs operations directly on the pixels that make up the image), as opposed to a vector editor (where the image is made up of directional lines that explain how the image looks). A picture of a sun was drawn in MyPaint using its various brush tools; the variety of tools supplied is quite profound, and really shows the potential of this simple application. That image was then saved and opened in GIMP, where the colour levels were modified (among other settings) to show how simple adjustments propagate larger effects (Figure 7).

As well as the plethora of programs installed, it's important to remember that this is still a typical GNU/Linux distribution under the hood. The common, necessary components remain intact, such as gedit and the terminal (Figure 8).

This is the most basic of operations of APODIO. Simply speaking, it provides the environment in which the provided applications run, and all operations are unique to each application, and not APODIO. At this stage, however, not even Guest Additions were installed, and APODIO still ran these programs quite well.

Usage Evaluation

With the number of applications included, the organizational tactic implemented, and the simplicity offered by APODIO, this distribution certainly offers what it promises. The operating system provides a large collection of A/V applications, without the need for modifying unnecessary, finicky settings. Even running in a virtual environment, the system performed relative efficiently. Even though no real flow mechanism is provided for creating large projects encompassing multiple media-types and applications, the organization of the programs and the pre-defined structure of folders makes utilizing all the programs simple and easy. However, there are a few minor things that can be improved upon.

The APODIO installer gives the illusion that you can change installation settings that, in reality, have no effect. For one, creating a user during installation seems to yield no effect (as the system comes with one default user already), yet you can still add users once the system is installed, which seems rather contradictory to the design goals. Secondly, changing the keyboard language settings upon installation yielded no effect when the system was actually running; the system keyboard layout defaulted to 'France,' and thus, pressing certain keys resulted in undesirable outcomes ('m's become commas, 'a's become 'q's, etc.). This setting could be forcefully changed after installation, however.

Overall, however, I think this is an extremely convenient operating system for an A/V fanatics, but it might be lost on some users who prefer a crisper and cleaner look to their environments; APODIO doesn't do the best job of making these programs aesthetically pleasing, but it is arguable that this bare-bones interface gets right down to the point to allow its users simplicity when performing tasks.

Finally, with a distribution as massive as this, it seems rather inappropriate to run it in a virtual machine; the amount of system resources necessary to make this run at the speed an A/V developer would desire is just not available in that environment. Simple tasks can be completed, but the virtual machine would need to steal many resources from the host.

All in all, I think this is a well-rounded distribution, with its advantageous features making up for its shortcomings. All A/V developers should try it out.

Part II

Software Packaging

(Figure 9) Package list (by running dpkg -l)

Software packaged for APODIO arrives in the format .deb, and uses dpkg as the package management software (provided for all Debian GNU/Linux distributions, and therefore Ubuntu and APODIO). dpkg handles the installation, removal, and modification of software installed on the system. dpkg is a relatively low-level package manager, so the Advanced Packaging Tool (APT) front-end interface is utilized to provide a higher level of abstraction of software management. This is particularly useful when dealing with more complex package management and relationships, and package retrieval from additional sources.

To get a list of all currently installed packages, simply type the following at the command line (Figure 9):

$ dpkg -l

To add (or update) packages, simply type the following at the command line:

$ dpkg -i <pkg>
$ apt-get install <pkg>

To remove a package, simply type the following at the command line:

$ dpkg -r <pkg>
$ apt-get remove <pkg>

Considering the intentions of this distribution and the number of applications pre-installed, the software catalog for the system is one of the most extensive I've ever seen. The package manager will only need to be utilized by the user if they feel that new versions of APODIO are not released fast enough to compensate for new versions of the software already installed.

Major Package Versions

The following table lists a few of the major packages that come with APODIO, with their current version number and upstream source:


Package Name


Upstream URL



Kernel linux-image-generic None provided. Of the generic linux kernel image:
Version: (30/11/2010)
Latest Stable Version: 3.1.1 (11/11/2011)<ref>"The Linux Kernel Archive": 2011-11-14. (Last accessed 2011-11-15).</ref>
(11 months, 12 days behind latest stable release)
Standard Linux kernel for Ubuntu.
Rationale: Very standard, very generic distribution for building upon. APO33 (as stated earlier) believes in simplicity, and Ubuntu provides this simplicity.

There is no evidence to suggest that the kernel has been modified for APODIO's needs.
linux-image-2.6.32-26-generic 2.6.32-26.48
linux-image-2.6.32-27-generic 2.6.32-26.49
libc libc-bin 2.11.1-0ubuntu7.6 Version: 2.11.1-0ubuntu7.6 (15/11/2010)
Latest Stable Version: 2.14.1 (25/10/2011)<ref>"View of /branches/eglibc-2_14/libc/NEWS": 2011-10-25. (Last accessed 2011-11-15).</ref>
(11 months, 21 days behind latest stable release)
Standard C Library for Linux distributions (to provide system calls for programs)
Rationale: Very standard, very generic distribution for building upon (standard for Ubuntu, hence APODIO).

The standard GNU C library has not been modified for APODIO.
X.Org xorg 1:7.5+5ubuntu1 Version: 1:7.5+5ubuntu1 (01/04/2010)
Latest Stable Version: 1:7.6 (20/12/2011)<ref>"X.Org Wiki - Release/7.6": 2010-12-21. (Last accessed 2011-11-15).</ref>
(1 year, 8 months, 19 days behind latest stable release)
Open-source implementation of the X Window System.
Rationale: Very standard implementation of the X Window System, comes with Ubuntu systems (hence APODIO).

The X.Org X Window System has not been modified for APODIO (although has been for Ubuntu).
Qt libqtcore4 4:4.6.2-0ubuntu5.1 Version: 4:4.6.2-0ubuntu5.1 (10/09/2010)
Latest Stable Version: 4:4.7 (01/09/2011)<ref>"Qt 4.7.4 released": 2011-09-01. (Last accessed 2011-11-15).</ref>
(Almost 1 year behind latest stable release)
Cross-platform GUI framework and toolkit.
Rationale: Open-source framework for developing GUI tools. Very similar interface to a multitude of A/V programs, thus mixing programming and A/V development.

The Qt framework and toolkit have not been modified for this distribution.
bash bash 4.1-2ubuntu3 Version: 4.1-2ubuntu3 (19/04/2010)
Latest Stable Version: 4.2 (13/02/2011)<ref>"Bash-4.2 available for FTP": 2011-02-16. (Last accessed 2011-11-15).</ref>
(Almost 1 year behind latest stable release)
Standard shell for Linux environments.
Rationale: Arrives with Ubuntu (hence APODIO). Very advanced shell, unnecessary to use with APODIO, but useful for core Ubuntu.

bash has not been modified for APODIO.Modifications of a feature-rich command-line tool are unnecessary for A/V development.
hplip hplip 3.10.2-2ubuntu2.1 Version: 3.10.2-2ubuntu2.1 (19/07/2010)
Latest Stable Version: 3.11.10 (03/10/2011)<ref>"HPLIP-3.11.10 Release on 03rd Oct 2011 : HPLIP": 2011-10-03. (Last accessed 2011-11-15).</ref>
(1 year, 3 months, 16 days behind latest stable release)
(Hewlett-Packard Linux Imaging & Printing) Package for printing, scanning, and faxing with HP inkjet and laser based printers in Linux.
Rationale: Standard for many Linux distributions. APODIO can utilize this to assist in printing any documents created in the A/V environment.

There is no evidence to suggest that this package has been modified for APODIO (but has been for Ubuntu). It is a standard for Linux printing.
dpkg dpkg Version: (19/07/2010)
Latest Stable Version: (24/04/2011)<ref>"Debian Package Tracking System - dpkg": 2011-11-14. (Last accessed 2011-11-15).</ref>
(9 months, 5 days behind latest stable release)
Standard package management system for Debian.
Rationale: Standard for Debian-based systems (hence Ubuntu, hence APODIO). Relatively unnecessary for APODIO users, unless they want to be able to update their software without waiting for a new release of APODIO.

This package has not been modified by APODIO.
Firefox firefox-3.5 3.6.13+buuld3+nobinonly-0ubuntu0.10.04.1 None provided. Version: 3.6.13+buuld3+nobinonly-0ubuntu0.10.04.1 (19/07/2010)
Latest Stable Version: 8.0 (08/11/2011)<ref>"Mozilla Firefox Release Notes": 2011-11-08. (Last accessed 2011-11-15).</ref>
(1 year, 3 months, 19 days behind latest stable release)
Standard open-source web browser.
Rationale: Comes with Ubuntu (hence, APODIO). Internet browsing is not a must for A/V development, so the original Firefox would suffice.

Firefox has not been modified for the APODIO distribution.
Audacity audacity 1.3.12-7~ppa1~lucid1 Version: 1.3.12-7~ppa1~lucid1 (02/10/2010)
Latest Stable Version: 1.3.13 (11/04/2011)<ref>"Audacity: Free Audio Editor and Recorder": 2011-04-11. (Last accessed 2011-11-15).</ref>
(6 months, 13 days behind latest stable release)
Program for editing sound files.
Rationale: Very well known and very easy to use program for simple sound modification. APO33 (as stated earlier) believes in simplicity, and Audacity provides this.

Audacity seems to run a bit differently then any other machine (Linux and the like) I've run it on. This may suggest that the package has been modified for more specific needs on APODIO, or it may just be an issue with the settings. Otherwise, there is no evidence to suggest this package has been modified.
GIMP gimp 2.6.11-0ubuntu0+ppa1 Version: 2.6.11-0ubuntu0+ppa1 (19/20/2010)
(Latest stable release)<ref>"GIMP - The GNU Image Manipulation Program": 2011-10-26. (Last accessed 2011-11-15).</ref>
GNU Image Manipulation Program
Rationale: Widely known, very deep program for image manipulation. Feature-rich and easy to learn, perfect for APODIO. APO33 (as stated earlier) believes in simplicity, and GIMP provides this.

Like Audacity, GIMP appeared to have slight modifications to the interface, but this is probably due to a settings issue, as well, and there is no reason to suggest that the package has been modified.

Most packages are behind their most recent release, as this distribution of APODIO was released early this year (updates are available for applications, of course, but only some minor updates are available to avoid compatibility issues). The packages for APODIO have not been modified, as the number of programs is much too extensive, and the goal of APODIO is to simply provide a collection of applications for easy A/V development, without changing how the programs actually work. Interestingly enough, APODIO does not come with a default email client (as, technically speaking, this in no way, shape, or form assists in the actual development of multimedia; APODIO was not designed as a communications medium or people-management system).

System Initialization

The system startup process of APODIO will be similar to that of the boot up process of Ubuntu (and therefore, Debian). Like any standard machine, it begins with the BIOS which loads the boot sector from any standard medium (Floppy Disk, CD-ROM, Hard Drive, USB, etc.).<ref>"Linux Boot Sequence": 2010-10-13. (Last accessed 2011-11-15).</ref> The BIOS will load and execute the first 512 bytes of disk, and the boot record will attempt to find a primary partition, via the boot loader (generally GRUB for Linux machines). From here, the kernel of the machine is loaded (initializing devices, mounting filesystems, etc.). After this, the kernel will execute /sbin/init.

From /sbin/init, /etc/inittab is read so that the system knows what programs to run (based on the run level the system is currently operating in). The default run level when booting up us run level 2 (Full Multi-User Mode). Different scripts are run within different folders beforehand, however: /etc/init.d/rcS/, which runs scripts in /etc/rcS.d/, as well as deprecated scripts within /etc/rc.boot/. A few of the scripts in /etc/rcS.d/ are:

   S13pcmciautils          // Service that provides support for PCMCIA hardware for systems with Linux 2.6.13-rc1 or later.
   S25brltty               // Provides access to braille terminals (braille terminal driver).
   S37apparmor             // Script in charge of loading all AppArmor profiles.
   S46-lm-sensors          // Everything to do with monitoring hardware health.
   S55urandom              // In charge of saving the random seed (when booting, halting, and restarting).
   S70x11-common           // Sets up the X Server, as well as the ICE socket directories.

At this point, the appropriate run level scripts are run (/etc/rc[run-level].d/). All of the scripts that start with SXX (where XX is a number for distinguishing order) within /etc/rc2.d/ will have been executed (as this is the basic, multi-user mode, run level 2):

   S20akiradrelease        S21aumix              S70pppd-dns
   S20cinecutiestart       S25bluetooth          S90binfmt-support
   S20cinestart            S30vboxadd            S91apache2
   S20darkice              S30vboxadd-x11        S99acpi-support
   S20fancontrol           S35vboxadd-service    S99grub-common
   S20icecast2             S50cups               S99jackd
   S20kerneloops           S50pulseaudio         S99ondemand
   S20lighttpd             S50rsync              S99rc.local
   S20speech-dispatcher    S50saned              S99rtirq
   S20winbind              S70dns-clean          S99timidity

These scripts are run in alphabetical order (mainly sorted by S[number]),<ref>"Boot process, Init and shutdown": 2008-06-06. (Last accessed 2011-11-15).</ref> although are technically just the symbolic links to the real scripts located within /etc/init.d/.

(Figure 10) Process tree (by running pstree)

Upon logging in, all of the necessary processes are running. The process tree depicts information about all currently active processes, and the parent-child relationship between them (Figure 10). The process tree can be loaded via the terminal by typing in the following command:

$ pstree

The complete process tree upon login of APODIO is as follows:

apo33@Douglas:~$ pstree
     │                └─{NetworkManager}
     │            │                 ├─gdm-session-wor─┬─gnome-session─┬─blueman-applet
     │            │                 │                 │               ├─bluetooth-apple
     │            │                 │                 │               ├─gdu-notificatio
     │            │                 │                 │               ├─gnome-panel
     │            │                 │                 │               ├─gnome-power-man
     │            │                 │                 │               ├─metacity
     │            │                 │                 │               ├─nautilus
     │            │                 │                 │               ├─nm-applet
     │            │                 │                 │               ├─polkit-gnome-au
     │            │                 │                 │               ├─ssh-agent
     │            │                 │                 │               ├─update-notifier
     │            │                 │                 │               └─{gnome-session}
     │            │                 │                 └─{gdm-session-wo}
     │            │                 └─{gdm-simple-sla}
     │            └─{gdm-binary}
     │                ├─gnome-pty-helpe
     │                └─{gnome-terminal}
     │      │             ├─hald-addon-inpu
     │      │             └─hald-addon-stor
     │      └─{hald}
     │            └─2*[{pulseaudio}]

The process tree above shows all of the active processes when the system is booted-up and logged in (fully initialized). Details on a few of the major processes (and how they are initialized) are listed below:


Associated Script / Initialization


VBoxService S35vboxadd-service Linux Guest Additions service daemon init script.
acpid S99acpi-support Checks whether or not the machine is on batteries (determines power source) which helps the system decide how it should run effectively.
pulseaudio S50pulseaudio Responsible for starting the PulseAudio sound server.
lighttpd S20lighttpd In charge of starting the lighttpd web server (common open-source web sevrer).
cupsd S50cups In charge of the CUPS printing spooler and server.
timidity S99timidity In charge of starting and stopping TiMidity, a high-quality MIDI sequencer.

Some outlying scripts remain (that don't necessarily have a process running when logged in):

  • S21aumix: Saves and restores audio-mixer settings when booting up and shutting down.
  • S91apache2: In charge of starting/stopping the apache web server (not running by default on APODIO).
  • S20fancontrol: Associated with S46-lm-sensors, automated software to regulate fan-speed based on temperature.
  • S20icecast2: Starts the icecast audio streaming server daemon.
  • S25bluetooth: Starts the bluetoothd process (not running by default on APODIO).
  • S20speech-dispatcher: Common interface to speech synthesizers.
  • S50rsync: Program that allows the copying of files to/from remote machines (similar to rcp).

This information was found by researching how a standard Debian-based system boots up and initializes. The APODIO file system was browsed to discover what scripts reside in which folders, to discover how and when each one is run.


<references />