COMP 3000 2011 Report: DoudouLinux: Difference between revisions
(140 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
==Background== | ==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 from | 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">[http://lwn.net/Articles/450503/ Linux info from the source] (Last accessed October 17, 2011).</ref> | ||
It is a system that aims at | 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, | 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">[http://distrowatch.com/?newsid=06909/ DistroWatch] (Last accessed October 17, 2011).</ref> and can be downloaded it on the DoudouLinux [http://doudoulinux.org/ homepage] as an ISO image file of approximately 693 MB in size. | DoudouLinux is officially available in 25 languages<ref name = "DistroWatch">[http://distrowatch.com/?newsid=06909/ DistroWatch] (Last accessed October 17, 2011).</ref> and can be downloaded it on the DoudouLinux [http://doudoulinux.org/ homepage] as an ISO image file of approximately 693 MB in size. | ||
Line 19: | Line 19: | ||
I used [http://www.vmware.com/ VMWare Workstation] and allocated 8GB for the virtual machine and 512MB of RAM. | I used [http://www.vmware.com/ 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>. | |||
The installation | 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.<br> | ||
No problems were encountered since there is | 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''']<br> | ||
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=== | ===Startup=== | ||
Line 46: | Line 47: | ||
|} | |} | ||
As shown in the activities menu(Figure 2) the applications are ordered by increasing difficulty.From the two year old child who discovers the mouse and the keyboard | 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. <br>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''']<br> | 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''']<br> | ||
The general games category includes standard puzzle and non-violent arcade fare, plus some common card and board games. | 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 | Hours were spent playing the games from the "Enjoy" category. | ||
. | |||
==Usage Evaluation== | ==Usage Evaluation== | ||
[[File:doudou.png|thumb|right| '''Figure 4''' Applications grouped in Categories ]] | [[File:doudou.png|thumb|right| '''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 | 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.<br> | ||
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. <br> | |||
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= | =Part 2= | ||
Line 79: | Line 73: | ||
=== Packaging Format and Utilities === | === Packaging Format and Utilities === | ||
As Doudoulinux is Debian based, | As Doudoulinux is Debian based, it uses the same package format[http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics .deb] with the main Debian package management program, [http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html 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 [http://wiki.debian.org/Apt Advanced Packaging Tool] (APT) that relies on dpkg, is installed as well as the utilities for manipulating .deb files: [http://manpages.ubuntu.com/manpages/hardy/man1/dpkg-deb.1.html dpkg-deb] and [http://manpages.ubuntu.com/manpages/oneiric/en/man1/dpkg-split.1.html dpkg-split]. | 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 [http://wiki.debian.org/Apt Advanced Packaging Tool] (APT) that relies on dpkg, is installed as well as the utilities for manipulating .deb files: [http://manpages.ubuntu.com/manpages/hardy/man1/dpkg-deb.1.html dpkg-deb] and [http://manpages.ubuntu.com/manpages/oneiric/en/man1/dpkg-split.1.html dpkg-split]. | ||
=== Listing Installed Packages === | === 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 command line, you get the list of the packages by typing | 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 <code>dpkg --list</code>. | ||
=== Adding and Removing Packages === | === 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. | 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 ">[http://download.doudoulinux.org/docs/userdoc-2011-09-27-en.pdf DoudouLinux User manual] (Last accessed November 12, 2011).</ref> <br> | <ref name = "DoudouLinux User Manual ">[http://download.doudoulinux.org/docs/userdoc-2011-09-27-en.pdf DoudouLinux User manual] (Last accessed November 12, 2011).</ref> <br> | ||
However,a package can be installed,when in superuser, using | However,a package can be installed,when in superuser, using <code> dpkg --install <packageName>.deb</code> where the packageName is a file in your current working directory. They can be removed by using <code> sudo dpkg --remove <packageName></code>, which will leave the package's configuration file, or <code>dpkg --purge <packageName> </code>,which will remove the package's configuration file as well. | ||
This method is somewhat inconvenient for adding packages since they must first be downloaded. | 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 ">[http://en.wikipedia.org/wiki/Advanced_Packaging_Tool Advanced Packaging Tool] (Last accessed November 11, 2011).</ref> | 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 ">[http://en.wikipedia.org/wiki/Advanced_Packaging_Tool Advanced Packaging Tool] (Last accessed November 11, 2011).</ref> | ||
So,in the terminal, typing | So, in the terminal, typing <code> sudo apt-get install <packageName></code> will install a particular package along with all of its dependencies, while <code> apt-get remove <packageName></code> will remove the package<ref name = "The Debian Package Management Tools ">[http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html The Debian Package Management Tools] (Last accessed November 13, 2011).</ref> <br> | ||
=== Software Catalog === | === Software Catalog === | ||
As mentioned above,DoudouLinux does not have an extensive list of packages that are installed. | 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 == | == Major package versions == | ||
Line 115: | Line 109: | ||
| 1.7.3+20 | | 1.7.3+20 | ||
| http://www.x.org/wiki/ (Debian-specific version: http://wiki.debian.org/XStrikeForce) | | http://www.x.org/wiki/ (Debian-specific version: http://wiki.debian.org/XStrikeForce) | ||
|- | |- | ||
| Qt 4 | | Qt 4 | ||
Line 165: | Line 155: | ||
|} | |} | ||
<br> | <br> | ||
=== Comparison of Packages to their Latest Stable Release === | === 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 ==== | ==== Linux Kernel ==== | ||
The Linux Kernel included in DoudouLinux is version 2.6.26-2-686 and was released on August 6,2008. | 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 ">[http://lxr.linux.no/#linux+v2.6.26.2/ DoudouLinux kernel version] (Last accessed November 13, 2011).</ref> | <ref name = "DoudouLinux Kernel version ">[http://lxr.linux.no/#linux+v2.6.26.2/ 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 ">[http://lxr.linux.no/#linux+v3.1.1/ Latest kernel version] (Last accessed November 13, 2011).</ref><br> | 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 ">[http://lxr.linux.no/#linux+v3.1.1/ Latest kernel version] (Last accessed November 13, 2011).</ref><br> | ||
Using the Meld tool,<ref name = "Meld ">[http://meld.sourceforge.net/ 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. | Using the Meld tool,<ref name = "Meld ">[http://meld.sourceforge.net/ 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 ==== | ==== 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 ">[https://launchpad.net/debian/+source/glibc/+publishinghistory 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". <br> | |||
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 [https://launchpad.net/debian/+archive/primary/+files xorg_7.5%2B8.tar.gz source package]. <br> | |||
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 ==== | ==== Bash ==== | ||
== | DoudouLinux includes version 3.2-4 of Bash, a Unix shell, which was released on October 11, 2006 <ref name = "Bash version ">[http://ftp.gnu.org/gnu/bash/ 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 ">[http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 Bash wikipedia] (Last accessed November 15, 2011).</ref><br> It's inclusion in DoudouLinux is required since it interprets and executes command-line arguments. | ||
==== Coreutils ==== | ==== 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">[https://launchpad.net/debian/+source/coreutils/6.10-6 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.">[http://en.wikipedia.org/wiki/GNU_Core_Utilities 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 [https://launchpad.net/debian/+archive/primary/+files/busybox_1.17.1-8.debian.tar.gz 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 ==== | ==== 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">[http://ftp.gnome.org/pub/GNOME/sources/epiphany/2.22/ 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">[http://ftp.gnome.org/pub/GNOME/sources/epiphany/3.0/ Epiphany 3.0](Last accessed November 15, 2011)</ref> | ||
==== Gamine ==== | ==== 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 ==== | ||
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 <code>dpkg -p GCompris</code> 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 ==== | ||
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.<br> | |||
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 == | == Initialization == | ||
= | The initialization of DoudouLinux is the same as a Debian-based OS <ref name ="System initialization" >[http://wiki.debian.org/BootProcess#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 ">[https://www.linux.com/news/enterprise/systems-management/8116-an-introduction-to-services-runlevels-and-rcd-scripts An introduction to services, runlevels, and rc.d scripts ] (Last accessed November 16, 2011).</ref> :<br> | |||
1. First, we had to determine the [http://en.wikipedia.org/wiki/Runlevel runlevel] that is executed on bootup.So, from the terminal, the command <code>more /etc/inittab</code> was typed in. <br> | |||
2. After figuring out the runlevel(2 is the default level), the command <code> ls /etc/rc2.d</code>, was typed in, which has symbolic links to the actual processes in inid.d.Note that you can switch run levels with the <code> init <run_level></code> command.<br> | |||
The following table shows the symbolic links in rc2.d which maps to the process in init.d except the '''README''' file.<br> | |||
{|border="1" | |||
| | |||
README<br> | |||
S01doudou-users<br> | |||
S05loadcpufreq<br> | |||
S05vbesave<br> | |||
S10rsyslog<br> | |||
S12acpid<br> | |||
S12dbus<br> | |||
| | |||
S14avahi-daemon<br> | |||
S19cpufrequtils<br> | |||
S20cups<br> | |||
S20hotkey-setup<br> | |||
S24dhcdbd<br> | |||
S24hal<br> | |||
S26network-manager<br> | |||
S26network-manager-dispatcher<br> | |||
| | |||
S30gdm<br> | |||
S89anacron<br> | |||
S99acpi-support<br> | |||
S99laptop-mode<br> | |||
S99rc.local<br> | |||
S99rmnologin<br> | |||
S99stop-bootlogd<br> | |||
S99timidity<br> | |||
|} | |||
3. Then, the command <code> ls /etc/init.d </code>, was typed in, which lists all the start-up scripts.<br> | |||
The following table sow these start- up scripts. The ones in bold are mapped to the symbolic links in the rc2.d<br> | |||
{|border="1" | |||
|'''acpid'''<br> | |||
'''acpi-support'''<br> | |||
alsa-utils<br> | |||
'''anacron'''<br> | |||
'''avahi-daemon'''<br> | |||
bootlogd<br> | |||
bootmisc.sh<br> | |||
checkfs.sh<br> | |||
checkroot.sh<br> | |||
console-screen.kbd.sh<br> | |||
console-setup<br> | |||
'''cpufrequtils'''<br> | |||
'''cups'''<br> | |||
dansguardian<br> | |||
'''dbus'''<br> | |||
'''dhcdbd'''<br> | |||
'''doudou-users'''<br> | |||
fuse<br> | |||
'''gdm'''<br> | |||
| | |||
glibc.sh<br> | |||
'''hal'''<br> | |||
halt<br> | |||
hdparm<br> | |||
hostname.s<br> | |||
'''hotkey-setup'''<br> | |||
hwclockfirst.sh<br> | |||
hwclock.sh<br> | |||
ifupdown<br> | |||
ifupdown-clean<br> | |||
keyboard-setup<br> | |||
keymap.sh<br> | |||
killprocs<br> | |||
'''laptop-mode'''<br> | |||
live-initramfs<br> | |||
'''loadcpufreq'''<br> | |||
module-init-tools<br> | |||
mountall-bootclean.sh<br> | |||
| | |||
mountall.sh<br> | |||
mountdevsubfs.sh<br> | |||
mountkernfs.sh<br> | |||
mountnfs-bootclean.sh<br> | |||
mountnfs.sh<br> | |||
mountoverflowtmp<br> | |||
mtab.sh<br> | |||
networking<br> | |||
'''network-manager'''<br> | |||
'''network-manager-dispatcher'''<br> | |||
procps<br> | |||
rc<br> | |||
'''rc.local'''<br> | |||
rcS<br> | |||
README<br> | |||
reboot<br> | |||
'''rmnologin'''<br> | |||
| | |||
'''rsyslog'''<br> | |||
sendsigs<br> | |||
set-alsa-output<br> | |||
single<br> | |||
skeleton<br> | |||
splashy<br> | |||
squid<br> | |||
start-stop-msg<br> | |||
'''stop-bootlogd'''<br> | |||
stop-bootlogd-single<br> | |||
sudo<br> | |||
'''timidity'''<br> | |||
udev<br> | |||
udev-mtab<br> | |||
umountfs<br> | |||
umountnfs.sh<br> | |||
umountroot<br> | |||
urandom<br> | |||
'''vbesave'''<br> | |||
wpa-ifupdown<br> | |||
x11-common<br> | |||
|} | |||
4. From the table, we could map the symbolic links in rc2.d to the scripts in init.d.<br> | |||
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.<br> | |||
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" >[http://en.wikipedia.org/wiki/Rsyslog 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" >[http://acpid.sourceforge.net/ 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== | ||
<references /> | <references /> |
Latest revision as of 03:39, 20 December 2011
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>
![](/wiki/images/thumb/a/a3/Start2.png/300px-Start2.png)
- 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]
![](/wiki/images/thumb/8/8b/Options.png/300px-Options.png)
- 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
![]() |
![]() |
![]() |
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
![](/wiki/images/thumb/5/5e/Doudou.png/300px-Doudou.png)
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
![](/wiki/images/thumb/7/71/Work.jpg/300px-Work.jpg)
![](/wiki/images/thumb/c/cf/Accessories.jpg/300px-Accessories.jpg)
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 |
S14avahi-daemon |
S30gdm |
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 |
glibc.sh |
mountall.sh |
rsyslog |
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 />