COMP 3000 2011 Report: DoudouLinux

From Soma-notes
Jump to navigation Jump to search

Part 1

Background

"Doudou" is a french word for the teddy bear, or blanket, that children love to carry around and hug. In that context, DoudouLinux is a GNU/Linux distribution designed for young children aged from two to seven.<ref name = "DoudouLinux: You know, for kids">Linux info from the source (Last accessed October 17, 2011).</ref>

It is a system that aims at teaching the rudiments of computer use to young children while making it as easy and pleasant as possible for children. Founded by the French Jean-Michel Philippe, it's first release “Gondwana” was released in June 2011 and is based on a minimal Debian “Lenny” linux system.

DoudouLinux is officially available in 25 languages<ref name = "DistroWatch">DistroWatch (Last accessed October 17, 2011).</ref> and can be downloaded it on the DoudouLinux homepage as an ISO image file of approximately 693 MB in size.

Installation/Startup

Installation

The minimum requirements to run DoudouLinux are:<ref name = "Requierements">Downloads (Last accessed October 18, 2011).</ref>

Figure 1 During the installation of DoudouLinux
  • 256 MB memory
  • 800 MHz processor
  • 800×600 dots display

I used VMWare Workstation and allocated 8GB for the virtual machine and 512MB of RAM.

During the boot,the choice of booting with or without having persistence is offered <ref name = "Data Persistence">http://doudoulinux.org/web/english/documentation-7/advanced-tools/article/data-persistence.html Data Persistence] (Last accessed December 15, 2011).</ref>. Data persistence consists in loading up the configuration, work and other programs from a previous use of DoudouLinux. We chose to boot up without persistence.
The installation lasts around thirty seconds and used 1.1 MB of the allocated space on the virtual machine( even though the file folder took 532 MB of the host disk space). [Figure 1]
No problems were encountered during the installation since there is no system configuration or management options and the system does not request setting up a username and password.

Startup

At boot time,there is an "Activities Menu" displayed that offers seven session options: [Figure 2]

Figure 2 Activities Menu
  • Gamine
  • Pysycache
  • Childsplay
  • TuxPaint
  • GCompris
  • Mini DoudouLinux
  • Whole DoudouLinux


The first five options are single applications sessions while Mini DoudouLinux is a session with a reduced set of applications offered. The Whole DoudouLinux option was choosen.

Basic Operation

Gamine
GCompris
Childsplay

As shown in the activities menu(Figure 2) the applications are ordered by increasing difficulty.From the two year old child who discovers the use of the mouse and the keyboard, in Gamine and Pysycache, to more experienced users with educational suites such as Childsplay and GCompris.These can either be accessed from the activity menu or through the "Learn" tab,when the whole DoudouLinux session is chosen.
For example a child wanting to play a puzzle or learn about the world geography would select GCompris, a suite containing educational games divided into different categories that each develops one part of the child's skill(spatial abilities or memory), and then select from the plethora of categories, in the sidebar, including reading activities, mathematics, puzzles, experiential or amusement activities.It teaches the child how to use the keyboard and mouse,or how to differentiate different colours and sounds.The program runs in full screen; It has a large cursor and icons and each game has many levels, increasing in difficulty.

In the Whole DoudouLinux session, close to fifty applications are offered and they are grouped in categories, by type(i.e Work,Learn,Enjoy) that have their own tab in DoudouLinux application Launcher.[Figure 4]
The general games category includes standard puzzle and non-violent arcade fare, plus some common card and board games. Hours were spent playing the games from the "Enjoy" category.

Usage Evaluation

Figure 4 Applications grouped in Categories

The DoudouLinux design goals are, in my view, met and exceeded.The system runs fast since there is less configuration to do.The icons are very colorful,suggestive and large enough for children,providing the ease of use that was intended by the creators of the system.

Depending on the age of the child,the mouse speed can be easily adjusted as well as the sound output by going in the "Tune" tab and adjusting the settings. In some applications, hovering the mouse on an item provides sound instruction.

The system contain plenty of interactive that respond to single-clicks for better ease-of-use. Since window management would, presumably, be tricky with young children, all the applications or game run in full-screen mode.


.

Part 2

Software Packaging

Figure 5 The work tab in DoudouLinux
Figure 6 The accessories tab in DoudouLinux

Packaging Format and Utilities

As Doudoulinux is Debian based, it uses the same package format.deb with the main Debian package management program, dpkg. Since DoudouLinux is based on a minimal Debian “Lenny” Linux system and is geared toward childrens, there is no need for the higher level package management tools such as aptitude or the graphical package manager Synaptic.However,the Advanced Packaging Tool (APT) that relies on dpkg, is installed as well as the utilities for manipulating .deb files: dpkg-deb and dpkg-split.

Listing Installed Packages

As mentioned above, there are no graphical package manager, such as Synaptic, installed so the only way to get a list of the installed packages is through the terminal.Accessing the terminal isn't obvious since DoudouLinux tries to hide that aspect from children.One has to go to the "Work" tab [Figure 5]and then the "Accessories" tab[Figure 6]. From the terminal command line, you get the list of the packages by typing dpkg --list.

Adding and Removing Packages

DoudouLinux does not have many packages(~913 packages) compared to other Debian based distributions.The installed packages are those that are required and necessary for the proper functioning of the system.The larger applications present, such as Gamine, are installed for their educational and entertaining value to children.As such there is no Office suite since it is not indispensable for children. <ref name = "DoudouLinux User Manual ">DoudouLinux User manual (Last accessed November 12, 2011).</ref>
However,a package can be installed,when in superuser, using dpkg --install <packageName>.deb where the packageName is a file in your current working directory. They can be removed by using sudo dpkg --remove <packageName>, which will leave the package's configuration file, or dpkg --purge <packageName> ,which will remove the package's configuration file as well. This method is somewhat inconvenient for adding packages since they must first be downloaded. A better method is using APT which expands the functionality of dpkg by searching, fetching and installing packages from online repositories along with their dependencies, either from binary files or by compiling source code.<ref name = "Advanced Packaging Tool ">Advanced Packaging Tool (Last accessed November 11, 2011).</ref> So, in the terminal, typing sudo apt-get install <packageName> will install a particular package along with all of its dependencies, while apt-get remove <packageName> will remove the package<ref name = "The Debian Package Management Tools ">The Debian Package Management Tools (Last accessed November 13, 2011).</ref>

Software Catalog

As mentioned above, DoudouLinux does not have an extensive list of packages that are installed. The basic packages needed to seamlessly run operate the system, such as the Kernel, as well those that satisfy the purpose of DoudouLinux such as Gamine and GCompris.

Major package versions

Here are the version numbers and upstream sources of various major software packages included in DoudouLinux as part of the standard install, and packages that are central to the system. Notable inclusion in this list are the major applications such as Gamine and Childsplay.

Package Version Upstream Source
Linux Kernel 2.6.26-2-686 http://www.kernel.org/
libc 2.7-18lenny7 http://www.gnu.org/s/libc/
X.org X Server 1.7.3+20 http://www.x.org/wiki/ (Debian-specific version: http://wiki.debian.org/XStrikeForce)
Qt 4 4.4.3-1+lenny1 http://qt.nokia.com/
Bash(The GNU Bourne Again SHell) 3.2-4 http://www.gnu.org/software/bash/
Dash 0.5.4-12 http://gondor.apana.org.au/~herbert/dash/
Coreutils (GNU core utilities) 6.10-6 http://www.gnu.org/s/coreutils/
Busybox 1.10.2-2 http://busybox.net/
Epiphany Browser 2.22.3-9 http://projects.gnome.org/epiphany/
Openbox 3.4.7.2-3 http://openbox.org/
Childsplay 0.85.1-1.1 http://www.schoolsplay.org/
Gamine 1.1-2 https://launchpad.net/ubuntu/+source/gamine
GCompris 8.4.4-1.1 http://gcompris.net/-Download-
Pysycache 3.1-2doudou1 http://www.pysycache.org/web/en/telechargement2.html


Purpose and Comparison of Packages to their Latest Stable Release

A disclaimer here is that it was difficult to figure out if the packages had been modified by the distribution authors since finding the actual packages, instead of the binaries, that are installed in the distribution was hard.

Linux Kernel

The Linux Kernel included in DoudouLinux is version 2.6.26-2-686 and was released on August 6,2008. <ref name = "DoudouLinux Kernel version ">DoudouLinux kernel version (Last accessed November 13, 2011).</ref> That is pretty old compared to the latest stable version 3.1.1 that was released on November 11,2011.<ref name = "Latest Kernel version ">Latest kernel version (Last accessed November 13, 2011).</ref>
Using the Meld tool,<ref name = "Meld ">Meld (Last accessed November 13, 2011).</ref> which does folder and file comparison, it was obvious that the kernel package hasn't been modified by the DoudouLinux authors since their main goal was to provide the proper GUI and applications to open a child's mind to computer.And it's inclusion is required for the system to be operational since the Linux Kernel provides the core operating system functionality, notably a scheduler, resource management and drivers.

Libc

DoudouLinux includes version 2.7-18lenny7 of glibc which is a fork of the main branch made by Debian developers for the Debian "Lenny". It was released on January 22, 2011 <ref name = "Glibc version ">GLibc Publishing history (Last accessed November 15, 2011).</ref>and was the latest stable release of this fork. The latest stable release of libc proper is 2.14 which was released on June 1, 2011. It has not been modified at all for DoudouLinux and is included as it is the same version of libc that is included in Debian 5 "Lenny".
It contains the standard libraries that are used by nearly all the programs on the system by providing the functionality for the C programming language.

X.org

The changes to Xorg in 7.5+8 (over 7.5) were fairly small, consisting of small typo and bug fixes, removing obsolete dependencies and adding support for new architectures. This is available from the changelog within the xorg_7.5%2B8.tar.gz source package.
Xorg provides the basis for Graphical User interface(GUI) which is the reason of its inclusion in DoudouLinux since it is focus on a graphical interaction with the children.

Bash

DoudouLinux includes version 3.2-4 of Bash, a Unix shell, which was released on October 11, 2006 <ref name = "Bash version ">Bash Archives (Last accessed November 15, 2011).</ref> . Bash proper latest release is 4.2 which was released on February 13, 2011. <ref name = "Bash wiki ">Bash wikipedia (Last accessed November 15, 2011).</ref>
It's inclusion in DoudouLinux is required since it interprets and executes command-line arguments.

Coreutils

DoudouLinux includes the version 6.10-6 of Coreutils which is a fork made by the Debian team. It was released on October 29, 2008<ref name = "coreutils">Coreutils Archives (Last accessed November 15, 2011).</ref> The latest stable release of the Debian fork is 8.5-1, but the official stable release of Coreutils is at 8.14 which was released October 12, 2011.<ref name ="GNU Core Utilties.">Gnu Core Utilities (Last accessed November 15, 2011).</ref> It's included as it is required and is the same version that is included in Debian 5 "Lenny" since it contains the essential basic system utilities and Unix tools, such as ls, dir, cp and rm.

BusyBox

Busybox 1.17.1-8 incorporates many changes on top of 1.17.1. According to the changelog in the source there are updates to the configuration re-application of previous patches and many bug fixes and improvements. The reason of the Busybox inclusion in our distribution is that it provides small versions of common Unix utilities, such as ls, ps, pwd and mkdir.

Epiphany Browser

DoudouLinux web browser is Epiphany which is a a simple and intuitive browser aimed at non-technical users and has parental control already set.The distribution version is 2.22.3-9 and was released on June 30,2008<ref name = "Epiphany">Epiphany Archives(Last accessed November 15, 2011)</ref> while the latest stable version is 3.0 and was released on April 5,2011. <ref name = "Epiphany 3.0">Epiphany 3.0(Last accessed November 15, 2011)</ref>

Gamine

Gamine is include in DoudouLinux for its educational value to the two year old who is discovering the mouse.The current version is 1.1-2 and was released in March 15, 2011.This is to my knowledge the latest version of Gamine.

GCompris

Gcompris, writen in C and python, is an educational suite that comprise different activities for children aged from two to 10.The version in our distribution, discovered by typing dpkg -p GCompris in the terminal command line, is 8.4.4-1.1 ; while the latest version is 9.6.1-0. It is included in DoudouLinux for its educational activities that include audio.

Pysycache

Pysycache is an educative application designed to teach children to play with the mouse by offering activities based on simple objects and photographies with their sounds in different languages; Hence its inclusion in DoudouLinux.Its version in our distribution,3.1-2 is the latest Debian version.
However,there are indications that the package was modified and customized for DoudouLinux since the version of the package is 3.1-2doudou1. Unfortunately that was the trouble we encountered in determining what was the modifications that the distribution's authors made to the original package as the disclaimer proclaims above.

Initialization

The initialization of DoudouLinux is the same as a Debian-based OS <ref name ="System initialization" >Debian initialization(Last accessed December 17, 2011).</ref>, it starts by executing first the BIOS then the boot loader code. DoudouLinux uses the same boot loader as Debian which is System V initialization.

The initialization of DoudouLinux was found by following the steps below<ref name = "An introduction to services, runlevels, and rc.d scripts ">An introduction to services, runlevels, and rc.d scripts (Last accessed November 16, 2011).</ref> :

1. First, we had to determine the runlevel that is executed on bootup.So, from the terminal, the command more /etc/inittab was typed in.
2. After figuring out the runlevel(2 is the default level), the command ls /etc/rc2.d, was typed in, which has symbolic links to the actual processes in inid.d.Note that you can switch run levels with the init <run_level> command.

The following table shows the symbolic links in rc2.d which maps to the process in init.d except the README file.

README
S01doudou-users
S05loadcpufreq
S05vbesave
S10rsyslog
S12acpid
S12dbus

S14avahi-daemon
S19cpufrequtils
S20cups
S20hotkey-setup
S24dhcdbd
S24hal
S26network-manager
S26network-manager-dispatcher

S30gdm
S89anacron
S99acpi-support
S99laptop-mode
S99rc.local
S99rmnologin
S99stop-bootlogd
S99timidity


3. Then, the command ls /etc/init.d , was typed in, which lists all the start-up scripts.
The following table sow these start- up scripts. The ones in bold are mapped to the symbolic links in the rc2.d

acpid

acpi-support
alsa-utils
anacron
avahi-daemon
bootlogd
bootmisc.sh
checkfs.sh
checkroot.sh
console-screen.kbd.sh
console-setup
cpufrequtils
cups
dansguardian
dbus
dhcdbd
doudou-users
fuse
gdm

glibc.sh
hal
halt
hdparm
hostname.s
hotkey-setup
hwclockfirst.sh
hwclock.sh
ifupdown
ifupdown-clean
keyboard-setup
keymap.sh
killprocs
laptop-mode
live-initramfs
loadcpufreq
module-init-tools
mountall-bootclean.sh

mountall.sh
mountdevsubfs.sh
mountkernfs.sh
mountnfs-bootclean.sh
mountnfs.sh
mountoverflowtmp
mtab.sh
networking
network-manager
network-manager-dispatcher
procps
rc
rc.local
rcS
README
reboot
rmnologin

rsyslog
sendsigs
set-alsa-output
single
skeleton
splashy
squid
start-stop-msg
stop-bootlogd
stop-bootlogd-single
sudo
timidity
udev
udev-mtab
umountfs
umountnfs.sh
umountroot
urandom
vbesave
wpa-ifupdown
x11-common

4. From the table, we could map the symbolic links in rc2.d to the scripts in init.d.
5. The order was found by going in rc2.d and checking the numbers associated with each symbolic links. We dont know why the numbers are not consecutive but they are executed in increasing order.

To summarize, /etc/inittab is the configuration file, with the /etc/init.d program initializing the system following the description in the configuration file. inittab will set the default run level of DoudouLinux, which is run level 2. Following this, all the scripts located in /etc/rc2.d are executed.

Here is the description of some of the scripts, in the order that they are run:

  • S05loadcpufreq: Detect and load the needed kernel modules.
  • S10rsyslog: Rsyslog is an open source software utility used on UNIX and Unix-like computer systems for forwarding log messages in an IP network. It implements the basic syslogprotocol, extends it with content-based filtering, rich filtering capabilities, flexible configuration options and adds important features such as using TCP for transport.<ref name ="rsylog" >Rsyslog(Last accessed December 17, 2011).</ref>
  • S12acpid: ACPID(Advanced Configuration and Power Interface) is a completely flexible, totally extensible daemon for delivering ACPI 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.<ref name ="Acpid" >ACPID(Last accessed December 17, 2011).</ref>
  • S12dbus: It is a message bus system, a simple way for applications and processes to talk to one another.
  • S14avahi-daemon: A daemon which is used for configuring the network automatically.
  • S20cups: It runs the CUPS daemon 'dbusd', required for printing.
  • S26network-manager: A daemon that automatically switches network connections to the best available connection.
  • S30gdm: A script for the GNOME display manager.
  • S99rc.local: Manages what can be initialized at boot time by running the /etc/rc.local file if it exists--by default this script does nothing, it is used only to exit.
  • S99rmnologin: it removes the /etc/nologin file as the last step in the boot process.
  • S99stop-bootlogd: it runs the /etc/rc.local file again, if it exists--by default this script does nothing, it is used only to exit.
  • S99timidity: A software synthesizer that can play MIDI (Musical Instrument Digital Interface) files without a hardware synthesizer.

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

References

<references />