COMP 3000 2011 Report: Dream Studio

From Soma-notes
Revision as of 11:01, 19 December 2011 by Smaqsood (talk | contribs)
Jump to navigation Jump to search

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 the following command in the terminal:
      $ aptitude   
    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: Type the following command in the terminal to install the package named "tux-math"
    
    $ apt-get install tux-math 
  • Removing a package: Type the following command in the terminal to remove a given package:
    $ apt-get remove <package_name>
     Example: Type the following command in the terminal to remove the package named "tux-math":
    
    $ apt-get remove tux-math
    The following command can be used to remove a package and its configuration files: 
    
    $ apt-get purge <package_name>

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

$ aptitude
  • 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 Upstart Intro, Cookbook and Best Practises. 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 the Linux man pages.