Difference between revisions of "COMP 3000 2011 Report: Dream Studio"

From Soma-notes
Jump to navigation Jump to search
Line 4: Line 4:
[[File:pic.png|200px|thumb|right|Dream Studio Desktop.]]
[[File:pic.png|200px|thumb|right|Dream Studio Desktop.]]


<p>[http://www.dream.dickmacinnis.com/forum/ Dream Studio] is an Ubuntu based distribution that provides users tools to create stunning graphics, music, videos and websites. It is developed and maintained by Dream Dickmacinnis, who originally designed this distribution for his work. The distribution can be downloaded on the harddrive or run from a DVD and USB flash drive. It takes advantage of the Ubuntu base and does not modify the default packages provided by Ubuntu for ease of system updates and maintaineance. The primary target audience for this distribution are designers, musicians or anyone developing mutlimedia (video, audio etc.) or design products. <br /></p>
<p>[http://www.dream.dickmacinnis.com/forum/ Dream Studio] is an Ubuntu based distribution that provides users tools to create stunning graphics, music, videos and websites. It is developed and maintained by Dick MacInnis, who originally designed the distribution for his work. The distribution can be installed to the hard drive, run from a DVD or a USB flash drive. It takes advantage of the Ubuntu base and does not modify the default packages provided by Ubuntu for ease of system updates and maintenance. The primary target audience for this distribution are designers, musicians or anyone developing multimedia (video, audio etc.) or design products. <br /></p>
<h1>Part II</h1>
<h1>Part II</h1>
<h2>Software  Packaging </h2>
<h2>Software  Packaging </h2>
<p>Dream Studio uses Ubuntu&rsquo;s  package management utilities to package and distribute software. Software is  distributed in package files with a .deb extension to software repositories, and  Dream Studio can download and install the software from these software  repositories using a package management utility. Since Ubuntu uses Debian&rsquo;s  package management utilities, the base package management utility of Dream  Studio is dpkg. Dream Studio has the following package management utilities:</p>
<p>Dream Studio uses Ubuntu&rsquo;s  package management utilities to package and distribute software. Software is  distributed in package files with a .deb extension to software repositories, and  Dream Studio can download and install the software from these software  repositories using a package management utility. Since Ubuntu uses Dobbin&rsquo;s  package management utilities, the base package management utility of Dream  Studio is dpkg. Dream Studio has the following package management utilities:</p>
<ul>
<ul>
   <li><strong>dpkg: </strong>dpkg is the base software of Dream  Studio&rsquo;s package management system. It is a low-level package management  utility that can be used to create, install and remove packages. dpkg cannot  get packages from remote repositories or manage complex package dependencies,  therefore it is recommended that a higher level utility such as APT be used to  install, update and remove packages in Dream Studio.</li>
   <li><strong>dpkg: </strong>dpkg is the base software of Dream  Studio&rsquo;s package management system. It is a low-level package management  utility that can be used to create, install and remove packages. dpkg cannot  get packages from remote repositories or manage complex package dependencies,  therefore it is recommended that a higher level utility such as APT be used to  install, update and remove packages in Dream Studio.</li>
Line 21: Line 21:
   <li><strong>Aptitude: </strong>The following steps  describe how to obtain a list of installed software using Aptitude:
   <li><strong>Aptitude: </strong>The following steps  describe how to obtain a list of installed software using Aptitude:
     <ol>
     <ol>
       <li>Type aptitude in the command line</li>
       <li>Type aptitude in the command line.</li>
       <li>Select the option &ldquo;Installed Packages&rdquo; from the menu</li>
       <li>Select the option &ldquo;Installed Packages&rdquo; from the menu.</li>
     </ol>
     </ol>
   </li>
   </li>
   <li><strong>Ubuntu Software Center: </strong>The  following steps describe how to obtain a list of installed software using  Ubuntu Software Center:
   <li><strong>Ubuntu Software Center: </strong>The  following steps describe how to obtain a list of installed software using  Ubuntu Software Center:
     <ol>
     <ol>
       <li>Select &ldquo;Ubuntu Software Center&rdquo; from the Applications menu in the  top menu bar</li>
       <li>Select &ldquo;Ubuntu Software Center&rdquo; from the Applications menu in the  top menu bar.</li>
       <li>Select the option &ldquo;Installed Software&rdquo; from the left pane in  Ubuntu Software Center. List of installed software will be displayed in the  right pane.</li>
       <li>Select the option &ldquo;Installed Software&rdquo; from the left pane in  Ubuntu Software Center. List of installed software will be displayed in the  right pane.</li>
     </ol>
     </ol>
Line 33: Line 33:
   <li><strong>Synaptic Package Manager: </strong>The  following steps describe how to obtain a list of installed software using the  Synaptic Package Manager:
   <li><strong>Synaptic Package Manager: </strong>The  following steps describe how to obtain a list of installed software using the  Synaptic Package Manager:
     <ol>
     <ol>
       <li>Open the Synaptic Package Manager by selecting it from the  menu  System &gt; Administration in the  top menu bar </li>
       <li>Open the Synaptic Package Manager by selecting it from the  menu  System &gt; Administration in the  top menu bar.</li>
       <li>Select the &ldquo;Status&rdquo; button from the Synaptic Packager Manager</li>
       <li>Select the &ldquo;Status&rdquo; button from the Synaptic Packager Manager.</li>
       <li>Select &ldquo;Installed&rdquo; from the menu located at the top of the buttons</li>
       <li>Select &ldquo;Installed&rdquo; from the menu located at the top of the buttons.</li>
     </ol>
     </ol>
   </li>
   </li>
Line 43: Line 43:
<p><strong>APT: </strong>Search for a package by typing the  following command in the terminal: apt-cache search &lt;search term&gt;.  Example: To search for a graphics program/package type the following command in  the terminal: apt-cache search &lt;graphics program&gt;. Select the package  name from the search results and then use the commands below to install or remove  the package if is already installed:</p>
<p><strong>APT: </strong>Search for a package by typing the  following command in the terminal: apt-cache search &lt;search term&gt;.  Example: To search for a graphics program/package type the following command in  the terminal: apt-cache search &lt;graphics program&gt;. Select the package  name from the search results and then use the commands below to install or remove  the package if is already installed:</p>
<ul>
<ul>
   <li><strong>Installing  a package:</strong> Type the following command in the terminal to install a given package:  apt-get install &lt;package_name&gt;. Example: Use the command apt-get install graphicsprorgram to install the package named grapicsprogram.<br />
   <li><strong>Installing  a package:</strong> Type the following command in the terminal to install a given package:  apt-get install &lt;package_name&gt;. Example: Use the command apt-get install graphics program to install the package named graphics program.<br />
   </li>
   </li>
   <li><strong>Removing  a package:</strong> Type the following command in the terminal to remove a given package:  apt-get remove &lt;package_name&gt;. Example: Use the command apt-get remove graphicsprorgram to remove the package named grapicsprogram. The command apt-get purge  &lt;package_name&gt; can be used to remove a package and its configuration  files. </li>
   <li><strong>Removing  a package:</strong> Type the following command in the terminal to remove a given package:  apt-get remove &lt;package_name&gt;. Example: Use the command apt-get remove graphics program to remove the package named graphics program The command apt-get purge  &lt;package_name&gt; can be used to remove a package and its configuration  files. </li>
</ul>
</ul>
<p><strong>Aptitude: </strong>Open aptitude by the  typing the command aptitude in the terminal</p>
<p><strong>Aptitude: </strong>Open aptitude by the  typing the command aptitude in the terminal</p>
Line 51: Line 51:
   <li><strong>Installing a package:</strong> The  steps below describe how to select and install a package using aptitude:  
   <li><strong>Installing a package:</strong> The  steps below describe how to select and install a package using aptitude:  
     <ol>
     <ol>
       <li>Select the &ldquo;Not Installed Packages&rdquo; from the menu at the top</li>
       <li>Select the &ldquo;Not Installed Packages&rdquo; from the menu at the top.</li>
       <li>Select a category from the displayed list</li>
       <li>Select a category from the displayed list.</li>
       <li>Select a package repository from the displayed list</li>
       <li>Select a package repository from the displayed list.</li>
       <li>Browse the displayed list of available packages and mark a package  to be installed by pressing the &ldquo;+&rdquo; key</li>
       <li>Browse the displayed list of available packages and mark a package  to be installed by pressing the &ldquo;+&rdquo; key.</li>
       <li>Press the &ldquo;g&rdquo; key twice to install the selected package</li>
       <li>Press the &ldquo;g&rdquo; key twice to install the selected package.</li>
     </ol>
     </ol>
   </li>
   </li>
   <li><strong>Removing a package: </strong>The steps  below describe how to select and remove a package using aptitude:
   <li><strong>Removing a package: </strong>The steps  below describe how to select and remove a package using aptitude:
     <ol>
     <ol>
       <li>Select the &ldquo;Installed Packages&rdquo; from the menu at the top</li>
       <li>Select the &ldquo;Installed Packages&rdquo; from the menu at the top.</li>
       <li>Select a category from the displayed list</li>
       <li>Select a category from the displayed list.</li>
       <li>Select a package repository from the displayed list</li>
       <li>Select a package repository from the displayed list.</li>
       <li> Browse the displayed list  of available packages and mark a package to be removed by pressing the &ldquo;-&rdquo; key</li>
       <li> Browse the displayed list  of available packages and mark a package to be removed by pressing the &ldquo;-&rdquo; key.</li>
       <li>Press the &ldquo;g&rdquo; key twice to remove the selected package</li>
       <li>Press the &ldquo;g&rdquo; key twice to remove the selected package.</li>
     </ol>
     </ol>
   </li>
   </li>
Line 73: Line 73:
     <ol>
     <ol>
       <li>Find the package to be installed by selecting it from the  categories listed under the &lsquo;Get Software&rdquo; menu in the left-pane or searching  for it using the &ldquo;Search&rdquo; box in the top right corner.</li>
       <li>Find the package to be installed by selecting it from the  categories listed under the &lsquo;Get Software&rdquo; menu in the left-pane or searching  for it using the &ldquo;Search&rdquo; box in the top right corner.</li>
       <li>Select the package to be installed from the results displayed in  the right-pane</li>
       <li>Select the package to be installed from the results displayed in  the right-pane.</li>
       <li>Select the &ldquo;Install&rdquo; option to install the selected package</li>
       <li>Select the &ldquo;Install&rdquo; option to install the selected package.</li>
     </ol>
     </ol>
   </li>
   </li>
   <li><strong>Removing a package: </strong>The steps  below describe how to remove a package using the Ubuntu Software Center:
   <li><strong>Removing a package: </strong>The steps  below describe how to remove a package using the Ubuntu Software Center:
     <ol>
     <ol>
       <li>Select the &ldquo;Installed Software&rdquo; option from the left-pane</li>
       <li>Select the &ldquo;Installed Software&rdquo; option from the left-pane.</li>
       <li>Select a category from the options displayed under &ldquo;Installed  Software&rdquo; in the left-pane </li>
       <li>Select a category from the options displayed under &ldquo;Installed  Software&rdquo; in the left-pane.</li>
       <li>Select the package to be removed from the results displayed in the  right pane </li>
       <li>Select the package to be removed from the results displayed in the  right pane.</li>
       <li>Select the &ldquo;Remove&rdquo; option to remove the selected package</li>
       <li>Select the &ldquo;Remove&rdquo; option to remove the selected package.</li>
     </ol>
     </ol>
   </li>
   </li>
Line 90: Line 90:
   <li><strong>Installing a package:</strong> The  steps below describe how to install a package using the Synaptic Package  Manager:  
   <li><strong>Installing a package:</strong> The  steps below describe how to install a package using the Synaptic Package  Manager:  
     <ol>
     <ol>
       <li>Select the &ldquo;Status&rdquo; button from the Synaptic Packager Manager</li>
       <li>Select the &ldquo;Status&rdquo; button from the Synaptic Packager Manager.</li>
       <li>Select the &ldquo;Not Installed&rdquo; option from the menu located at the top  of the buttons</li>
       <li>Select the &ldquo;Not Installed&rdquo; option from the menu located at the top  of the buttons.</li>
       <li>Select the package to be installed from the list displayed in the  right-pane</li>
       <li>Select the package to be installed from the list displayed in the  right-pane.</li>
       <li>Right-click on the package and select the &ldquo;Mark for Installation&rdquo;  option from the pop-up menu</li>
       <li>Right-click on the package and select the &ldquo;Mark for Installation&rdquo;  option from the pop-up menu.</li>
       <li>Select the &ldquo;Apply&rdquo; option from the toolbar at the top</li>
       <li>Select the &ldquo;Apply&rdquo; option from the toolbar at the top.</li>
     </ol>
     </ol>
   </li>
   </li>
   <li><strong>Removing a package:</strong> The  steps below describe how to remove a package using the Synaptic Package  Manager:
   <li><strong>Removing a package:</strong> The  steps below describe how to remove a package using the Synaptic Package  Manager:
     <ol>
     <ol>
       <li>Select the &ldquo;Status&rdquo; button from the Synaptic Packager Manager</li>
       <li>Select the &ldquo;Status&rdquo; button from the Synaptic Packager Manager.</li>
       <li>Select &ldquo;Installed&rdquo; from the menu at the top of the buttons</li>
       <li>Select &ldquo;Installed&rdquo; from the menu at the top of the buttons.</li>
       <li>Select the package to be removed from the list displayed in the  right-pane</li>
       <li>Select the package to be removed from the list displayed in the  right-pane.</li>
       <li>Right-click on the package and select the &ldquo;Mark for Removal&rdquo;  option from pop-up menu</li>
       <li>Right-click on the package and select the &ldquo;Mark for Removal&rdquo;  option from pop-up menu.</li>
       <li>Select the option &ldquo;Apply&rdquo; from the toolbar at the top</li>
       <li>Select the option &ldquo;Apply&rdquo; from the toolbar at the top.</li>
     </ol>
     </ol>
   </li>
   </li>
</ul>
</ul>
<h3>Software Catalog</h3>
<h3>Software Catalog</h3>
<p>Dream Studio has 2141 packages  installed upon the distribution's installation. These packages are more than enough for regular  users, as they provide all the basic software that a regular user will need. This  includes a web browser (firefox), an email client/address book (Evolution),  Image editor (GIMP), Office Suite (Open Office), Audio/Video playback software. In addition to the basic software, Dream Studio also provides a sufficient amount of multimedia and Graphic software to meet its design goals. The software catalog of Dream Studio is not as comprehensive as other distributions with similar design goals (Ubuntu Studio, ArtisX), this was done to keep the the distribution light as it already provides users with all types of software that they might need. Rather than having redundant software offering the same core services, Dream Studio opted to provide the bare minimum upon installation and provide users the option to install additional software as required.</p>
<p>Dream Studio has 2141 packages  installed upon the distribution's installation. These packages are more than enough for regular  users, as they provide all the basic software that a regular user will need. This  includes a web browser (Firefox), an email client/address book (Evolution),  Image editor (GIMP), Office Suite (Open Office), Audio/Video playback software. In addition to the basic software, Dream Studio also provides a sufficient amount of multimedia and Graphic software to meet its design goals. The software catalog of Dream Studio is not as comprehensive as other distributions with similar design goals (Ubuntu Studio, ArtistX), this was done to keep the distribution light as it already provides users with all types of software that they might need. Rather than having redundant software offering the same core services, Dream Studio opted to provide the bare minimum upon installation and provide users the option to install additional software as required.</p>
<h2><strong>Major package versions </strong></h2>
<h2><strong>Major package versions </strong></h2>
<table border="1" cellspacing="2" cellpadding="2" style="border:0px solid #003" width="700px">
<table border="1" cellspacing="2" cellpadding="2" style="border:0px solid #003" width="700px">
Line 232: Line 232:
<ul>
<ul>
   <li>
   <li>
     <p><strong>bash: </strong>The latest stable release of bash is 4.2-0ubuntu3  and it was released in Feburary 2011, therefore bash is using the latest stable  release. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore bash has not been modified by the  author. Bash is a default shell that comes installed with Ubuntu and that is  why it was included in this distribution.    </p>
     <p><strong>bash: </strong>The latest stable release of bash is 4.2-0ubuntu3  and it was released in February  2011, therefore bash is using the latest stable  release. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore bash has not been modified by the  author. Bash is a default shell that comes installed with Ubuntu and that is  why it was included in this distribution.    </p>
   </li>
   </li>
   <li>
   <li>
     <p><strong>firefox:</strong> The latest stable release of firefox is 8.0  and it was released in November 2011, the version installed in the distribution is two versions old. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore firefox has not been modified by the  author. Firefox is the default browser that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
     <p><strong>firefox:</strong> The latest stable release of Firefox is 8.0  and it was released in November 2011, the version installed in the distribution is two versions old. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore Firefox has not been modified by the  author. Firefox is the default browser that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
   </li>
   </li>
   <li>
   <li>
     <p><strong>dpkg:</strong> The latest stable release of dpkg is  1.16.1.1    and it was released in April 2011, therefore bash is using the latest stable  release. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore dpkg has not been modified by the  author. dpkg is the default package management utikity that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
     <p><strong>dpkg:</strong> The latest stable release of dpkg is  1.16.1.1    and it was released in April 2011, therefore bash is using the latest stable  release. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore dpkg has not been modified by the  author. dpkg is the default package management utility  that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
   </li>
   </li>
   <li>
   <li>
Line 247: Line 247:
   </li>
   </li>
   <li>
   <li>
     <p><strong>synaptic:</strong> The latest stable release of synaptic is 0.75.1ubuntu2  and it was released in April 2011, therefore synaptic is using the latest stable release. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore synaptic has not been modified by the  author. synaptic is an advanced GUI front-end for APT that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
     <p><strong>synaptic:</strong> The latest stable release of synaptic is 0.75.1ubuntu2  and it was released in April 2011, therefore synaptic is using the latest stable release. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore synaptic has not been modified by the  author. Synaptic is an advanced GUI front-end for APT that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
   </li>
   </li>
   <li>
   <li>
Line 253: Line 253:
   </li>
   </li>
   <li>
   <li>
     <p><strong>evolution:</strong> The latest stable release of evolution is 3.2.2  and it was released in November 2011, the version installed in the distribution is one version old. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore evolution has not been modified by the  author. Evolutions is the default mail client that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
     <p><strong>evolution:</strong> The latest stable release of evolution is 3.2.2  and it was released in November 2011, the version installed in the distribution is one version old. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore evolution has not been modified by the  author. Evolution is the default mail client that comes installed with Ubuntu and that is  why it was included in this distribution.</p>
   </li>
   </li>
   <li>
   <li>
     <p><strong>linux  kernel:</strong> The latest stable release of the linux kernel (3.0.0-9.13ppa1~natty1) is  3.1.1 and it was released in November 2011, the version installed in the distribution is one version old. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore kernel has not been modified by the  author. kernel is the core of Ubuntu and that is  why it was included in this distribution.</p>
     <p><strong>linux  kernel:</strong> The latest stable release of the Linux kernel (3.0.0-9.13ppa1~natty1) is  3.1.1 and it was released in November 2011, the version installed in the distribution is one version old. As stated by Dream Studio&rsquo;s author, Dream Studio is using the main  packages of Ubuntu without modification; this was done to allow seamless  updates to the underlying software. Therefore kernel has not been modified by the  author. A kernel is the core of Ubuntu and that is  why it was included in this distribution.</p>
   </li>
   </li>
   <li>
   <li>
Line 263: Line 263:
</ul>
</ul>
<h2>Initialization </h2>
<h2>Initialization </h2>
<p>Dream Studio uses the same processes as Ubuntu to initialize the system. Specifically it uses a combination of System V init scripts and Upstart jobs to fully initialize the  system. Since Upstart runs program in parallel based on events, it is very difficult to identify which programs are run first. By looking at the /etc/rcS script and the boot log files (/var/log/boot.log), it seems that the following processes are run during system  initialization: </p>
<p>Dream Studio uses the same processes as Ubuntu to initialize the system. Specifically it uses a combination of System V init scripts and Upstart jobs to fully initialize the system. Attached is a ps  listing of all the processes that are running when Dream Studio boots up.</p>
<ol>
<p>The boot process starts by loading the  kernel and its associated modules. After the kernel is finished loading, it  runs the init process located in &ldquo;/sbin/init&rdquo;. Init is the parent process of all other processes running on the system.</p>
   <li>Network Services</li>
<p>Next, Upstart emits a &ldquo;start-up&rdquo; event and  init runs the jobs located in &ldquo;/etc/init&rdquo; that specify the &ldquo;start-up&rdquo; event in their &ldquo;start on&rdquo; condition. This includes the mountall job which mounts the  disks and file systems.</p>
   <li>AppArmor profiles</li>
<p>Once the disks and file systems have  been mounted, the message bus daemon (dbus-daemon) starts and the scripts  located in &ldquo;/etc/rcS.d&rdquo; are executed. These scripts start the dynamic device management service (udev), load  the AppArmor security module and X11-common (the file system infrastructure required for further installation  of the X Window System).</p>
   <li>ACPI daemon</li>
<p>Next, the rsyslog daemon (a system utility that provides support for message  logging) is started, followed by processes to initialize network services  (NetworkManager, avahi-daemon etc.) on the system.  After this, the init process switches the system to run-level 2, which is the  default run level set in the file &ldquo;/etc/event.d/rc-default&rdquo;.</p>
   <li>Cron</li>
<p>Upon entering run level 2, the system  starts the following processes:</p>
   <li>Graphics Device</li>
<ul>
</ol>
  <li><strong>cron and atd:</strong> Daemons to execute scheduled commands  on the system.</li>
<p>This information was found in the scripts and conf files located in the init.d and init folders under /etc.</p>
  <li><strong>acpid:</strong> Daemon that delivers ACPI (Advanced  Configuration and Power Interface) events. It listens on a file  (/proc/acpi/event) and when an event occurs, executes programs to handle the  event. The programs it executes are configured through a set of configuration  files, which can be dropped into place by packages or by the admin.  </li>
   <li><strong>irqbalance:</strong> Distributes hardware interrupts across processors on  a multiprocessor system.</li>
   <li><strong>cupsd:</strong> Scheduler for  CUPS (Common Unix Printing System), a modular printing system for Unix which  allows a computer to act as a print server. It implements a printing system  based upon the Internet Printing Protocol, version 2.1. A computer running CUPS  is a host that can accept print jobs from client computers, process them, and  send them to the appropriate printer. This process runs in the foreground of  the system. </li>
</ul>
<p>The system also  executes scripts located in &ldquo;/etc/rc2.d&rdquo;, when it enters run level 2. These  scripts run updates for Dream Studio and start the following processes:</p>
<ul>
  <li><strong>spacenavd:</strong> User-space daemon that provides drivers for 3D input  devices.</li>
   <li><strong>winbind:</strong> Name Service Switch daemon for resolving  names from NT servers.<strong> </strong></li>
   <li><strong>pulseaudio:</strong> Networked low-latency sound server for Linux.</li>
   <li><strong>timidity:</strong> Software synthesizer that can play MIDI (Musical Instrument Digital  Interface) files without a hardware synthesizer.</li>
</ul>
<p>Next, the system  starts getty and gdm-binary processes. The process getty opens and initializes a  tty line, reads a log-in name and invokes the login process to log a user into  the computer. The process gdm-binary starts the GNOME Display Manager (GDM) which  is a graphical log-in program. Once the user is logged into the computer, GDM starts a user  session. This will start processes such as metacity, nautilus, gvfs and load desktop  and application settings for the user from &ldquo;/usr/lib/d-conf/dconf-service&rdquo; and &ldquo;/usr/lib/libgconf2-4/gconfd-2&rdquo;  respectively. Once the desktop is loaded, the system starts the process  update-notifier, which scans the system for installed software and displays a  list of updates.</p>
The information in this  section was found by reading how upstart initializes Ubuntu, in the <a href="http://upstart.ubuntu.com/cookbook/#system-phases">Upstart  Intro, Cookbook and Best Practises</a>. Next, I looked through the upstart jobs (.conf files) located in the directory &ldquo;/etc/init.d&rdquo; to find out how certain processes  were started by the system. I also looked through the &ldquo;/etc/rcS.d&rdquo; and &ldquo;/etc/rc2.d&rdquo;  directories to see how the old System V init scripts started some processes on  the system. The description of all the running processes was taken from <a href="http://linux.die.net/man/">Linux man  pages</a>.

Revision as of 09:28, 19 December 2011

Part I

Background

Dream Studio Desktop.

Dream Studio is an Ubuntu based distribution that provides users tools to create stunning graphics, music, videos and websites. It is developed and maintained by Dick MacInnis, who originally designed the distribution for his work. The distribution can be installed to the hard drive, run from a DVD or a USB flash drive. It takes advantage of the Ubuntu base and does not modify the default packages provided by Ubuntu for ease of system updates and maintenance. The primary target audience for this distribution are designers, musicians or anyone developing multimedia (video, audio etc.) or design products.

Part II

Software Packaging

Dream Studio uses Ubuntu’s package management utilities to package and distribute software. Software is distributed in package files with a .deb extension to software repositories, and Dream Studio can download and install the software from these software repositories using a package management utility. Since Ubuntu uses Dobbin’s package management utilities, the base package management utility of Dream Studio is dpkg. Dream Studio has the following package management utilities:

  • dpkg: dpkg is the base software of Dream Studio’s package management system. It is a low-level package management utility that can be used to create, install and remove packages. dpkg cannot get packages from remote repositories or manage complex package dependencies, therefore it is recommended that a higher level utility such as APT be used to install, update and remove packages in Dream Studio.
  • APT (Advanced Packaging Tool): APT is a command line based front-end for dpkg. It allows users to install, update and remove packages on the system and, unlike dkpg it can download packages from remote repositories and manage package dependencies. APT can be accessed in Dream Studio by using the command line utility apt-get.
  • Aptitude: Aptitude is a command line text-based menu front-end for APT. It can be used to install, update and remove packages on the system. Aptitude can be accessed in Dream Studio by using the command line utility aptitude.
  • Ubuntu Software Center: Ubuntu Software Center is the graphical (GUI) front-end for APT and can be used to browse, install, update and remove packages. It is the most simple application in Dream Studio to install packages but it can ignore certain packages (i.e. packages that don’t contain programs), and therefore the Synaptic Package Manager should be used to install complex packages or packages that cannot be installed using the Ubuntu Software Center.
  • Synaptic Package Manager: The Synaptic Package Manager provides an advanced GUI front-end for APT. It can be used to browse, install, update and remove any package on the system. It is similar to the Ubuntu Software Center, but provides more information and complete control over the packages installed on the system.

Listing Installed Software

A listing of all the software installed in Dream Studio can be obtained by using the package management utilities below:

  • dpkg: A list of installed packages (software) can be obtained by using the following dpkg command in the terminal:dpkg –l
  • Aptitude: The following steps describe how to obtain a list of installed software using Aptitude:
    1. Type aptitude in the command line.
    2. Select the option “Installed Packages” from the menu.
  • Ubuntu Software Center: The following steps describe how to obtain a list of installed software using Ubuntu Software Center:
    1. Select “Ubuntu Software Center” from the Applications menu in the top menu bar.
    2. Select the option “Installed Software” from the left pane in Ubuntu Software Center. List of installed software will be displayed in the right pane.
  • Synaptic Package Manager: The following steps describe how to obtain a list of installed software using the Synaptic Package Manager:
    1. Open the Synaptic Package Manager by selecting it from the menu  System > Administration in the top menu bar.
    2. Select the “Status” button from the Synaptic Packager Manager.
    3. Select “Installed” from the menu located at the top of the buttons.

Adding and Removing Packages

Packages can be installed or removed in Dream Studio by using any of the package management utilities listed below: (note: dpkg is excluded from this list because it is not recommended to directly install/remove packages using this utility)

APT: Search for a package by typing the following command in the terminal: apt-cache search <search term>. Example: To search for a graphics program/package type the following command in the terminal: apt-cache search <graphics program>. Select the package name from the search results and then use the commands below to install or remove the package if is already installed:

  • Installing a package: Type the following command in the terminal to install a given package: apt-get install <package_name>. Example: Use the command apt-get install graphics program to install the package named graphics program.
  • Removing a package: Type the following command in the terminal to remove a given package: apt-get remove <package_name>. Example: Use the command apt-get remove graphics program to remove the package named graphics program The command apt-get purge <package_name> can be used to remove a package and its configuration files.

Aptitude: Open aptitude by the typing the command aptitude in the terminal

  • Installing a package: The steps below describe how to select and install a package using aptitude:
    1. Select the “Not Installed Packages” from the menu at the top.
    2. Select a category from the displayed list.
    3. Select a package repository from the displayed list.
    4. Browse the displayed list of available packages and mark a package to be installed by pressing the “+” key.
    5. Press the “g” key twice to install the selected package.
  • Removing a package: The steps below describe how to select and remove a package using aptitude:
    1. Select the “Installed Packages” from the menu at the top.
    2. Select a category from the displayed list.
    3. Select a package repository from the displayed list.
    4.  Browse the displayed list of available packages and mark a package to be removed by pressing the “-” key.
    5. Press the “g” key twice to remove the selected package.

Ubuntu Software Center: Open Ubuntu Software Center by selecting it from the menu at the top: Applications > Ubuntu Software Center

  • Installing a package: The steps below describe how to install a package using the Ubuntu Software Center:
    1. Find the package to be installed by selecting it from the categories listed under the ‘Get Software” menu in the left-pane or searching for it using the “Search” box in the top right corner.
    2. Select the package to be installed from the results displayed in the right-pane.
    3. Select the “Install” option to install the selected package.
  • Removing a package: The steps below describe how to remove a package using the Ubuntu Software Center:
    1. Select the “Installed Software” option from the left-pane.
    2. Select a category from the options displayed under “Installed Software” in the left-pane.
    3. Select the package to be removed from the results displayed in the right pane.
    4. Select the “Remove” option to remove the selected package.

Synaptic Package Manager: Open Synaptic Package Manager by selecting it from the menu at the top: System > Administration > Ubuntu Software Center

  • Installing a package: The steps below describe how to install a package using the Synaptic Package Manager:
    1. Select the “Status” button from the Synaptic Packager Manager.
    2. Select the “Not Installed” option from the menu located at the top of the buttons.
    3. Select the package to be installed from the list displayed in the right-pane.
    4. Right-click on the package and select the “Mark for Installation” option from the pop-up menu.
    5. Select the “Apply” option from the toolbar at the top.
  • Removing a package: The steps below describe how to remove a package using the Synaptic Package Manager:
    1. Select the “Status” button from the Synaptic Packager Manager.
    2. Select “Installed” from the menu at the top of the buttons.
    3. Select the package to be removed from the list displayed in the right-pane.
    4. Right-click on the package and select the “Mark for Removal” option from pop-up menu.
    5. Select the option “Apply” from the toolbar at the top.

Software Catalog

Dream Studio has 2141 packages installed upon the distribution's installation. These packages are more than enough for regular users, as they provide all the basic software that a regular user will need. This includes a web browser (Firefox), an email client/address book (Evolution), Image editor (GIMP), Office Suite (Open Office), Audio/Video playback software. In addition to the basic software, Dream Studio also provides a sufficient amount of multimedia and Graphic software to meet its design goals. The software catalog of Dream Studio is not as comprehensive as other distributions with similar design goals (Ubuntu Studio, ArtistX), this was done to keep the distribution light as it already provides users with all types of software that they might need. Rather than having redundant software offering the same core services, Dream Studio opted to provide the bare minimum upon installation and provide users the option to install additional software as required.

Major package versions

Package Name Version Upstream source
  • linux-image-3.0.0-9-lowlatency
  • linux-lowlatency

 

  • 3.0.0-9.13ppa1~natty1
  • 3.0.0.9.10ppa1~natty1
http://www.kernel.org/
Libc6 2.13-0ubuntu13 http://www.eglibc.org/home
xserver-xorg-video-qxl 0.0.12-1ubuntu4 http://anonscm.debian.org/gitweb/?p=pkg-xorg/driver/xserver-xorg-video-qxl.git
  • gtkdialog and gtk2-engines-pixbuf
  • libqt4-core
  • tk8.5: 8.5.9-2
  • 2:0.7.20-4 and 2.24.4-0ubuntu2
  • 4:4.7.2-0ubuntu6.2
  • 8.5.9-2
Shells:
  • Bash
  • Dash
  • Mono-csharp-shell
  • 4.2-0ubuntu3
  • 0.5.5.1-7.2ubuntu1
  • 2.6.7-5ubuntu3
Busybox-static 1:1.17.1-10ubuntu1 http://busybox.net/downloads/
Software packaging (rpm, dpkg, etc.)
  • dpkg
  • aptitude
  • apt
  • synaptic
  • software-center
  • 1.16.0~ubuntu7
  • 0.6.3-3.2ubuntu1
  • 0.8.13.2ubuntu4.1
  • 0.75.1lubuntu2
  • 4.0.4
Firefox 6.0+build1+nobinonly-0ubuntu0.11.04.1 http://releases.mozilla.org/pub/mozilla.org/firefox/releases/
Evolution 2.32.2-0ubuntu7 http://projects.gnome.org/evolution/
Inkscape 0.48.1-2ubuntu2 http://inkscape.org/
Gimp 2.6.11-1ubuntu6.1 http://www.gimp.org/
Imagemagick 7:6.6.2.6-1ubuntu4 http://www.imagemagick.org/script/download.php

Package Information and Comparisons

  • bash: The latest stable release of bash is 4.2-0ubuntu3 and it was released in February 2011, therefore bash is using the latest stable release. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore bash has not been modified by the author. Bash is a default shell that comes installed with Ubuntu and that is why it was included in this distribution.    

  • firefox: The latest stable release of Firefox is 8.0 and it was released in November 2011, the version installed in the distribution is two versions old. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore Firefox has not been modified by the author. Firefox is the default browser that comes installed with Ubuntu and that is why it was included in this distribution.

  • dpkg: The latest stable release of dpkg is 1.16.1.1 and it was released in April 2011, therefore bash is using the latest stable release. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore dpkg has not been modified by the author. dpkg is the default package management utility that comes installed with Ubuntu and that is why it was included in this distribution.

  • libc6: The latest stable release of libc6 is 2.14.1 and it was released in October 2011, the version installed in the distribution is one version old. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore libc6 has not been modified by the author. libc6 is the glibc library that comes installed with Ubuntu and that is why it was included in this distribution.

  • apt: The latest stable release of apt is 0.8.10.3+squeeze1 and it was released in September 2011, the version installed in the distribution is two versions newer than the most stable release (the new version mostly consisted of security updates). As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore apt has not been modified by the author. apt is a front-end interface for dkpg that comes installed with Ubuntu and that is why it was included in this distribution.

  • synaptic: The latest stable release of synaptic is 0.75.1ubuntu2 and it was released in April 2011, therefore synaptic is using the latest stable release. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore synaptic has not been modified by the author. Synaptic is an advanced GUI front-end for APT that comes installed with Ubuntu and that is why it was included in this distribution.

  • software-center: The latest stable release of software-center is 4.0.5 and it was released in October 2011, the version installed in the distribution is one version old. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore software center has not been modified by the author. software-center is an advanced GUI front-end for APT that comes installed with Ubuntu and that is why it was included in this distribution. 

  • evolution: The latest stable release of evolution is 3.2.2 and it was released in November 2011, the version installed in the distribution is one version old. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore evolution has not been modified by the author. Evolution is the default mail client that comes installed with Ubuntu and that is why it was included in this distribution.

  • linux kernel: The latest stable release of the Linux kernel (3.0.0-9.13ppa1~natty1) is 3.1.1 and it was released in November 2011, the version installed in the distribution is one version old. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore kernel has not been modified by the author. A kernel is the core of Ubuntu and that is why it was included in this distribution.

  • dash:  The latest stable release of dash is 0.5.5.1-7.2ubuntu1 and it was released in November 2010, therefore dash is using the latest stable release. As stated by Dream Studio’s author, Dream Studio is using the main packages of Ubuntu without modification; this was done to allow seamless updates to the underlying software. Therefore dash has not been modified by the author. Dash is a default shell that comes installed with Ubuntu and that is why it was included in this distribution.

Initialization

Dream Studio uses the same processes as Ubuntu to initialize the system. Specifically it uses a combination of System V init scripts and Upstart jobs to fully initialize the system. Attached is a ps listing of all the processes that are running when Dream Studio boots up.

The boot process starts by loading the kernel and its associated modules. After the kernel is finished loading, it runs the init process located in “/sbin/init”. Init is the parent process of all other processes running on the system.

Next, Upstart emits a “start-up” event and init runs the jobs located in “/etc/init” that specify the “start-up” event in their “start on” condition. This includes the mountall job which mounts the disks and file systems.

Once the disks and file systems have been mounted, the message bus daemon (dbus-daemon) starts and the scripts located in “/etc/rcS.d” are executed. These scripts start the dynamic device management service (udev), load the AppArmor security module and X11-common (the file system infrastructure required for further installation of the X Window System).

Next, the rsyslog daemon (a system utility that provides support for message logging) is started, followed by processes to initialize network services (NetworkManager, avahi-daemon etc.) on the system. After this, the init process switches the system to run-level 2, which is the default run level set in the file “/etc/event.d/rc-default”.

Upon entering run level 2, the system starts the following processes:

  • cron and atd: Daemons to execute scheduled commands on the system.
  • acpid: Daemon that delivers ACPI (Advanced Configuration and Power Interface) events. It listens on a file (/proc/acpi/event) and when an event occurs, executes programs to handle the event. The programs it executes are configured through a set of configuration files, which can be dropped into place by packages or by the admin. 
  • irqbalance: Distributes hardware interrupts across processors on a multiprocessor system.
  • cupsd: Scheduler for CUPS (Common Unix Printing System), a modular printing system for Unix which allows a computer to act as a print server. It implements a printing system based upon the Internet Printing Protocol, version 2.1. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer. This process runs in the foreground of the system.

The system also executes scripts located in “/etc/rc2.d”, when it enters run level 2. These scripts run updates for Dream Studio and start the following processes:

  • spacenavd: User-space daemon that provides drivers for 3D input devices.
  • winbind: Name Service Switch daemon for resolving names from NT servers.
  • pulseaudio: Networked low-latency sound server for Linux.
  • timidity: Software synthesizer that can play MIDI (Musical Instrument Digital Interface) files without a hardware synthesizer.

Next, the system starts getty and gdm-binary processes. The process getty opens and initializes a tty line, reads a log-in name and invokes the login process to log a user into the computer. The process gdm-binary starts the GNOME Display Manager (GDM) which is a graphical log-in program. Once the user is logged into the computer, GDM starts a user session. This will start processes such as metacity, nautilus, gvfs and load desktop and application settings for the user from “/usr/lib/d-conf/dconf-service” and “/usr/lib/libgconf2-4/gconfd-2” respectively. Once the desktop is loaded, the system starts the process update-notifier, which scans the system for installed software and displays a list of updates.

The information in this section was found by reading how upstart initializes Ubuntu, in the <a href="http://upstart.ubuntu.com/cookbook/#system-phases">Upstart Intro, Cookbook and Best Practises</a>. Next, I looked through the upstart jobs (.conf files) located in the directory “/etc/init.d” to find out how certain processes were started by the system. I also looked through the “/etc/rcS.d” and “/etc/rc2.d” directories to see how the old System V init scripts started some processes on the system. The description of all the running processes was taken from <a href="http://linux.die.net/man/">Linux man pages</a>.