Linux Embarqué 2 Édition
Total Page:16
File Type:pdf, Size:1020Kb
11674_LinuxEmbarque2e_XP 5/09/05 13:06 Page 1 Linux e Pierre Ficheux Linux embarqué 2 édition Ingénieur des Arts et P. Ficheux Avec Linux, solution idéale pour les systèmes embarqués Métiers, Pierre Ficheux est deux études Discrets mais omniprésents, les logiciels embarqués équipent aussi bien les appareils électroménagers et les un linuxien de renom, de cas véhicules que les assistants personnels et les téléphones mobiles. Dans un contexte où robustesse, légèreté et initiateur de plusieurs sites embarqué interopérabilité sont essentielles, le système libre Linux se révèle un excellent choix : Open Source et libre de droits, Linux et auteur il peut être adapté et diffusé à grande échelle pour un coût de licence nul, tout en intégrant l’ensemble des de nombreux tutoriels. dialectes Internet et multimédias. Il a travaillé entre autres chez Red Hat et s’est e Un ouvrage de référence accompagné de deux études de cas spécialisé dans les 2 édition Sans équivalent en français, l’ouvrage de Pierre Ficheux commence par un panorama du marché de l’embarqué et applications industrielles des solutions Linux existantes en les comparant aux alternatives propriétaires. Il indique la méthodologie à suivre de Linux embarqué. pour construire, à partir du noyau Linux, un système embarqué adapté. Cette nouvelle édition traite également de Pierre Ficheux est la prise en charge du noyau 2.6 ainsi que de l’utilisation et la création de chaîne de compilation croisée (ELDK et directeur technique CROSSTOOL). Deux études de cas directement extraites de l’expérience industrielle de l’auteur décrivent la construc- d’Open Wide, société tion d’un lecteur/enregistreur CD/MP3 et d’une station de consultation Internet. spin-off de deux grands groupes industriels français spécialisée Au sommaire dans les technologies édition Les logiciels embarqués et leurs domaines d’application : Typologie des systèmes embarqués Temps partagé • Open Source. e et temps réel • Panorama des systèmes existants : VxWorks et pSOS, QNX, µC/OS (micro-C OS) et µC/OS II, Windows CE, LynxOS, Nucleus, eCos Linux comme système embarqué : Avantages et inconvénients Systèmes 2 • • embarqué existants : compilation croisée ELDK/CROSSTOOL, RTLinux, MontaVista Linux, BlueCat Linux, µClinux, RTAI, ELDK • Applications : PDA, consoles multimédias et tablettes Internet, magnétoscopes numériques, routeurs, téléphonie, caméras IP, Freebox • Choix matériels : Architecture, PC ou non ? Processeur : MMU ou non ? Les processeurs compatibles x86. La mémoire de masse • Les bus d’extension ISA et PCI • Ports série et bus USB, I2C, I2O, IEEE • Les cartes PC/104, DIL, uCsimm • Construction du système : Distributions classiques • Démarrage • Fichiers de configuration (/etc) • Pseudo-fichiers ou nœuds (/dev) • Programmes essentiels (/sbin et /bin) • Bibliothèques essentielles (/lib) • Répertoires variables (/var) • Partition dédiée et répertoires • Le répertoire / extra, BusyBox • Configuration du réseau : Tests ICMP, TCP • Initialisation des interfaces locale et Ethernet • Services réseau • Optimisation du système : Authentification • Les systèmes de fichiers : ext2/ext3, ReiserFS, JFFS2, CRAMFS • Techniques particulières : Disques mémoire • Démarrage LOADLIN • GDB et strace • Problèmes de mémoire • LinuxBIOS. RedBoot • Systèmes temps réel • Systèmes minimaux : µClinux • Développement croisé • Interfaces graphiques : Console standard (mode texte) • X Window System • Réduction Pierre Ficheux du système • Serveur X minimal (Xkdrive) • Console graphique (frame-buffer) • Toolkits : Qt/Embedded et GTK- Embedded, Microwindows et Nano-X • Deux études de cas : Open Music Machine : Détail des API. Événements • Écran LCD • Arborescence des sources et compilation des modules • Gestion des fonctions, lecture des CD audio, navigation/sélection de fichiers, lecture/encodage MP3, client NAPSTER • Station Internet. Intégration du Conception : Nord Compo navigateur • Clavier et souris infrarouge • Configuration graphique. 8 4 À qui s’adresse cet ouvrage ? 7 6 – Aux développeurs Linux et aux ingénieurs ayant à réaliser des systèmes embarqués. 1 – Aux décideurs et industriels ayant à choisir une solution pour leurs applications embarquées. 1 2 1 Linux Sur le site www.editions-eyrolles.com 2 2 – dialoguez avec l’auteur ; 8 ISBN : 2-212-11674-8 Code éditeur : G11674 – téléchargez le code source des études de cas ; 7 @ – consultez les mises à jour et compléments. € 9 39 www.editions-eyrolles.com Linux_Titres 5/09/05 11:43 Page 2 ����� �������� �� ������� CHEZ LE MÊME ÉDITEUR R. HERTZOG, C. LE BARS, R. MAS. – Debian (collection Les cahiers de l’admin). N°11639, 2005, 310 pages. C. BLAESS. – Programmation en C sous Linux – Signaux, processus, threads IPC et sockets. N°11601, 2e édition, 2005, 964 pages. P. CEGIELSKI. – Conception de système d’exploitation – Le cas Linux. N°11479, 2004, 680 pages. J.-F. BOUCHAUDY, G. GOUBET. – Linux administration (collection Guides de formation Tsoft). N°11505, 2004, 936 pages. R. SMITH. – Accroître les performances d’un système Linux (collection Solutions Unix-Linux). N°11430, 2004, 812 pages. B. BOUTHERIN, B. DELAUNAY. – Sécuriser un réseau Linux (collection Les cahiers de l’admin). N°11445, 2004, 188 pages. C. BLAESS. – Scripts sous Linux – Shell Bash, Sed, Awk, Perl, Tcl, Tk, Python, Ruby… N°11405, 2004, 762 pages. Dans la collection Architecte logiciel F. VALLÉE. – UML pour les décideurs. N°11621, 2005, 282 pages. J.-L. BÉNARD, L. BOSSAVIT, R.MÉDINA, D.WILLIAMS. – Gestion de projet eXtreme Programming. N°11561, 2002, 300 pages. Dans la collection Algorithmes P. NAÏM, P.-H. WUILLEMIN, P. LERAY, O. POURRET, A.BECKER. – Réseaux bayésiens. N°11137, 2004, 224 pages. G. DREYFUS, M. SAMUELIDES, J.-M. MARTINEZ, M. GORDON, F. BADRAN, S. THIRIA, L. HÉRAULT. – Réseaux de neurones – Méthodologies et applications. N°11464, 2004, 408 pages. Y. COLLETTE, P. SIARRY. – Optimisation multiobjectif. N°11168, 2002, 322 pages. Dans la collection Accès libre S. GAUTIER, C. HARDY, F. LABBE, M. PINQUIER. – OpenOffice. org 2.0 efficace. À paraître. C. GÉMY. – Gimp 2 efficace. N°11666, 2005, 348 pages. D. GARANCE, A.-L. QUATRAVAUX, D. QUATRAVAUX. – Thunderbird – Le mail sûr et sans spam. N°11609, 2005, 300 pages. T. TRUBACZ. – Firefox – Retrouvez votre efficacité sur le Web ! N°11604, 2005, 210 pages. Linux_Titres 5/09/05 11:43 Page 1 ����� �������� �� ������� �������������� ÉDITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com Le code de la propriété intellectuelle du 1er juillet 1992 interdit en effet expressément la photocopie à usage collectif sans autorisation des ayants droit. Or, cette pratique s’est généralisée notamment dans les établissements d’enseignement, provoquant une baisse brutale des achats de livres, au point que la possibilité même pour les auteurs de créer des œuvres nouvelles et de les faire éditer correctement est aujourd’hui menacée. En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans autorisation de l’éditeur ou du Centre Français d’Exploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris. © Groupe Eyrolles, 2002, 2005, ISBN : 2-212-11674-8 Ficheux Livre Page V Jeudi, 1. septembre 2005 3:33 15 Remerciements La réalisation d’un ouvrage, quel qu’en soit le sujet, est en soi un défi. Je voudrais ici remercier ceux et celles qui directement ou indirectement ont contribué à la finalisation de ce projet. Je remercie tout d’abord Georges Noël, ancien professeur de mathématiques du lycée Michel-Montaigne, à Bordeaux, qui fut le premier à faire en sorte que l’ordinateur devienne un de mes fidèles compagnons de route. Joël Langla, professeur à l’École natio- nale d’arts et métiers de Bordeaux, est pour beaucoup dans la concrétisation de cette passion. À ces deux « maîtres » j’adresse mes plus respectueux sentiments. Je remercie également ceux qui ont contribué à mon exploration du monde Linux et Open Source dans mon environnement professionnel : Daniel Roche, Éric Dumas, François Peiffer, Olivier Seston, Jean-Louis Heyd, Michel Stempin, Benoit Papillault, Éric Bénard, Romain Jean, Nicolas Saubade, Peter Williams. Je tiens à exprimer une pensée particulière pour René Cougnenc, pionnier de Linux en France et parti trop tôt. Je remercie également le personnel de la société Open Wide pour son soutien durant ces mois de rédaction : Patrick Bénichou, François Hilaire, Wilfried Marek (merci pour « Brice de Nice »), Sylvie Plasse, Simon Boulay. Je tiens à remercier Patrice Kadionik de l’ENSEIRB qui a su inspirer le chapitre sur µClinux, ainsi qu’Éric Bénard pour les exemples RedBoot. Je remercie le personnel des Éditions Eyrolles, et notamment Muriel Shan Sei Fan pour sa patience et Éric Sulpice qui a initialisé le projet. Je remercie la SNCF dont les navettes TGV ont favorisé la rédaction de cet ouvrage avec le concours d’IBM dont les batteries de ThinkPad durent au moins trois heures ! J’adresse aussi mes plus affectueux sentiments à Cathy, Maxime et Julie. Enfin, merci à Raoul Volfoni et « Dirty » Harry Calahan. Ficheux Livre Page VI Jeudi, 1. septembre 2005 3:33 15 Ficheux Livre Page VII Jeudi, 1. septembre 2005 3:33 15 Table des matières Remerciements . V Préface . 1 Avant-propos . 3 À qui s’adresse ce livre ? . 3 Structure de l’ouvrage . 4 Précisions concernant cette deuxième édition . 4 Introduction . 7 Qu’est-ce que Linux ? . 7 Qu’est-ce que l’Open Source ? . 7 Un peu d’histoire : de Minix à Linux . 9 What is GNU ? Gnu is Not Unix . 11 PREMIÈRE PARTIE Systèmes embarqués, généralités . 15 CHAPITRE 1 Les logiciels embarqués et leurs domaines d’application . 17 Qu’est-ce qu’un logiciel embarqué ? . 17 Quelles sont les caractéristiques d’un tel logiciel ? . 17 Ciblé . 17 Fiable et sécurisé . 18 Maintenable dans le temps . 18 Spécifique . 18 Optimisé . 18 Logiciel embarqué ou système embarqué ? . 19 Les champs d’application . 21 Ficheux Livre Page VIII Jeudi, 1. septembre 2005 3:33 15 Table des matières VIII Typologie des systèmes embarqués . 24 Temps partagé et temps réel . 24 Préemption et commutation de contexte . 28 Extensions Posix . 29 Définition de l’empreinte mémoire . 30 Les langages utilisés . 31 Tour d’horizon des systèmes existants .