Comp 3000 ArtistX Report: Difference between revisions

From Soma-notes
Adangel2 (talk | contribs)
Adangel2 (talk | contribs)
 
(16 intermediate revisions by the same user not shown)
Line 140: Line 140:
</gallery>
</gallery>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
Using Synaptic to install and remove packages is quite easy; if you click the rectangle to the left of the package name you will be given a list of appropriate options such as marking for installation or removal of which you would select what you want to do; you then click the 'Apply' button at the top of the window (the button with the green checkmark), then confirm what you want to add/remove. Note 'mark for removal' and 'mark for complete removal' both remove the package, but the complete removal will remove ''all'' files related to the package like configuration files and user-created data. Using Aptitude to install and remove packages is pretty straightforward but you have to select the 'Become root' option from the 'Actions' menu to do it; to add a package, you navigate to it from the menu/listings and select it for installation (most easily done by using the '+' button); to remove packages you navigate to them and deselect them (most easily done using '-' button); when you have finished selecting/deselecting other packages, you press 'g' to actually add or remove the packages. Note that these things can also be done through the menu at the top, but it is easier to do it with the keyboard.
Using Synaptic to install and remove packages is quite easy; if you click the rectangle to the left of the package name you will be given a list of appropriate options such as marking for installation or removal of which you would select what you want to do; you then click the 'Apply' button at the top of the window (the button with the green checkmark), then confirm what you want to add/remove. Note 'mark for removal' and 'mark for complete removal' both remove the package, but the complete removal will remove ''all'' files related to the package like configuration files and user-created data. Using Aptitude to install and remove packages is pretty straightforward but you have to select the 'Become root' option from the 'Actions' menu to do it; to add a package, you navigate to it from the menu/listings and select it for installation (most easily done by using the '+' button); to remove packages you navigate to them and deselect them (most easily done using '-' button); when you have finished selecting/deselecting other packages, you press 'g' to actually add or remove the packages. Note that these things can also be done through the menu at the top, but it is easier to do them with the keyboard.
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
Line 852: Line 852:
     <td>'''alsa-utils'''</td>
     <td>'''alsa-utils'''</td>
     <td>
     <td>
According to [http://git.alsa-project.org/?p=alsa-utils.git;a=tag;h=1d2fa39204435601bec341c88955b3b6cf99d640 git release tag], the unmodified version of the included package of alsa-utils was committed (and I suppose released) '''Mon, 31 Jan 2011 at 14:19:55''' and it seems to be the latest stable release according to the [http://git.alsa-project.org/?p=alsa-utils.git;a=summary git summary]. I do not see any evidence leading me to conclude that the ArtistX team changed this package, but the Ubuntu team may have seeing how the version identifier contains the word 'ubuntu' in it. According to Wikipedia, the alternative to using ALSA would be Open Sound System (OSS) but the Linux people have decided to deprecate OSS and use ALSA as the default sound API<ref name="WikipediaALSA" >[http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture Wikipedia ALSA article]</ref><ref name="WikipediaOSS" >[http://en.wikipedia.org/wiki/Open_Sound_System Wikipedia OSS article]</ref>. ArtistX probably just accepted this default as it shows every sign of being the way of the future.     
According to the [http://git.alsa-project.org/?p=alsa-utils.git;a=tag;h=1d2fa39204435601bec341c88955b3b6cf99d640 git release tag], the unmodified version of the included package of alsa-utils was committed (and I suppose released) '''Mon, 31 Jan 2011 at 14:19:55''' and it seems to be the latest stable release according to the [http://git.alsa-project.org/?p=alsa-utils.git;a=summary git summary]. I do not see any evidence leading me to conclude that the ArtistX team changed this package, but the Ubuntu team may have seeing how the version identifier contains the word 'ubuntu' in it. According to Wikipedia, the alternative to using ALSA would be Open Sound System (OSS) but the Linux people have decided to deprecate OSS and use ALSA as the default sound API<ref name="WikipediaALSA" >[http://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture Wikipedia ALSA article]</ref><ref name="WikipediaOSS" >[http://en.wikipedia.org/wiki/Open_Sound_System Wikipedia OSS article]</ref>. ArtistX probably just accepted this default as it shows every sign of being the way of the future.     
     </td>
     </td>
   </tr>
   </tr>
Line 906: Line 906:
     <td>'''gif2png'''</td>
     <td>'''gif2png'''</td>
     <td>
     <td>
According to the package's [http://www.catb.org/~esr/gif2png/NEWS release history], version 2.5.2 was released '''November 11, 2009''' and the most recent version is 2.5.4 which was released '''November 24, 2010'''. We see on the Ubuntu [https://launchpad.net/ubuntu/+source/gif2png/2.5.2-2 Launchpad changelog] that the included version is not stable and was released '''Monday, January 18, 2010'''. They have since created an updated unstable version ([https://launchpad.net/ubuntu/+source/gif2png/2.5.4-2 2.5.4-2]) which was released '''Saturday,  April 30, 2011'''. It is pretty clear that Ubuntu modified the original package as they have a development branch for it. It looks as though when Ubuntu was developing the 'natty narwhal' release, 2.5.2 was the last released version and ArtistX inherited it. This is a useful conversion tool for image files and since things seem to be moving away from the gif format and towards the png format (the [http://en.wikipedia.org/wiki/Portable_Network_Graphics#Web_browser_support_for_PNG Wikipedia png article] reports that even the World Wide Web Consortium is pushing the move to png) it makes sense to have this tool. With an ever-increasing amount of multimedia content finding its way onto websites, the following aspect of the package description (as reported on the aforementioned [https://launchpad.net/ubuntu/+source/gif2png/2.5.2-2 Launchpad changelog]) seems like an attractive feature as web developers maintain their websites: The package ' ''also contains the script "web2png" which converts entire websites from GIF to PNG and updates the HTML accordingly.'' '
According to the package's [http://www.catb.org/~esr/gif2png/NEWS release history], version 2.5.2 was released '''November 11, 2009''' and the most recent version is 2.5.4 which was released '''November 24, 2010'''. We see on the Ubuntu [https://launchpad.net/ubuntu/+source/gif2png/2.5.2-2 Launchpad changelog] that the included version is not stable and was released '''Monday, January 18, 2010'''. They have since created an updated unstable version ([https://launchpad.net/ubuntu/+source/gif2png/2.5.4-2 2.5.4-2]) which was released '''Saturday,  April 30, 2011'''. It is pretty clear that Ubuntu modified the original package as they have a development branch for it. It looks as though when Ubuntu was developing the 'natty narwhal' release, 2.5.2 was the last released version and ArtistX inherited it. This is a useful conversion tool for image files and since things seem to be moving away from the gif format and towards the png format (the [http://en.wikipedia.org/wiki/Portable_Network_Graphics#Web_browser_support_for_PNG Wikipedia png article] reports that even the World Wide Web Consortium is pushing the move to png) it makes sense to have this tool. With an ever-increasing amount of multimedia content finding its way onto websites, the following aspect of the package description (as reported on the aforementioned [https://launchpad.net/ubuntu/+source/gif2png/2.5.2-2 Launchpad changelog]) seems like an attractive feature as web developers maintain their websites: the package ' ''also contains the script "web2png" which converts entire websites from GIF to PNG and updates the HTML accordingly.'' '
     </td>
     </td>
   </tr>
   </tr>
Line 924: Line 924:
  -->
  -->
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
I have concluded that the distribution is started using a combination of Upstart and run-level System V init run scripts. My conclusion is derived from the fact that although Upstart is included as a package, not all scripts have been converted to Upstart<ref name="upstartSysVcooperation" >For more insight into how Upstart and System V init scripts work together, see https://help.ubuntu.com/community/UbuntuBootupHowto as well as the upstart man pages ('man upstart'). For a brief introduction to Upstart, give https://www.linux.com/learn/tutorials/404619-manage-system-startup-and-boot-processes-on-linux-with-upstart a try.</ref>. The way I determined that not all scripts had been converted was that some particular scripts in the /etc/init.d folder actually have specialized shell scripts and are not instead symlinks to "/lib/init/upstart-job" (according to that 'upstart-job' script, the path mentioned is a "Symlink target for initscripts that ''have'' been converted to Upstart."). Further evidence that a combination of startup methods is used is that the file '/etc/inittab', which was the configuration file used by System V init, is missing and there are a lot of configuration files in the '/etc/init' folder (which is where Upstart reads it's configuration from)<ref name="inittabMan" >'inittab' man page</ref>. Another useful installed package is the 'Boot-Up Manager' (BUM) package which is a graphical run-script manager. BUM is smart enough to use Upstart when necessary. I determined this by running a simple experiment with a colleague of mine, Nick Porter, as follows: we used the command</p>
I have concluded that the distribution is started using a combination of [http://upstart.ubuntu.com/cookbook/#what-is-upstart Upstart] and run-level System V init run scripts. My conclusion is derived from the fact that although Upstart is included as a package, not all scripts have been converted to Upstart<ref name="upstartSysVcooperation" >For more insight into how Upstart and System V init scripts work together, see https://help.ubuntu.com/community/UbuntuBootupHowto as well as the upstart man pages ('man upstart'). For a brief introduction to Upstart, give https://www.linux.com/learn/tutorials/404619-manage-system-startup-and-boot-processes-on-linux-with-upstart a try.</ref>. The way I determined that not all scripts had been converted was that some particular scripts in the /etc/init.d folder actually have specialized shell scripts and are not instead symlinks to "/lib/init/upstart-job" (according to that 'upstart-job' script, the path mentioned is a "Symlink target for initscripts that ''have'' been converted to Upstart."). Further evidence that a combination of startup methods is used is that the file '/etc/inittab', which was the configuration file used by System V init, is missing and there are a lot of configuration files in the '/etc/init' folder (which is where Upstart reads it's configuration from)<ref name="inittabMan" >'inittab' man page</ref>. Another useful installed package is the 'Boot-Up Manager' (BUM) package which is a graphical run-script manager. BUM is smart enough to use Upstart when necessary. I determined this by running a simple experiment with a colleague of mine, Nick Porter, as follows: we used the command</p>
  initctl list
  initctl list
<p>in the terminal to force Upstart to list all of the services it was managing as well as their states; choosing one, we told Upstart to stop it using</p>
<p>in the terminal to force Upstart to list all of the services it was managing as well as their states; choosing one, we told Upstart to stop it using</p>
Line 930: Line 930:
<p>and verified it's state by using</p>
<p>and verified it's state by using</p>
  initctl list
  initctl list
<p>once again; we then checked BUM and confirmed it was disabled; we then told BUM to activate ''xxx'' which it reported as successful and updated it's list of running services; we finally checked</p>
<p>once again; we then checked BUM and confirmed that it was disabled; next we told BUM to activate ''xxx'' which it reported as successful and updated it's list of running services; we finally checked</p>
  initctl list
  initctl list
<p>one last time and found that ''xxx'' was in fact running again.  
<p>one last time and found that ''xxx'' was in fact running again.  
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
Though we know that both Upstart and System V init methods are used to initialize the system, it is difficult to outline what programs are run and when. As we are told on the ''Upstart Intro, Cookbook and Best Practices'' in the [http://upstart.ubuntu.com/cookbook/#system-phases ''System Phases''] section, Upstart does a lot of things before it starts the legacy System V init system and then does more things concurrently with System V init (System V init is started during the last step of the ''Startup Process'' phase, step 12). Until System V init is run, we cannot count on any initialization code being run in any kind of order (apart from declared dependencies and abstract phases being done before other abstract phases start) as we are explicitly told in the [http://upstart.ubuntu.com/cookbook/#ordering ''Ordering''] section of the ''Upstart Intro, Cookbook and Best Practices'' page. Once we ''are'' running System V init, we only know that the ''System V init scripts'' will be run in an order. Upstart seems to work by sending out events as they are relevant and these events may or may not trigger scripts. Once again, we cannot rely upon the order in which events are emitted and, when two scripts are triggered by the same event, we cannot tell the order in which they are run. This all being said, there are still ''kind of'' steps in which things are done, those steps being the twelve outlined in that aforementioned ''Startup Process'' phase in that [http://upstart.ubuntu.com/cookbook/#system-phases ''System Phases''] section and the fact that before program X is called, the things it depends on will have run/started. Organizing things by dependency levels and only calling them in response to events can be a double-edged sword. On the one hand, it helps us optimize our systems by potentially (and usually) running the initialization scripts in parallel enabling us to ''use'' the multiple processors in our machines. On the other hand, apart from declared dependencies being fulfilled when the process starts, we cannot make any assumptions about what else is running which may make it harder to do things.
Though we know that both Upstart and System V init methods are used to initialize the system, it is difficult to outline what programs are run and when. As we are told in the ''Upstart Intro, Cookbook and Best Practices'' manual in the [http://upstart.ubuntu.com/cookbook/#system-phases ''System Phases''] section, Upstart does a lot of things before it starts the legacy System V init system and then does more things concurrently with System V init (System V init is started during the last step of the ''Startup Process'' phase, step 12). Until System V init is run, we cannot count on any initialization code being run in any kind of order (apart from declared dependencies and abstract phases being done before other abstract phases start) as we are explicitly told in the [http://upstart.ubuntu.com/cookbook/#ordering ''Ordering''] section of the ''Upstart Intro, Cookbook and Best Practices'' page. Once we ''are'' running System V init, we only know that the ''System V init scripts'' will be run in an order. Upstart works by sending out events as they are relevant and these events may or may not trigger scripts. Once again, we cannot rely upon the order in which events are emitted and, when two scripts are triggered by the same event, we cannot tell the order in which they are run. This all being said, there are still ''kind of'' steps in which things are done, those steps being the twelve outlined in that aforementioned ''Startup Process'' phase in that [http://upstart.ubuntu.com/cookbook/#system-phases ''System Phases''] section and the fact that before program X is called, the things it depends on will have run/started. Organizing things by dependency levels and only calling them in response to events can be a double-edged sword. On the one hand, it helps us optimize our systems by potentially (and usually) running the initialization scripts in parallel enabling us to ''use'' the multiple processors in our machines. On the other hand, apart from declared dependencies being fulfilled when the process starts, we cannot make any assumptions about what else is running which may make it harder to do things.
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
As we have seen, system initialization is not done in a deterministic manner. Once we are in the System V init world though, it is possible to say with certainty that if certain scripts are to be run others ''must have'' run before them. Using the information I found at the [http://www.marzocca.net/linux/bumdocs.html BUM] website (namely that things run in /etc/rcS.d are important as they are the first things run with runscripts) and the startup scripts listed in BUM ordered by 'run level S', I found that five major programs run during the bootup stage of System V init are: '''s30etc-setserial''' (but only if manual serial device configuration chosen, otherwise it happens later using the /etc/init.d/setserial file as reported in the s30etc-setserial script comments); '''S37apparmor'''; '''S47lm-sensors'''; '''S61svgalib-bin'''; '''X11-common''' (with the S70x11-common script calling /etc/init.d/x11-common). They are run in the order they are listed, but not necessarily one after the other (the first listed runs ''sometime before'' the second listed, etc.). I do not think that these could run in parallel because this particular distribution handles them by using run scripts, not using Upstart.
As we have seen, system initialization is not done in a deterministic manner. Once we are in the System V init world though, it is possible to say with certainty that if certain scripts are run then others ''must have'' run before them. Using the information I found at the [http://www.marzocca.net/linux/bumdocs.html BUM] website (namely that things run in /etc/rcS.d are important as they are the first things run with runscripts) and the startup scripts listed in BUM ordered by 'run level S', I found that five major programs run during the bootup stage of System V init are: '''s30etc-setserial''' (but only if manual serial device configuration chosen, otherwise it happens later using the /etc/init.d/setserial file as reported in the s30etc-setserial script comments); '''S37apparmor'''; '''S47lm-sensors'''; '''S61svgalib-bin'''; '''X11-common''' (with the S70x11-common script calling /etc/init.d/x11-common). They are run in the order they are listed, but not necessarily one after the other (the first listed runs ''sometime before'' the second listed, etc.). I do not think that these scripts run in parallel because this particular distribution handles them by using run scripts, not using Upstart.
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
Once described, it should be apparent why each process has been selected to run. ''Why'' they are run is because they have init scripts in the /etc/init folder that the System V init system runs after it is started. As for the source of the descriptions and most of the quotations below, they come from the BUM to which one can refer for more in-depth descriptions (with the ''advanced'' box checked, select the appropriate entry from the list in the ''startup and shutdown scripts'' tab).  
Once described, it should be apparent why each of those programs have been selected to run. How they get run is that they have init scripts in the /etc/init.d folder that the System V init system runs after it is started. As for the source of the descriptions and most of the quotations for the five programs elaborated upon below, they come from the BUM to which one can refer for more in-depth details (with the ''advanced'' box checked, select the appropriate entry from the list in the ''startup and shutdown scripts'' tab).  
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
Line 950: Line 950:
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
[http://www.lm-sensors.org '''S47lm-sensors'''] "is a hardware health monitoring package for Linux" with "utilities to read temperature/voltage/fan sensors". There also exists a 'sensors' man page that give some instruction as to how to use the 'sensors' command.  
[http://www.lm-sensors.org '''S47lm-sensors'''] "is a hardware health monitoring package for Linux" with "utilities to read temperature/voltage/fan sensors". There also exists a 'sensors' man page that gives some instruction as to how to use the 'sensors' command.  
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
Line 959: Line 959:
</p>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;
<p>&nbsp;&nbsp;&nbsp;&nbsp;
Eventually, all of the major processes in the distribution end up running through the previously outlined combinatorial manner of System V init run scripts and the event-based Upstart daemon.
Eventually, all of the major processes in the distribution end up running through the previously outlined combinatorial manner of System V init run scripts and the event-based Upstart daemon. By examining the process tree in the figure below, we can figure out how the processes that are only used for a user session are started. The quoted definitions come from the respective man pages. The ''''init'''' process "is the parent of all processes on the system, is executed by the kernel and is responsible for starting all other processes". At some point, ''''init'''' starts the ''''gdm-binary''''<ref name="gdmBinary">[http://www.linuxfromscratch.org/blfs/view/cvs/gnome/gdm.html As we see in the ''short descriptions'' section, gdm-binary "is the GNOME based login prompt".]</ref> process. "'''gdm'''" stands for "GNOME Display Manager. The display manager service manages the X servers running on the system, providing login and auto-login services" (quote from /etc/init/gdm.conf). ''''gdm-binary'''' then starts the ''''gdm-simple-slav'''' process, which in turn starts the ''''gdm-session-wor'''' process. The ''''gdm-session-wor'''' process then goes on to start the ''''gnome-session'''' process who then finally starts all of the processes only run for a user session (i.e. when a user logs in). "The '''gnome-session''' program starts up the GNOME desktop environment. This command is typically executed by your login manager (either gdm, xdm, or from your X startup scripts). It will load either your saved session, or it will provide a default session for the user as defined by the system administrator (or the default GNOME installation on your system)".
</p>
</p>
<!--
<!--
Line 967: Line 967:
<gallery perrow=5>
<gallery perrow=5>
File:ArtistXLiveDiskBootLog.png‎|'Screenshot' of the live disk boot log
File:ArtistXLiveDiskBootLog.png‎|'Screenshot' of the live disk boot log
File:AX logged-in user pstree.png|This is the process tree presented by ArtistX when a logged-in user runs the 'pstree' command
File:AX logged-in user pstree.png|This is the process tree presented by ArtistX when a logged-in user runs the 'pstree' command before running any other processes
</gallery>
</gallery>



Latest revision as of 03:20, 20 December 2011

Part I

Background

     ArtistX is a free Linux distribution whose aim is to "turn a common computer into a full multimedia production studio"<ref name="axhome" >ArtistX homepage</ref>. The current version (at the time of writing) is based on the Ubuntu release 'Natty 11.04'. With multimedia developers in mind, its distinguishing feature is that it "includes almost all of the free multimedia software available for the GNU/Linux platform" so that someone who regularly uses graphics or audio development tools is ready to start right out of the box<ref name="axhome" >ArtistX homepage</ref>. The easiest way to download it is to go to the Download section of their website but be prepared to receive a big file; the .iso file is 3.6GB. If the size deters you at all keep in mind that there are (according to their site) over 2500 packages of free multimedia software that have to be able to run on a live DVD.

     ArtistX seems to have undergone a couple of name changes since its inception by the Opensourcelab team from the Open Source Laboratory of Virtual Reality and Multi Media Park as we see from the earliest news releases on distrowatch<ref name=dwatch >ArtistX distrowatch news releases</ref>. Developed in Turin, Italy, Medialinux (which then became Mediainlinux) was based on Knoppix (with a couple of releases being based on Debian instead). The last release to use the name Mediainlinux was released in 2005 (this release was also the last to be based on Knoppix). It was not until 2007 that another release appeared, this time sporting the current name of ArtistX. The first few releases were based on Debian but since 2009 every release has been based on Ubuntu.

     Considering the type of company who originally developed this distribution it is easy to speculate why they decided to make it. If you were the head of a multimedia company, would you not want to have your developers working with high quality software? Would it not be great if that software was free and readily available?

  Currently it is unclear what company develops this distribution due to the following:

  • the website has no 'about' section;
  • there are no links to companies found on the website;
  • the 'Copyleft' at the bottom of the ArtistX page reads "Copyleft © 2011. ArtistX - Audio Graphic Video Multimedia Linux" which, along with the 'Donation' button on the page, may indicate it having branched off into an independent company now;
  • the person associated with the company through the distrowatch news releases<ref name=dwatch >ArtistX distrowatch news releases</ref> is a man named Marco Ghirlanda, who lists Project Manager and Team Leader at ArtistX as his current profession on his LinkedIn profile which also hints at an independent company now;
  • looking at Mr. Ghirlanda's work history we see that he worked at Virtual Reality and Multi Media Park until February 2006 which is about the time when he started his job at ArtistX (January 2006) which seems to indicate that ArtistX branched off into a child company;
  • further evidence that development of this product branched into its own company is that its predecessor in the distrowatch news release is Mediainlinux<ref name=dwatch >ArtistX distrowatch news releases</ref>;
  • branching off would explain the lapse between the last Mediainlinux release and the first ArtistX release.

Faced with this information one would tend to speculate that ArtistX is its own company that develops itself and is probably a child company of Virtual Reality and Multi Media Park. There is a small piece of evidence against this conclusion however and that is the lack of any link to each other or mention of each other on their webpages.

Installation/Startup

     For reasons of convenience I decided to install and test this operating system (OS) in a virtual machine (VM). Specifically, the setup was run from Oracle's VirtualBox version 4.1.2 from one of the computers in one of Carleton University 's many labs. The machine ran Windows 7 Enterprise with about 4 GB of Random Access Memory a.k.a. RAM (although the VM only got 1419 MB) and an external drive from which to allocate the 20 GB disk size I gave the VM. If you are wondering why I would give this VM 20 GB it is because the ArtistX website documentation recommends 512 MB RAM and 20 GB disk space for installation. As for the number of processors, I left it at the default of 1. Hardware virtualization was enabled, specifically "Enable VT-x/AMD-V" and "Enable Nested Paging".

     The installation process went fairly smooth with few hiccups. Once the VM was setup and the iso was loaded it presented a few options to select from. One small annoyance was that although I selected the 'install' option it seems to have ignored it and run from the live DVD anyway. It took about two to three minutes to boot up after which I ran the install executable on the desktop. The installation was straightforward and did not require much user interaction, probably the same amount as Ubuntu requires; it asks for your language, asks you whether it should use the whole hard drive or partition it, asks you which drive to use, asks you where you are and finally asks you to create a user account. From there it does all of the work.

     For me this whole process took just shy of an hour. I can only guess why it took so long but I'm sure the following affected it negatively: I enabled the boxes that asked if it should download updates from the web as it goes and then install some third party software; I was running other applications in Windows (namely a few instances of paint, Firefox and Microsoft Office Word); the VM had only one processor to work with; the amount of RAM was not very high; the university's internet probably was not very fast, as is often the case; the OS was being installed on an external hard drive attached via universal serial bus (USB).

     After installation succeeded it asked me to restart the machine, so I did. I found it odd that when it starts back up it asks to choose between the Ubuntu OS, Ubuntu in recovery mode, two memory tests and sometimes another option of 'Previous Linuxes'. I told it to boot the regular Ubuntu. It seems to have been the right choice since ArtistX loaded normally after that. Another oddity though is that after I logged in as the user for the first time it gave me an warning message saying the hardware could not run a program (Unity) and told me to choose 'Ubuntu classic' at the login screen. I closed the message box and it continued fine to the desktop. Unfortunately the initial installation did not install all of the updates. I was then presented with the option to update Ubuntu (which I declined) and to update, install and remove a bunch of random packages (although it told me it could not install all of them due to some error or other so it would do a partial install). This round of updates took a little more than an hour and another restart to complete and left my machine looking more like Ubuntu than it had initially. Finally, I installed the guest additions which thankfully took only a couple of minutes to install.

Basic Operation

     A typical use case for someone who installed this distribution would likely be some kind of multimedia development. This distribution is good for that in that the tools are readily available and easily accessible. In the bottom left corner there is a button that resembles the Windows 'Start' button. Opening this 'Start menu' we are presented with a list of topics (e.g. 'emulators', 'video', 'music', 'graphics') that expand when highlighted to further menus. For example the 'graphics' menu presents another menu with '2d', '3d' and 'view' options, each of which would then expand into lists of programs relevant to '2d' or '3d' graphics development or programs to view photos.

     Not being experienced in multimedia development, I found it hard to evaluate the choice of included programs. They are probably the best free software available but whether or not someone could use it for their job I could not really say. That being said it looks like they covered all of their bases (i.e. graphics, video, image and sound creating/editing) and offered a few choices to do the major things like editing.

     Being in the school's computer lab my computer did not have speakers so I was not about to try any programs dealing with audio. Also, dealing with a fresh install I did not have any files readily available for manipulation so really audio, video and image editing were out of the question. I figured the best type of program to test in my situation was a 3d modeling program. My biggest challenge though was that I have never done that before so I had a learning curve to overcome.

Me playing around with the 3d modelling program 'Bender'

     However it is not the modelling program I am reviewing, it is how easy and comfortable it was to use. Although I did not end up with any useful model due no doubt to my lack of experience, it was a relatively positive experience. The system in general did not always respond to my input but it did a pretty good job although the graphics would lag a little every now and then. One program in particular could not run because it did not have enough RAM. I am not sure if that is indicative of the system generally requiring more RAM than I gave it but it seemed to do a pretty good job with what it had.

Usage Evaluation

     Although I cannot speak for multimedia developers I think this distribution met its design goal of "turning a normal computer into a multimedia production studio"<ref name="axhome" >ArtistX homepage</ref>. It is easy to use and easy to navigate to the programs you would need. It offers a plethora of programs that seem to cover the necessary topics but I cannot vouch for how useful any of the programs would be to a real multimedia developer. I cannot vouch for performance either due to not having really stressed the OS in terms of device I/O which is just as big of a concern as having the right tools. After all, there is no point in having the right tools if you cannot use them. I do not know the internals of the system but I am thinking they have optimized for device I/O. Going back to performance, I have mentioned that I experienced lag and occasionally user input was ignored. It was fast but it could be better. It is possible that these issues are a result of running in a VM with about a quarter of the RAM used by a modern, non-virtualized machine.

     One thing in particular that I liked, stood out and is different from other Linux distributions I have seen is that the look and feel (especially on the desktop) resembles Windows. I think this was done to ease the switch to this Linux development environment from a Windows development environment which is important because that is probably what their target consumer is going to be doing.

     To summarize, although I am not experienced in the target field, I think that this distribution met its goals and that it is definitely worth looking into if you are a multimedia developer. After investing a few hours you may make a decision that will save you quite a bit of money. I think the biggest thing to look at is whether or not the given tools will be sufficient for your needs. I do not think a serious developer is going to be working inside a VM so the VM performance hit will probably not matter, but even if the issues were not due to the VM and the limited available RAM, they did not seem bad enough in my limited interaction to be a deterrent.

Summary

     Worth looking into if you are a multimedia developer despite the iso size and consequently the potentially long download time and despite the long installation time.

Part II

Software Packaging

     As mentioned, this distribution is based off of Ubuntu which is itself based off of Debian so it would be no surprise to find that the software packaging is done in the same manner. I cannot say for sure, but from what I can gather it seems that this is the case. Investigating the distribution, I found three utilities to manage packages with a Graphical User Interface (GUI): the 'Update Manager', which appears to deal only with updating packages, the 'Synaptic Package Manager', which deals with installing, updating and removing packages, and 'Aptitude' which does the same thing (I threw Aptitude in as a GUI because although it is accessed from the terminal, once started you can navigate the program with the mouse). As for a command-line utility this distribution comes with, as is implied by the presence of Synaptic and Aptitude, the Advanced Packaging Tool (APT) and therefore also the dpkg tool. Although Synaptic and Aptitude can be used with RPM packages, all evidence, especially ArtistX's lineage, leads me to conclude that this distribution uses the Debian package management system based on the 'deb' package format, which is a binary package format opposed to a source package format<ref name="WikipediaSynaptic" >Wikipedia Synaptic description</ref><ref name="WikipediaAptitude" >Wikipedia Aptitude description</ref>.

     Using the GUI utilities makes it incredibly easy to see what packages are installed (except using the Update Manager which just tells you what can be updated). In Synaptic, you simply need to open the program and select the 'Installed' option from the menu on the left which will then populate the list on the right whose items will all have those green rectangles to the left of their name(the green rectangle means they are installed). With Aptitude it is just as easy (although maybe not as pleasing to the eyes) but the lists are more specific. To see them you run the

aptitude

command in a terminal, select 'Installed Packages', then the type of package you want to see, and finally you select to see the list from a few options differing in whether or not the packages are supported and whether or not they are free. Using the command-line utilities it is just as simple to obtain a list of installed packages. Using dpkg, run

dpkg -l

or

dpkg --get-selection 

if you want something less descriptive. I could not find a method to use 'APT' to get a listing but I figure that it is because it would be redundant; APT is built on dpkg which already has this functionality so I guess they decided that people will just have to use dpkg<ref name="WikipediaAPT" >Wikipedia APT description</ref>.

     Using Synaptic to install and remove packages is quite easy; if you click the rectangle to the left of the package name you will be given a list of appropriate options such as marking for installation or removal of which you would select what you want to do; you then click the 'Apply' button at the top of the window (the button with the green checkmark), then confirm what you want to add/remove. Note 'mark for removal' and 'mark for complete removal' both remove the package, but the complete removal will remove all files related to the package like configuration files and user-created data. Using Aptitude to install and remove packages is pretty straightforward but you have to select the 'Become root' option from the 'Actions' menu to do it; to add a package, you navigate to it from the menu/listings and select it for installation (most easily done by using the '+' button); to remove packages you navigate to them and deselect them (most easily done using '-' button); when you have finished selecting/deselecting other packages, you press 'g' to actually add or remove the packages. Note that these things can also be done through the menu at the top, but it is easier to do them with the keyboard.

     Using APT to add and remove packages is also easy; to add a package, run

apt-get install package name 

Note that

apt-get install package name-

will remove package name. To remove packages fully (even configuration files) run

apt-get --purge remove package name  

Note that

apt-get install package name+

will add package name. To leave the configuration files in, do not use the purge option<ref name="DebianAPT" >Debian APT Obsolete Documentation (the reported APT instructions still work at time of writing though)</ref>. The harder part would be finding the package you want to install, but the available packages can be listed with

apt-cache pkgnames<ref name="APTCache" >How to use APT to list available packages</ref>

For adding and removing using dpkg, use

dpkg -i package.deb 

to add and

dpkg --remove package  

or

dpkg --purge package 

to remove. Note that the package must already be downloaded for you to be able to install it as reported in section 14.5 of Debian Tutorial (Obsolete Documentation)Chapter 14 - Removing and installing software (although the documentation is marked as obsolete, the information about dpkg has proven accurate during my investigation). Refer to The Debian GNU/Linux FAQ Chapter 8 - The Debian package management tools for more details on dpkg.

     I would say the distribution offers an extensive catalog of applications. It does not cover everything, but it covers a lot. Let us remember that being lightweight is not really one of the design goals of this distribution, but this distribution does have a design goal. It is not meant to do everything. As such, it does not have many math applications, or physics simulators, or programming development environments but it is definitely not running on the bare-minimum! It's software encompasses multimedia (including photography and torrent applications), game emulators, access to the internet and browsers, e-mail applications, space simulators, geometry programs, calculators, text editors, printers/scanners, Linux terminal and even Windows software through 'Wine'. In other words, I would say that this distribution has a broad catalog of software as it does not not have one. It is not running on just the essentials and it is not particularly specially optimized for performance. In my opinion, something that comes installed with only basic utilities for user interaction (essentially a terminal, a web browser, a text editor and maybe a calculator or paint), something with as few packages as a user will allow would be a distribution that does not have an extensive catalog. As for the actual number of installed packages, I cannot say for sure as Synaptic and Aptitude report different numbers; Synaptic reports 6110 installed and Aptitude reports 3118 actual packages and 3857 virtual packages (according to Aptitude's menu description, 'virtual packages do not exist, they are names other packages use to require or provide some functionality').

Major Package Versions

Package Information For Some of the Major Software Packages Included as Part of the Standard Install

Package

Version

Upstream Source URL According to the Specified Website or Search Pattern (If None Specified, the Information Came From Synaptic)

How I Gathered This Information

GNU/Linux kernel 2.6.38-12-generic

2.6.38-12.51-Ubuntu

http://us.archive.ubuntu.com/ubuntu/dists/natty-security/main/, (Google) http://www.kernel.org/

Using the uname command together with Synaptic

libc6

2.13-0ubuntu13

(Synaptic)http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (apt-cache show libc6, homepage) http://www.eglibc.org/home

Using the lab 4 solutions together with Synaptic

csh

20070713-2ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/universe/ (Wikipedia says it is now just the same as tcsh and I cannot find any source for it past 1980...)

Synaptic

tcsh

6.17.02-4ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/universe/, (Google) ftp://ftp.astron.com/pub/tcsh/

Synaptic

bash

4.2-0ubuntu3

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://ftp.gnu.org/gnu/bash/

Synaptic

mono-csharp-shell

2.6.7-5ubuntu3

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://www.go-mono.com/mono-downloads/download.html

Synaptic

zsh

4.3.11-4ubuntu2.is.3ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh

Synaptic

dash

0.5.5.1-7.2ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://gondor.apana.org.au/~herbert/dash/files/, http://git.kernel.org/?p=utils/dash/dash.git;a=summary

Synaptic

busybox-static

1:1.17.1-10ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://busybox.net/downloads/

Synaptic

busybox-initramfs

1:1.17.1-10ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://busybox.net/downloads/

Synaptic

binutils

2.21.0.20110327-2ubuntu3

http://us.archive.ubuntu.com/ubuntu/dists/natty-updates/main/, (Google) http://ftp.gnu.org/gnu/binutils/

Synaptic

valgrind

1:3.6.1-0ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://valgrind.org/downloads/

Synaptic

subversion

1.6.12dfsg-4ubuntu2.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-security/main/, (Google) http://subversion.apache.org/download/

Synaptic

gdb

7.2-1ubuntu11

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://www.gnu.org/software/gdb/download/

Synaptic

gcc-4.5

4.5.2-8ubuntu4

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://gcc.parentingamerica.com/releases/

Synaptic and 'gcc --version'

dbus

1.4.6-1ubuntu6.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-security/main/, (Wikipedia) http://www.freedesktop.org/wiki/Software/dbus#Download

Synaptic

dpkg

1.16.0~ubuntu7.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-updates/main/, (Wikipedia) http://packages.debian.org/changelogs/pool/main/d/dpkg/dpkg_1.16.1.1/changelog

Synaptic

apt

0.8.13.2ubuntu4.2

http://us.archive.ubuntu.com/ubuntu/dists/natty-security/main/, (Wikipedia) http://anonscm.debian.org/loggerhead/apt/apt/

Synaptic

synaptic

0.75.1ubuntu2

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://download.savannah.gnu.org/releases/synaptic/

Synaptic

rpm

4.8.1-6ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://rpm.org/wiki/Download

Synaptic

alien

8.83

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://kitenet.net/~joey/code/alien/

Synaptic

thunderbird

3.1.15+build1+nobinonly-0ubuntu0.11.04.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-security/main/, (Wikipedia) http://hg.mozilla.org/comm-central/tags, http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/

Synaptic

konqueror

4:4.6.5-0ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty-updates/main/, (Wikipedia) The Konqueror official site has a link to 'get source code', but it is broken. It should be somewhere in the recesses of this page though: https://projects.kde.org/projects

Synaptic

firefox

7.0.1+build1+nobinonly-0ubuntu0.11.04.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-security/main/, (Wikipedia) http://releases.mozilla.org/pub/mozilla.org/firefox/releases/

Synaptic

procps

1:3.2.8-10ubuntu3

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://procps.cvs.sourceforge.net/procps/procps/

Synaptic

coreutils

8.5-1ubuntu6

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://savannah.gnu.org/projects/coreutils/, http://ftp.gnu.org/gnu/coreutils/

Synaptic

alsa-base

1.0.24+dfsg-0ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://www.alsa-project.org/main/index.php/Main_Page

Synaptic

alsa-utils

1.0.24.2-0ubuntu6

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://www.alsa-project.org/main/index.php/Main_Page

Synaptic

cdparanoia

3.10.2+debian-10

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://xiph.org/paranoia/index.html

Synaptic

phonon

4:4.7.0really4.5.0-0ubuntu3

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://anonscm.debian.org/gitweb/?p=pkg-kde/kde-req/phonon.git

Synaptic

ffmpeg

4:0.6.2-1ubuntu2+codecs1~maverick3

lp-ppa-kxstudio-team/maverick (<-- I do not know how that is supposed to link anywhere, but I think it is from https://launchpad.net/), (Google) http://ffmpeg.org/download.html

Synaptic

karbon

1:2.3.3-0ubuntu4

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://www.calligra-suite.org/get-calligra/ (it seems you need to get the whole Calligra suite)

Synaptic

blender

2.58.1+svn38122~natty1

lp-ppa-cheleb-blender-svn/natty (<-- I do not know how that is supposed to link anywhere, but it looks like it is from https://launchpad.net/), (Google) http://www.blender.org/download/source-code/

Synaptic

contextfree

2.2+dfsg1-2

http://us.archive.ubuntu.com/ubuntu/dists/natty/universe/, (Google) http://www.contextfreeart.org/mediawiki/index.php/Download_page

Synaptic

g3dviewer

0.2.99.5~svn130-1

http://us.archive.ubuntu.com/ubuntu/dists/natty/universe/, (Google) https://launchpad.net/ubuntu/+source/g3dviewer/0.2.99.5~svn130-1

Synaptic

gif2png

2.5.2-2

http://us.archive.ubuntu.com/ubuntu/dists/natty/universe/, (Google) http://www.catb.org/~esr/gif2png/

Synaptic

gtkmorph

1:20090926

http://us.archive.ubuntu.com/ubuntu/dists/natty/universe/, (Google) http://xmorph.sourceforge.net/, https://launchpad.net/ubuntu/+source/xmorph/1:20090926

Synaptic

upstart

0.9.7-1.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-proposed/main/, (Google) http://upstart.ubuntu.com/download.html

Synaptic

cinelerra

1:2.1.5-0.16~ppa1~natty5

https://launchpad.net/~cinelerra-ppa, (Google) http://heroinewarrior.com/cinelerra.php#download, http://cinelerra.org/

Synaptic

libgtk-3-0

3.0.8-0ubuntu1

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Google) http://git.gnome.org/browse/gtk+

Synaptic

metacity

1:2.30.3-0ubuntu8

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://ftp.acc.umu.se/pub/gnome/sources/metacity/

Synaptic

libqtscript4-gui

0.1.0-3ubuntu3

http://us.archive.ubuntu.com/ubuntu/dists/natty/main/, (Wikipedia) http://qt.nokia.com/downloads/downloads#qt-lib, http://qt.gitorious.org/qt, http://qt.gitorious.org/qt/qtscript/trees/master (<-- probably somewhere there)

Synaptic

qsynth

0.3.5-1rebuild1

http://us.archive.ubuntu.com/ubuntu/dists/natty/universe/, (Google) http://sourceforge.net/projects/qsynth/

Synaptic

x11-common

1:7.6+4ubuntu3.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-updates/main/, (X.org) I presume this package is a library in the whole X system package found here: http://www.x.org/wiki/Releases?action=show&redirect=XorgReleases

Synaptic

xorg

1:7.6+4ubuntu3.1

http://us.archive.ubuntu.com/ubuntu/dists/natty-updates/main/, (Google) http://www.x.org/wiki/, http://www.x.org/wiki/Releases?action=show&redirect=XorgReleases

Synaptic

 

Let it be stated now that I do not know how to determine whether or not a package has been modified by the distribution authors nor do I know how to determine how heavily it has changed from it's release, short of actually comparing the package source files if they are available.

More Information Regarding Selected Packages
alsa-utils

According to the git release tag, the unmodified version of the included package of alsa-utils was committed (and I suppose released) Mon, 31 Jan 2011 at 14:19:55 and it seems to be the latest stable release according to the git summary. I do not see any evidence leading me to conclude that the ArtistX team changed this package, but the Ubuntu team may have seeing how the version identifier contains the word 'ubuntu' in it. According to Wikipedia, the alternative to using ALSA would be Open Sound System (OSS) but the Linux people have decided to deprecate OSS and use ALSA as the default sound API<ref name="WikipediaALSA" >Wikipedia ALSA article</ref><ref name="WikipediaOSS" >Wikipedia OSS article</ref>. ArtistX probably just accepted this default as it shows every sign of being the way of the future.

cdparanoia

According to the CDParanoia website, the unmodified version of the included package was released on September 11, 2008 which, as seen on Wikipedia, is the last stable release<ref name="WikipediaCDParanoia" >Wikipedia CDParanoia article</ref>. I do not see any evidence leading me to conclude that the ArtistX team changed this package, but the Debian team may have judging by the fact that the version identifier contains the word 'debian' in it. Being a multimedia-based distribution, it is easy to see why this package made the final cut as a CD-ripper is most likely something the target user will want. As for why it was chosen opposed to something else, my best guess would be that this was a default of the Ubuntu version that ArtistX was built on and either it sufficed or, if there are other CD-rippers (I was not able to look through all of the packages), they wanted to provide an alternative.

ffmpeg

It is hard to tell from the git summary what the last stable release was. It would appear that numbers are not significant in indicating age as release 0.5.5 was the last stable release at the time of writing, having been committed November 6, 2011, but the version included was based on version 0.6.2. The unmodified version of the included package was released around March 18, 2011 as that is the earliest mention of the version number 0.6.2. The Ubuntu team probably altered this package as their name appears in the package identifier. As to why it was included, it looks like a powerful video production tool and as such is definitely something the target users might want. I do not know why something else was not chosen but I would once again have to guess that it was part of the default Ubuntu package that ArtistX was built on and they decided to just keep it. However, the package name has the name 'maverick' in it which may indicate that the ArtistX team actively took it from the 'Maverick Meerkat' Ubuntu release opposed to the 'Natty Narwhal' release on which the distribution is based.

karbon

Once again we find that the Ubuntu team probably altered this package as their name is included in the package identifier. It seems that karbon comes packaged in the Calligra suite. The Calligra suite looks like a very useful set of tools for multimedia developers in that it comes with graphics editors but would also be very useful for preparing presentations and reports, which the developers probably have to do. According to the file offered for download as the latest release, the unmodified version of the package appears to be up to date with the last stable release. According to Wikipedia at the time of this writing this last release was on March 1, 2011. Note that there is a preview/beta release for the Calligra suite which is versioned as 2.4 beta 3.

blender

There is no version 2.58.1 in the release listing, but there is a 2.58a which I will take as synonymous. Version 2.58a was released July 8, 2011 and the most recent version at the time of writing is 2.60a which was released October 24, 2011. I once again infer that the Ubuntu team altered the original package because the distribution nickname 'natty' is in the version identifier. This tool was selected for inclusion in ArtistX because it is evidently really good at what it does and is capable of producing sophisticated, quality results as we get an indication of by visiting either the Wikipedia article about them or their own website.

qsynth

The best indication I can find is that the installed version was released April 27, 2010 and the latest stable version (0.3.6) was released April 07, 2011. None of the available download links have the same version identifier as we see in this distribution. The only clue we have is that the identifier has 'rebuild' in it. I have not come across an 'ArtistX' identifier, but I have seen that Debian and Ubuntu use their names in the identifiers of packages they have altered so this could mean that the ArtistX team altered this package. It is also possible though that some third-party altered it and it was just included. As an audio-processing/manipulation GUI, it is only natural for the ArtistX team to ensure inclusion.

gtkmorph

Officially, the last stable release of the original package was version 20060817 July 18, 2011 and the included package was modified by the Ubuntu team for their releases. According to the Ubuntu package overview, the included package was last released by Ubuntu as unstable on November 06, 2009 (note xmorph contains gtkmorph). It would appear that Ubuntu included this package and ArtistX just left it in because it is a useful image manipulating tool (it warps pictures).

cinelerra

As reported by the HeroineWarrior download site, the latest release was version 4.3 on August 8, 2011. As stated in the launchpad page the included version is from June 02, 2011 and gives the impression that it has been modified by the Ubuntu team. One of the Cinelerra sites boasts that it ' is the most advanced non-linear video editor and compositor for Linux ' and screenshots hint that it is an effective video editor so I presume the ArtistX team left it in from the Ubuntu build because it helps them complete their multimedia package.

phonon

The Ubuntu change log from Launchpad shows that the installed version is from Monday, April 04, 2011 and is by all appearances based on version 4.5.0 of KDE 4. Note that phonon comes packaged with KDE. The latest stable release was 4.8 which was released on Thursday, October 27, 2011 according to the KDE release schedule. The Ubuntu team modified the original release to use it with their 'natty narwhal' release as we can figure out due to them having their own aforementioned development branch on Launchpad. The original ArtistX install had a KDE desktop environment (which explains why a lot of the other found packages are included because they are also KDE products e.g. Calligra suite) and phonon is a multimedia API included in the KDE package. I guess it was just easier to include the sufficient KDE package than to sift through all of the variant candidates and choose one.

gif2png

According to the package's release history, version 2.5.2 was released November 11, 2009 and the most recent version is 2.5.4 which was released November 24, 2010. We see on the Ubuntu Launchpad changelog that the included version is not stable and was released Monday, January 18, 2010. They have since created an updated unstable version (2.5.4-2) which was released Saturday, April 30, 2011. It is pretty clear that Ubuntu modified the original package as they have a development branch for it. It looks as though when Ubuntu was developing the 'natty narwhal' release, 2.5.2 was the last released version and ArtistX inherited it. This is a useful conversion tool for image files and since things seem to be moving away from the gif format and towards the png format (the Wikipedia png article reports that even the World Wide Web Consortium is pushing the move to png) it makes sense to have this tool. With an ever-increasing amount of multimedia content finding its way onto websites, the following aspect of the package description (as reported on the aforementioned Launchpad changelog) seems like an attractive feature as web developers maintain their websites: the package ' also contains the script "web2png" which converts entire websites from GIF to PNG and updates the HTML accordingly. '

Initialization

     I have concluded that the distribution is started using a combination of Upstart and run-level System V init run scripts. My conclusion is derived from the fact that although Upstart is included as a package, not all scripts have been converted to Upstart<ref name="upstartSysVcooperation" >For more insight into how Upstart and System V init scripts work together, see https://help.ubuntu.com/community/UbuntuBootupHowto as well as the upstart man pages ('man upstart'). For a brief introduction to Upstart, give https://www.linux.com/learn/tutorials/404619-manage-system-startup-and-boot-processes-on-linux-with-upstart a try.</ref>. The way I determined that not all scripts had been converted was that some particular scripts in the /etc/init.d folder actually have specialized shell scripts and are not instead symlinks to "/lib/init/upstart-job" (according to that 'upstart-job' script, the path mentioned is a "Symlink target for initscripts that have been converted to Upstart."). Further evidence that a combination of startup methods is used is that the file '/etc/inittab', which was the configuration file used by System V init, is missing and there are a lot of configuration files in the '/etc/init' folder (which is where Upstart reads it's configuration from)<ref name="inittabMan" >'inittab' man page</ref>. Another useful installed package is the 'Boot-Up Manager' (BUM) package which is a graphical run-script manager. BUM is smart enough to use Upstart when necessary. I determined this by running a simple experiment with a colleague of mine, Nick Porter, as follows: we used the command

initctl list

in the terminal to force Upstart to list all of the services it was managing as well as their states; choosing one, we told Upstart to stop it using

sudo service xxx stop

and verified it's state by using

initctl list

once again; we then checked BUM and confirmed that it was disabled; next we told BUM to activate xxx which it reported as successful and updated it's list of running services; we finally checked

initctl list

one last time and found that xxx was in fact running again.

     Though we know that both Upstart and System V init methods are used to initialize the system, it is difficult to outline what programs are run and when. As we are told in the Upstart Intro, Cookbook and Best Practices manual in the System Phases section, Upstart does a lot of things before it starts the legacy System V init system and then does more things concurrently with System V init (System V init is started during the last step of the Startup Process phase, step 12). Until System V init is run, we cannot count on any initialization code being run in any kind of order (apart from declared dependencies and abstract phases being done before other abstract phases start) as we are explicitly told in the Ordering section of the Upstart Intro, Cookbook and Best Practices page. Once we are running System V init, we only know that the System V init scripts will be run in an order. Upstart works by sending out events as they are relevant and these events may or may not trigger scripts. Once again, we cannot rely upon the order in which events are emitted and, when two scripts are triggered by the same event, we cannot tell the order in which they are run. This all being said, there are still kind of steps in which things are done, those steps being the twelve outlined in that aforementioned Startup Process phase in that System Phases section and the fact that before program X is called, the things it depends on will have run/started. Organizing things by dependency levels and only calling them in response to events can be a double-edged sword. On the one hand, it helps us optimize our systems by potentially (and usually) running the initialization scripts in parallel enabling us to use the multiple processors in our machines. On the other hand, apart from declared dependencies being fulfilled when the process starts, we cannot make any assumptions about what else is running which may make it harder to do things.

     As we have seen, system initialization is not done in a deterministic manner. Once we are in the System V init world though, it is possible to say with certainty that if certain scripts are run then others must have run before them. Using the information I found at the BUM website (namely that things run in /etc/rcS.d are important as they are the first things run with runscripts) and the startup scripts listed in BUM ordered by 'run level S', I found that five major programs run during the bootup stage of System V init are: s30etc-setserial (but only if manual serial device configuration chosen, otherwise it happens later using the /etc/init.d/setserial file as reported in the s30etc-setserial script comments); S37apparmor; S47lm-sensors; S61svgalib-bin; X11-common (with the S70x11-common script calling /etc/init.d/x11-common). They are run in the order they are listed, but not necessarily one after the other (the first listed runs sometime before the second listed, etc.). I do not think that these scripts run in parallel because this particular distribution handles them by using run scripts, not using Upstart.

     Once described, it should be apparent why each of those programs have been selected to run. How they get run is that they have init scripts in the /etc/init.d folder that the System V init system runs after it is started. As for the source of the descriptions and most of the quotations for the five programs elaborated upon below, they come from the BUM to which one can refer for more in-depth details (with the advanced box checked, select the appropriate entry from the list in the startup and shutdown scripts tab).

     s30etc-setserial "controls the configuration of serial ports". The 'setserial' man page's overview describes it as "a program designed to set and/or report the configuration information associated with a serial port...".

     S37apparmor "provides the system initialization scripts needed to use the AppArmor Mandatory Access Control system". As seen on the AppArmor website, AppArmor is a "Linux application security system" whose "security policies completely define what system resources individual applications can access, and with what privileges". The man page definition for 'apparmor' also similarly describes it as a "kernel enhancement to confine programs to a limited set of resources".

     S47lm-sensors "is a hardware health monitoring package for Linux" with "utilities to read temperature/voltage/fan sensors". There also exists a 'sensors' man page that gives some instruction as to how to use the 'sensors' command.

     S61svgalib-bin are "console Super Video Graphics Array (SVGA) display utilities" that "provide graphics capabilities to programs running on the system console, without going through the X Window System. It uses direct access to the video hardware...". The corresponding man page can be summoned with the man-parameter name 'svgalib'.

     X11-common "contains the filesystem infrastructure required for further installation of the X Window System in any configuration; it does not provide a full installation of clients, servers, libraries, and utilities required to run the X Window System". The corresponding man page is the man page describing the X windows system and can be accessed by using 'x' as the man-parameter name.

     Eventually, all of the major processes in the distribution end up running through the previously outlined combinatorial manner of System V init run scripts and the event-based Upstart daemon. By examining the process tree in the figure below, we can figure out how the processes that are only used for a user session are started. The quoted definitions come from the respective man pages. The 'init' process "is the parent of all processes on the system, is executed by the kernel and is responsible for starting all other processes". At some point, 'init' starts the 'gdm-binary'<ref name="gdmBinary">As we see in the short descriptions section, gdm-binary "is the GNOME based login prompt".</ref> process. "gdm" stands for "GNOME Display Manager. The display manager service manages the X servers running on the system, providing login and auto-login services" (quote from /etc/init/gdm.conf). 'gdm-binary' then starts the 'gdm-simple-slav' process, which in turn starts the 'gdm-session-wor' process. The 'gdm-session-wor' process then goes on to start the 'gnome-session' process who then finally starts all of the processes only run for a user session (i.e. when a user logs in). "The gnome-session program starts up the GNOME desktop environment. This command is typically executed by your login manager (either gdm, xdm, or from your X startup scripts). It will load either your saved session, or it will provide a default session for the user as defined by the system administrator (or the default GNOME installation on your system)".

References

<references />