COMP 3000 2011 Report: Dream Studio

From Soma-notes
Revision as of 23:19, 22 December 2011 by Smaqsood (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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. Dream Studio can be installed to the hard drive, run from a DVD or USB flash drive. For ease of system updates and maintenance, Dream Studio does not modify the default packages provided by Ubuntu. The primary target audience for this distribution are designers, musicians or anyone developing multimedia (video, audio etc.) or design products.

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 command "aptitude" in the terminal:
    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 typing "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
Agave 0.4.7-1ubuntu2 http://home.gna.org/colorscheme
Blender 2.59-1ubuntu1~ppa1 http://www.blender.org
Hugin Panorama Creator 2010.4.0+dfsg-1 http://hugin.sourceforge.net
Synfig Studio 0.63.00-20110605.master.8 http://www.synfig.org/cms
Stopmotion 0.6.2-1.1ubuntu1 http://stopmotion.bjoernen.com
Scribus 1.4.0.dfsg~rc2-1 http://www.scribus.net/canvas/Scribus
KompoZer 1:0.8~b3.dfsg.1-0.1 http://kompozer.net
Cinelerra 1:2.1.5-0.16~ppa1~natty5 http://cinelerra.org
Celtx 2.0.1-1ubuntu1 http://celtx.com
Linux MultiMedia Studio 0.4.12-0ubuntu1+fixed1~natty1 http://lmms.sourceforge.net

Package Information and Comparisons

Agave

Agave is a very simple program for the GNOME desktop that allows users to generate a variety of color schemes from a single starting color. This is very useful for designing graphics or webpages. The latest stable release of Agave is 0.4.4 and it was released on January 14, 2008. Dream Studio is using the latest version of this package. This package has been modified by Ubuntu to fix small bugs and has not been modified by Dream Studio. Agave is included in Dream Studio to allow users to create color schemes for graphics, webpages, animations, videos etc.

Blender

Blender is an integrated 3D suite for modelling, animation, rendering, post-production, interactive creation and playback (games). The latest stable release of Blender is 2.61 and it was released on December 14th 2011. The version of Blender installed in Dream Studio (2.59) is two versions older than the latest stable release. This package has not been modified by Dream Studio. Blender is included in Dream Studio to allow users to create animated films, visual effects, interactive 3D applications and video games.

Hugin Panorama Creator

Hugin is a panorama photo stitching program. Stitching is accomplished by using several overlapping photos taken from the same location, and using control points to align and transform the photos so that they can be blended together to form a larger image. Hugin allows for the easy creation of control points between two images, optimization of the image transforms, and much more. The latest stable release of Hugin Panorama Creator is 2011.4.0 and it was released on December 2011.The version of Hugin installed in Dream Studio (2010.4.0) is three versions older than the latest stable release. This package has not been modified by Dream Studio. Hugin is included in Dream Studio to allow users to create stunning graphics.

Synfig Studio

Synfig Studio is a powerful, industrial-strength vector-based 2D animation program, designed from the ground-up for producing feature-film quality animation with fewer people and resources. It eliminates the need for tweening, preventing the need to hand-draw each frame. Synfig features spatial and temporal resolution independence (sharp and smooth at any resolution or frame rate), high dynamic range images, and a flexible plugin system. The latest stable release of Synfig Studio is synfigstudio-0.63.03 and it was released on December 15 2011. The version of Synfig Studio installed in Dream Studio (0.63.00) is three versions older than the latest stable release. This package has not been modified by Dream Studio. Synfig Studio is included in Dream Studio to allow users to create professional quality 2D animations.

Stopmotion

Stopmotion is a program for creating stop-motion animation movies. Users can create stop-motions from pictures imported from a camera or the hard drive, add sound effects and export the animation to different video formats such as MPEG or AVI. The latest stable release of Stopmotion is stopmotion-0.6.2 and it was released on July 25 2008. Dream Studio is using the latest version of this package and it has not been modified by Dream Studio. Stopmotion is included in Dream Studio to allow users to create stop-motion animations.

Note: Stop motion is an animation technique to make a physically manipulated object appear to move on its own. The program Stopmotion allows users to use this technique to create 2D animations.

Scribus

Scribus is a desktop page layout program with the aim of producing commercial grade output in PDF and Postscript, primarily, though not exclusively for Linux. It can be used to design brochures, newspapers, magazines, newsletters, posters and technical documentation. Scribus has sophisticated page layout features like precision placing and rotating of text and/or images on a page, manual kerning of type, bezier curves polygons, precision placement of objects, layering with RGB and CMYK custom colors. The Scribus document file format is XML-based. Unlike proprietary binary file formats, even damaged documents, can be recovered with a simple text editor. A development version of Scribus (1.4.0.dfsg~rc2-1.1 ) is installed in Dream Studio and it was released on April 1 2011. This package has not been modified by Dream Studio. Scribus is included in Dream Studio to allow users to create stunning and professional quality brochures, newspapers, magazines etc.

KompoZer

KompoZer is a complete Web Authoring System that combines web file management and easy-to-use WYSIWYG (What You See Is What You Get) web page editing. KompoZer is designed to be extremely easy to use, making it ideal for non-technical computer users who want to create an attractive, professional-looking web site without needing to know HTML or web coding. It provides similar functionality as Adobe Dreamweaver or Apple iWeb (commercial software). A development version of KompoZer (0.8b3) is installed in Dream Studio and it was released on February 28 2010. This package has not been modified by Dream Studio. KompoZer is included in Dream Studio to allow users to create professional quality websites.

Cinelerra

Cinelerra is a complete audio and video authoring program that is comparable to leading solutions like Apple's Final Cut Pro, Sony Vegas, or Adobe Premiere. Cinelerra contains more than 30 visual effects like motion tracking and chroma key, and supports both keyframing and nested sequences. It understands a lot of multimedia formats (QuickTime, AVI and OGG) and audio/video compression codecs (DIVX, XVID, MPEG1/2 etc.). The latest stable release of Cinelerra is 2.2 and it was released on November 21 2011. The version of Cinelerra installed in Dream Studio (2.1.5) is one version older than the latest stable release. This package has not been modified by Dream Studio. Cinelerra is included in Dream Studio to allow users to create professional quality video and audio compositions.

Celtx

Celtx is the world's first all-in-one media pre-production and screenwriting program. It has everything a user needs to take their story from concept to production. Celtx replaces 'paper, pen & binder' pre-production with a digital approach that's more complete, simpler to work with, and easier to share. Celtx helps users pre-produce all types of media - film, video, documentary, theater, machinima, comics, advertising, video games, music video, radio, podcasts, video casts, and however else they choose to tell their story. The latest stable release of Celtx is 2.9.1 and it was released on April 14 2011. The version of Celtx installed in Dream Studio (2.0.1) is four versions older than the latest stable release. This package has not been modified by Dream Studio. Celtx is included in Dream Studio to allow users to pre-produce all types of media (film, video, documentary etc.).

Linux MultiMedia Studio (LMMS)

LMMS is a program that allows users to produce music with their computer. This includes the creation of melodies and beats, the synthesis and mixing of sounds, and arranging of samples. Users can have fun with their MIDI-keyboard and much more; all in a user-friendly and modern interface. The latest stable release of LMMS is 0.4.12 and it was released on July 2 2011. Dream Studio is using the latest version of this package and it has not been modified by Dream Studio. LMMS is included in Dream Studio to allow users to produce music using their computer.

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 in Dream Studio when it 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 the processes getty and gdm-binary. 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 and gvfs. It will also 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 running processes was taken from the Linux man pages.