Why Openmoko/fr
From Openmoko
Cet article examine les avantages et inconvénient de différents systèmes d'exploitation pour téléphone mobile, et explique pourquoi Openmoko est une vrai plateforme "ouverte".
Il y existe beaucoup de plateformes pour mobile sur cette terre aujourd'hui. La situation est très similaire au segment (des ordinateurs) bureautique, ou nous avons des système d'exploitation comme GNU/Linux, BSD, Mac OS X, Windows et quelques autres. Pour moi, le fait que Linux soit un modèle open source (à sources ouvertes) en fait un bien meilleur OS. Nous avons également de bon systèmes d'exploitation pour mobile comme Symbian, la plateforme Windows Mobile et Linux. Mais aucune d'entre elle n'est vraiment "ouverte". Êtes vous surpris de voir Linux dans cette liste? Linux est un OS pour mobile qui vient sous différentes formes et tailles qui ne sont pas vraiment compatibles entre elles, comme il existe différentes mises en œuvre de la plateforme. Il n'y a pas d'APIs communes sur lesquelles les développeurs pourraient s'appuyer. Des exemples existent tel que la mise en place par Motorola ou MontaSista. Au Moins, ce n'est pas le cas avec les OS propriétaires tel que Symbian et Windows Mobile. Ils fournissent d'abondantes informations pour aider les programmeurs tiers à programmer sur leurs plateformes.
Mettons maintenant cela de coté pour un moment, et concentrons nous sur projet de mobile basé sur la plateforme Linux appelée Openmoko, un projet qui combine l'essence même de l'open source avec une riche interface de programmation d'applications.
Openmoko est une vraie adaptation de Linux pour pc de bureau vers un Linux mobile, qui n'apporte pas d'aspects non-standards ou cachés. Elle a été construite en utilisant un serveur X standard, GTK, ALSA, Dbus et ainsi de suite. L'élégance est que même la plateforme matérielle (hardware) est aussi ouverte que la plateforme logicielle (software). Openmoko fait usage d'une plateforme standard pour rendre l'environnement mobile complet. Même les bricoleurs (hackers) de circuit imprimé trouveront qu'Openmoko est un rêve qui devient réalité !
Sommaire [hide]
* 1 Qu'est ce qui ne vas pas chez les autres? o 1.1 Symbian OS o 1.2 Windows Mobile o 1.3 iPhone * 2 Pourquoi Openmoko est le meilleur * 3 L'Architecture d'Openmoko * 4 Mais si quelqu'un avait des appels importants?
Qu'est ce qui ne vas pas chez les autres?
Faisons un tour sur ce qui ne vas pas du tout. Symbian OS
Tout d'abord le système Symbian, considéré comme la fenêtre vers le monde de la mobilité. Plus de 75% des téléphones vendu aujourd'hui, fonctionnent sous Symbian, et c'est peut être le système d'exploitation pour mobile le plus développé, soutenu par des leaders de l'industrie comme Nokia, Motorola, Sony et Lenovo. Mais il y a quelques points que je n'apprécie pas au sujet de Symbian, que je vous liste ci-dessous.
* Un système propriétaire : Symbian dispose d'un code source fermé développé par Symbian Ltd, et le pire de tout est qu'il utilise des programmes ouverts tel que GCC, Java, Perl et beaucoup d'autres dans son SDK (software development kit = kit de développement logiciel), mais ne partage pas son code de base ou ne supporte aucun OS opensource pour le développement de ses applications.
* Un environnement de développement restreint: Symbian n'assure le support technique que pour le développement d'application Symbian depuis Windows. Il n'existe pas de SDK officiel qui puisse être utilisé avec Linux ou Mac OSX. Ce qui est ironique c'est que la plupart des composant de Symbian ne fonctionneraient pas sans l'usage de programmes open source.
* Faible compatibilité ascendante: Chaque nouvelle version du système détruit le code. Vous ne pouvez pas simplement recompiler le code et faire fonctionner le code sur une nouvelle plateforme. Vous devez ré-écrire l'intégralité de l'application pour supporter le nouveau code.
* Nécessité de systèmes de dernière génération: Les téléphone de Symbian nécessitent une configuration matérielle décente pour fonctionner convenablement. Même en ayant cela, vous pouvez tomber sur des messages du type "Out of Memory" (plus d'espace mémoire). Je suis sur que beaucoup de nos lecteurs utilisant des téléphones Nokia sont déjà au courant de cela. * Difficile de programmer: Même si cela offre une grande variété d'APIs, elles sont difficiles à utiliser. On peut penser que Symbian permet l'usage de différents langages , mais souvenez vous — que si vous voulez vraiment programmer, vous devez savoir que le C++ Symbian est très différent du C++ standard, et donc d'autant plus ardu à apprendre.
* Plateformes UI vague: Symbian utilise deux plateformes UI (Interfaces utilisateurs) confuses et incompatibles entre elles nommées: S60 (appelée de manière formelle Série 60) et UIQ (Interface Utilisateur Quartz(User Interface Quartz)). Pour les développeurs, cela signifie que même si vous programmez pour Symbian, vous devez apprendre les spécificités technique de l'UI pour être opérationnels.
* Faible support technique envers les développeurs: à partir de Symbian 9, l'entreprise a commencé à punir les développeurs tiers. La plupart des fonctionnalités du téléphone sont ouverte uniquement aux membres reconnu (signés) de Symbian. Si vous n'êtes pas membre du programme de signature Symbian, alors vous ne serez pas en mesure d'utiliser la plupart des fonctions de base de l'OS.
* Verrouillage par version: Le système ne permet pas la mise à jour, si votre machine dispose de Symbian 9.1, il en sera ainsi aussi longtemps que vous vous en servirez. Vous ne serez pas capable de le mettre à jour vers une version plus récente du même système (OS). Ainsi vous êtes tenu de rester à l'âge de Pierre à moins de dépenser une fortune à l'achat d'un nouvel appareil avec un nouvel OS.
* Symbian est un système pour mobile uniquement: Vous ne pouvez pas utiliser vos précédentes aptitude pour construite autre chose avec cela dessus. En d'autres termes, vous ne pouvez utilisez vos aptitude pour Symbian dans aucun autre domaine.
Windows Mobile
Compte tenu des inconvénient de Symbian, Symbian n'est pas exactement similaire à windows sur PC, quoiqu'il s'en sort plutôt bien. Windows est mieux que Symbian sur certains points. Il dispose d'un meilleur support d'aide aux développeurs et dispose d'une pléthore de documentations disponible. Visual Studio est une excellente IDE (Integrated development environment) pour cela. Mais il y a quelques point que je n'apprécie pas de la part de Windows Mobile également.
* Verrouillage des vendeurs Microsoft: Rien n'est pire qu'un verrouillage d'un revendeur, ou les clef du verrou sont chez Microsoft. * Sources fermées : Je n'ai pas besoin de m'étendre sur le sujet, n'est ce pas? * Prédilection de Microsoft: Quand arrive un produit Microsoft, il y a toujours un nombre raisonnable de prédilection pour ce produit. Un exemple en est la nécessité pour bénéficier de certaines amélioration dans le calendrier ou les mails dans Windows Mobile 6, d'utiliser Exchange Server 2007. La situation est exactement la même sur PC, ou vous ne pouvez bénéficier de DirectX 10 si vous n'avez pas vista.
Souvenez vous de tous ces affaires juridiques (loi sur le monopole et violation loi antitrust aux USA) auxquels Microsoft doit faire face ?
* Pauvre description des API: Toute les API de Windows ne sont pas disponibles pour les développeurs tiers. Vous pouvez être amené à signer un NDA (Non-disclosure agreement, accord de non divulgation) avec Microsoft avant de pouvoir libérer le potentiel de l'OS.
iPhone
L'iphone d'Apple est très populaire, nous devons prendre cela en considération. L'iphone n'est pas exactement une plateforme d'application mobile, plutôt un nom de produit. Et malheureusement, il n'y a rien d'autre dans les magasins pour les développeurs et les utilisateurs. Nous allons faire également une liste des désavantages:
* Verrouillage démentiel d'Apple: Le téléphone est verrouillé par l'opérateur téléphonique et par la firme Apple, et vous en tant qu'utilisateur payez les 2.
Pourquoi Openmoko est le meilleur
Linux est la meilleur façon de programmer. Tout ce qui tient encore debout, comme Openmoko tient par la programmation sur Linux lui-même. Et voici pourquoi je pense ainsi :
* Open source: C'est vraiment open source, pas seulement en terme de logiciel, mais également en ce qui concerne le matériel (hardware). Vous apportant tout les éléments essentiels derrière votre excellent téléphone. * Construit à partir de l'open source : Openmoko est une collection étonnante de programmes open source déjà populaires utilisé pour construire une plateforme de développement mobile. * Développement inter plateformes : Allant de l'avant, le SDK Openmoko fonctionnera sous Windows et Mac également, vous donnant ainsi la possibilité de développer sur la plateforme de votre choix. * Développement facile d'applications: comme il fait appel à des technologies répandue, il est très facile d'ériger et de faire fonctionner une application sur Openmoko en un minimum de temps. Tout programmeur Linux se sentira chez lui, étant donne qu'Openmoko utilise des composant open source répandus comme GTK, X server, ALSA et ainsi de suite. * Léger sur la configuration matériel requise: Il ne nécessite pas une configuration très puissante pour fonctionner correctement. * Un grand soutient aux développeurs: Même si le projet en est à ces débuts, il dispose déjà d'un grand soutient communautaire. En dehors de cela, tout les composant utilisé pour construire Openmoko ont leur propre communauté. Ainsi, il y aura surement quelqu'un pour vous donner un coup de main. * Une API très riche: Openmoko a un très grand jeu d'APIs. Un petit nombre ont été développé exclusivement pour Openmoko, alors que les autres dont simplement dérivé d'autres projets. Openmoko vous permet d'utiliser vos compétences existantes pour créer les applications téléphoniques que vous souhaitez.
L'Architecture d'Openmoko
L'architecture d'Openmoko est simple, et déjà très puissante. La plupart de cela est basé sur une technologie open source déjà disponible. Bien que, de nouvelles techniques ont été développée exclusivement pour la plateforme. Openmoko consiste en ces composants majeurs: Image:Software1.jpg
* Noyau Linux 2.6 associé avec les drivers adaptés: Le projet fait usage des noyaux vanilla de la série 2.6, patché avec des patchs spécifiques à Openmoko. Le jeu de patch inclus un support additionnel pour de nombre équipements embarqués comme usb, SD, écran tactile, et drivers de communication.
Tout ces drivers résident dans l'espace du noyau, et sont chargés au démarrage.
* Services Linux Core (ou système) :
* o udev: il agit en tant que gestionnaire de périphériques et maintient tout les liens vers les périphériques dans un pseudo système de fichier /dev .udev fournit une façon standard pour faire interagir les différents composants. o blueZ: il s'agit de la pile Linux Bluetooth officielle qui est responsable de toute les activités bluetooth dans Openmoko. o Dbus: cela fournit une structure IPC (inter-process communication, communication entre processus). En d'autres mots, Dbus permet aux applications de communiquer entre elles. o GSM: Il consiste en GSM (le cœur du module GSM), GSMd (un démon pour gérer le terminal GSM) et libgsm (une API pour communiquer avec le sous système GSM).
* L'interface utilisateur (UI) o kdrive: c'est le client X pour plateformes embarquées, qui fonctionne directement sur un système de frame-buffer et supporte OpenGL. o matchbox: c'est un gestionnaire de fenêtres pour plateforme embarquée. Matchbox est devenue très populaire après ces récentes adoptions dans les tablettes Linux Nokia et le projet One Laptopt Per Child (Un ordinateur par enfant). o GTK: cett boite à outil de gadgets multi plate-forme est populaire de par sa nature open source et son fonctionnement sur de nombreuses plateformes. GTK est siège derrière l'environnement de bureau populaire GNOME. UPDATE: les gadgets Qt sont maintenant supportés. o ALSA: L'architecture avancée de son linux (The Advanced Linux Sound Architecture (ALSA)) fournit les fonctionnalités audio. ALSA est déja très utilisé sur les systèmes Linux et fait maintenant partit du noyau linux standard. o Qtopia: c'est la plateforme solide de niveau commerciale pour téléphone mobile et PDA de Trolltech, et on peut dire que c'est bien plus qu'une boite à outils graphique. * La structure applicative: o Noyau (libmokocore): Cela fournit le cœur des fonctionnalité de la structure, tel que le dispositif de commutation, lecture/écriture de données, signalisation application-vers applications, etc. Il utilise Dbus et les paquets Gconf. o .Net (libmokonet): Il fournit le cœur des fonctionnalités réseaux. Il utilise libgsm, bluez-lib et libgps. o UI (libmokoui): Il fournit les capacité de programmation de l'UI à la plate-forme et utilise GTK et ALSA (pour l'interaction entre les applications et le dispositif audio). Le GTK standard a été modifié pour fournir une riche expérience de développement d'applications mobile. o PIM (libmokopim): Fournit les capacité du coeur PIM (personal information management, gestion d'information personnelles). Il fait usage du serveur de données embarqué Evolution. * Applications: o Applications X11 : Applications Standards d'X11 liées à la libX11. o Applications au doigt: comportant le numéroteur, un menu, media player, etc. o Applications au stylet: incluant contacts, messages, applications de recherche, etc. o Applications tierces: des applications aux fonctions variées tel que des navigateurs webs, des applications de messagerie instantanée, etc.
Ultérieurement à cette rapide introduction à la plateforme Openmoko, dans de prochain articles je vous montrerai comment construire et faire fonctionner des programmes Openmoko. L'expérience est comme pirater le meilleur environnement mobile sur votre établi et oui, personne ne vous poursuivra! N'hésitez pas à envoyer vos commentaires sur kunaldeo at gmail.com (remplacer at par @)
--Kunaldeo 10:54, 30 Juin 2008 (UTC) Mais si quelqu'un avait des appels importants?
Le lecteur devrait encore être conscient qu'Openmoko n'est pas un produit complètement finit tel que les autres téléphones sur le marché. Bien qu'avec votre aide ...