Editing Maemo training material/Getting Started/What is maemo

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.

Warning: This page is 41 kilobytes long; some browsers may have problems editing pages approaching or longer than 32kb. Please consider breaking the page into smaller sections.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
-
{{LaTeX2HTML2Wiki}}
 
=<span class="arabic">1</span>.<span class="arabic">1</span> What is this thing called maemo<sup><small>TM</small></sup>?=
=<span class="arabic">1</span>.<span class="arabic">1</span> What is this thing called maemo<sup><small>TM</small></sup>?=
Line 122: Line 121:
Below is a table of the software "stack" for the maemo platform:
Below is a table of the software "stack" for the maemo platform:
-
<!-- This table did not export with the perl script correctly from the original file. We ended up using the Reference manual one from the Architecture Chapter because it was exported nicely. -->
+
 
{| style="background-color: rgb(238, 238, 238)" border="1" cellpadding="3" align="center"
{| style="background-color: rgb(238, 238, 238)" border="1" cellpadding="3" align="center"
| style="background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle" colspan="7" |
| style="background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle" colspan="7" |
Line 199: Line 198:
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
[http://sourceforge.net/projects/openobex <small class="SMALL">Obex</small>]
[http://sourceforge.net/projects/openobex <small class="SMALL">Obex</small>]
-
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" | <small class="SMALL">ConIC</small>
+
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
 +
[http://maemo.org/maemo_release_documentation/maemo4.1.x/node6.html#sec:conic 5.3.1] <small class="SMALL">ConIC</small>
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
[http://www.cybergarage.org/net/upnp/c/index.html <small class="SMALL">UPnP</small>]
[http://www.cybergarage.org/net/upnp/c/index.html <small class="SMALL">UPnP</small>]
Line 215: Line 215:
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
[http://curl.haxx.se/ <small class="SMALL">curl HTTP</small>]
[http://curl.haxx.se/ <small class="SMALL">curl HTTP</small>]
-
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="2" | <small class="SMALL">Clipboard</small>
+
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="2" |
 +
[http://maemo.org/maemo_release_documentation/maemo4.1.x/node6.html#sec:clipboard 5.3.1] <small class="SMALL">Clipboard</small>
|-
|-
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
| style="background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle" colspan="1" |
Line 267: Line 268:
<small class="SMALL">InitFS including</small> [http://www.uclibc.org/ <small class="SMALL">uClibc</small>] <small class="SMALL">dsme</small>
<small class="SMALL">InitFS including</small> [http://www.uclibc.org/ <small class="SMALL">uClibc</small>] <small class="SMALL">dsme</small>
|}
|}
 +
 +
</div><div align="CENTER"><small class="SMALL">InitFS including</small> </div><div align="CENTER"><small class="SMALL">uClibc</small></div><div align="CENTER"><small class="SMALL">dsme</small></div>
We'll start from the bottom layer and go upwards by covering the services:
We'll start from the bottom layer and go upwards by covering the services:
Line 346: Line 349:
=<span class="arabic">1</span>.<span class="arabic">5</span> Typical maemo GUI application=
=<span class="arabic">1</span>.<span class="arabic">5</span> Typical maemo GUI application=
-
We next take a look at the components making up a typical GUI application developed for maemo (starting from the bottom):
+
We next take a look at the components making up a typical GUI application developed for maemo (starting from the bottom):
; '''C library'''
; '''C library'''
Line 384: Line 387:
=<span class="arabic">1</span>.<span class="arabic">6</span> Battery Doesn't Last Forever!=
=<span class="arabic">1</span>.<span class="arabic">6</span> Battery Doesn't Last Forever!=
-
Low power consumption is one of main hardware design goals with mobile devices because of the limited electric charge in their power supplies. If the hardware is designed correctly, it may itself contain logic and rules to enter different power saving states. To enter these power saving states the hardware requires that there is no activity in the system, in other words, there is no task ready to be run by the OS kernel scheduling mechanism. Even if power saving functionality is implemented in the hardware, activating it might not always be possible. If the applications running on the hardware are "misbehaving", then the system will be active all of the time and this makes it impossible for the power saving features to be activated at hardware level. Some of these power saving features include: changing the clock frequency dynamically, supporting multiple operating voltages and switching integrated peripherals' sleep modes.
+
Low power consumption is one of main hardware design goals with mobile devices because of the limited electric charge in their power supplies. If the hardware is designed correctly, it may itself contain logic and rules to enter different power saving states. To enter these power saving states the hardware requires that there is no activity in the system, in other words, there is no task ready to be run by the OS kernel scheduling mechanism. Even if power saving functionality is implemented in the hardware, activating it might not always be possible. If the applications running on the hardware are "misbehaving", then the system will be active all of the time and this makes it impossible for the power saving features to be activated at hardware level. Some of these power saving features include: changing the clock frequency dynamically, supporting multiple operating voltages and switching integrated peripherals' sleep modes.
Different parts of the hardware will require different amounts of power to run. The following pie diagram is not based on any real measurements but roughly shows how power consumption is distributed between different subsystems in a device:
Different parts of the hardware will require different amounts of power to run. The following pie diagram is not based on any real measurements but roughly shows how power consumption is distributed between different subsystems in a device:
Line 405: Line 408:
=<span class="arabic">1</span>.<span class="arabic">7</span> maemo development resources=
=<span class="arabic">1</span>.<span class="arabic">7</span> maemo development resources=
-
maemo has its own website (at [http://maemo.org maemo.org]), which includes:
+
maemo has its own website (at [http://maemo.org maemo.org]), which includes:
* Links to mailing lists (and their archives)
* Links to mailing lists (and their archives)
Line 417: Line 420:
* The maemo wiki and other community supported resources (garage)
* The maemo wiki and other community supported resources (garage)
-
There is also an IRC channel for developers (#maemo@Libera). You can find people related to Scratchbox and maemo hanging there lot of times. Scratchbox also has its own channel.
+
There is also an IRC channel for developers (#maemo@FreeNode). You can find people related to Scratchbox and maemo hanging there lot of times. Scratchbox also has its own channel.
Note that everything you discuss on the IRC channel and mailing lists (as well as bugs you post using bugzilla) is *public information*. You might want to ask someone whether your working environment has a policy on using public resources before using them.
Note that everything you discuss on the IRC channel and mailing lists (as well as bugs you post using bugzilla) is *public information*. You might want to ask someone whether your working environment has a policy on using public resources before using them.
Line 423: Line 426:
=<span class="arabic">1</span>.<span class="arabic">8</span> Other programming interfaces=
=<span class="arabic">1</span>.<span class="arabic">8</span> Other programming interfaces=
-
Using the previously presented software library stack is not the only possibility. The platform also includes SDL (Simple DirectMedia Layer) which is a library that was originally developed by Loki Entertainment, a company that specialized in creating Linux-versions of popular commercial games. It contains most of the code necessary to write games and implement low-level graphics. SDL is not covered by this material, but you can find the API (and other) documentation at [http://www.libsdl.org/ libsdl.org] .
+
Using the previously presented software library stack is not the only possibility. The platform also includes SDL (Simple DirectMedia Layer) which is a library that was originally developed by Loki Entertainment, a company that specialized in creating Linux-versions of popular commercial games. It contains most of the code necessary to write games and implement low-level graphics. SDL is not covered by this material, but you can find the API (and other) documentation at [http://www.libsdl.org/ libsdl.org] .
If you like to work with APIs that are hard to understand, you can use the Xlib-interface and implement your interactive program directly with it (not recommended for the faint hearted).
If you like to work with APIs that are hard to understand, you can use the Xlib-interface and implement your interactive program directly with it (not recommended for the faint hearted).
Line 430: Line 433:
It is also be possible to use the [http://pymaemo.garage.maemo.org/ Python] programming language to write GUI programs (there are bindings for the Hildon toolkit as well) and there are community driven projects for using [http://maemo.rubyx.co.uk/ruby-maemo/ Ruby] and [http://live.gnome.org/Vala Vala] as well as others.
It is also be possible to use the [http://pymaemo.garage.maemo.org/ Python] programming language to write GUI programs (there are bindings for the Hildon toolkit as well) and there are community driven projects for using [http://maemo.rubyx.co.uk/ruby-maemo/ Ruby] and [http://live.gnome.org/Vala Vala] as well as others.
 +
 +
<br />
 +
 +
----
 +
</div>

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)

Templates used on this page: