Cours Linux Chapitre1
Cours Linux Chapitre1
Cours Linux Chapitre1
embarqués
Présentée par
11/04/2021 1
Cours Linux pour systèmes embarqués
• Objectifs du cours
Introduction aux systèmes embarqués : Notions de base, architectures, Caractéristiques,
Fonctionnement, etc.
Introduction à Linux embarqué et architecture générale du système.
Chaîne de compilation croisée : Bootloaders, Noyau Linux, configuration, compilation
et installation.
Le temps-réel sous Linux.
Surveillance et supervision : RTOS, multitâches et ordonnanceur, électronique et
informatique embarquées, perception et interaction avec l’environnement.
Méthodologie de création d’un système Linux embarqué en se basant sur :
Présentation et utilisation des outils de développement de systèmes Linux embarqué.
Réutilisation de composants open-source dans un système embarqué
Développement et mise au point d’applications pour le système embarqué
11/04/2021 2
Introduction aux systèmes embarqués
• Notion de base
Un système embarqué est un système électronique et informatique autonome ne
possédant pas des entrées/sorties standards comme un clavier ou un écran
d'ordinateur.
Sureté:
Sureté de fonctionnement du logiciel (système opérationnel même quand un composant
électronique « lâche »
Introduction aux systèmes embarqués
• Caractéristiques
Contraintes physiques fortes: dimensions, poids, taille, autonomie
Équipements supplémentaires:
Entrée: Sortie
des capteurs
analogiques actionneurs
couplés à des analogiques
convertisseurs couplés à des
A/N convertisseurs
N/A.
Environnement
extérieur :
Variations de la température, Vibrations, chocs.
Variations des alimentations, Eau, feu, radiations.
Introduction à Linux embarqué
13
Introduction à Linux embarqué
Qu’est ce qu’un système d’exploitation OS:
Un système d’exploitation est un ensemble de programmes qui coordonnent le
fonctionnement des différents composants matériels et logiciels d’un système informatique.
Fonctionnalités d’un Système d’Exploitation
•Servir les requêtes des processus : Appels systèmes :Read,Write,Open,…
•Traiter les exceptions matérielles dues aux processus: Déroutements :Division par
0,Débordement de pile,…
•Gérer les interruptions matérielles : Interruptions :clavier /souris ,réseau,…
•Fournir un ensemble de services spécifiques
•Assurer des tâches d’entretien du système : Gestion du swap, des caches,…
Gestionnaire de pages,…
Exemple de Système d’Exploitation:
Windows, Unix, Mac OS, Ms Dos…
Introduction à Linux embarqué
Architecture générale
Introduction à Linux embarqué
.
Qu’est ce que UNIX:
Project LINUX
Project GNU
GNU/LINUX
Introduction à Linux embarqué
.
Qu ’est-ce que linux ?
Une version de Linux embarqué peut être configurée « à la carte » pour fonctionner sur
une plateforme donnée
Introduction à Linux embarqué
.
• Architecture matériel supportée par Linux
Les architectures de processeur assez connues et souvent employé le mode de
l’embarqué et les supports par Linux de chaque architecture:
X86 : Intel est toujours le plus grand distributeur des processeurs de cette famille.
ARM est fabriqué par Intel, Toshiba, Samsung... et très populaire et fiable pour
l’embarqué dans plusieurs domaines d'application
MIPS : Microprocessor without Interlocked Pipeline Stages . On peut le trouver dans
Sony Play StationI/II , Cisco routeurs et également et les systèmes embarqués de la
petite taille.
PowerPC : est très connu par son utilisation dans la machine Apple, et il est
également développé par IBM dans la famille des serveurs. . Cependant, Il peut être
employé pour le linux embarqué de grande taille TiVo.
Dans la plupart des cas, les concepteurs préfèrent les processeurs ARM, MIPS, et
PowerPC à i386 en raisons de la complexité et du coût.
Introduction à Linux embarqué
Architecture logicielle d'un Linux
Embarqué
Le noyau :Son but est de contrôler le matériel d'une
façon logique. Linux conduit des dispositifs, contrôle
des accès d'I/O, gestion de processus, gestion de la
mémoire, manipule la distribution des signaux.
Le noyau doit pouvoir charger et/ou accéder à un
Rootfilesystem via une certaine forme de stockage
permanent ou stockage en réseau.
Un Système de Fichiers doit être présent dans Linux
embarqué.
Les applications se basent sur des bibliothèques qui
fournir les APIs familiers et services abstraits qui
communique avec le noyau pour obtenir la
fonctionnalité désirée.
La bibliothèque principale employée par la plupart
des applications de Linux est la bibliothèque de GNU
C.
Distributions pour l’embarqué:
Distribution commerciale:
focalisé sur le secteur des télécoms et réseaux,
• MontaVista Linux
• Koan
• Sysgo
Distribution non commerciale
• Buildroot
• Open Embedded
• EDLK (Embedded Linux Development Kit): Fournit des chaînes de
développement pour PowerPC, ARM, MIPS
• RTAI
Distribution standards
• Linux (Debian, redhat, linuxPPC…)
Outils pour l’embarqué :Bootloaders
C’ est un logiciel permettant de lancer un ou plusieurs
systèmes d'exploitation (multiboot), c'est-à-dire qu'il permet d'utiliser
plusieurs systèmes, à des moments différents, sur la même machine.
DasU-boot (DasUniversalBootloader)
• Gère les PowerPC, ARM, MIPs, X86…
• Permet de lire/écrire de la flash et de laRAM
• Permet de booter depuis la flash, leréseau ou une carte mémoire
Redboot
• Chargeur de démarrage basé sur projet eCos de RedHat
• Gère les Power PC,ARM,MIPs,X86,sh,m68k…
• Fonctionnalités comparables à U-boot
LinuxBIOS,
Remplace le BIOS standard des PCs ; Rapide (boot depuis NVRAM)
Arborescence
Organisation des dossiers :
.
ARBORESCENCES DES FICHIERS
29
Arborescence
• Se déplacer dans l’arborescence .
• Commande cd nomrep (Change Directory)
• Chaque répertoire possède 2 fichiers particuliers
• . Est un lien sur le répertoire courant. Sert à forcer le système à considérer le répertoire
courant comme point de départ
• .. Est un lien vers le répertoire supérieur dans la hiérarchie
Système de fichier Racine
.
Organisation des dossiers :
La racine "/"
un "gros dossier de base qui contient tous les autres dossiers et fichiers".
Sous Windows, il y a en fait plusieurs racines. "C:\" est la racine de votre disque dur
Sous Linux, il n'y a qu'une et une seule racine : "/".
31
Système de fichier Racine
.
Organisation des dossiers :
33
Système de fichier Racine
Organisation des dossiers : .
/ dev : contient les fichiers spéciaux pour accéder aux périphériques
On dois indiquer ce fichier dans la configuration de mes outils de
communication par exemple:
-/dev/input/mousse :souris.
-/dev/fd0 lecteur de disquettes
-/dev/video carte graphique
36
Commandes relatives aux fichiers
Donne le répertoire courant : pwd
Variable PWD (echo$PWD)
Liste le contenu du répertoire : ls
.
38
Système de gestion de fichier
Droits d’accès des fichiers
Combinaison des droits (r,w,x) pour les classes (u,g,o,a)
obtenir les droits d’un fichier ou d’un répertoire.
Affichable grâce à ls–l
-rw-r--r--1 belloir184025 jan 15 16:23 cours.txt
-rw-r--r--1 belloir4024 jan 15 12:23 td1.txt
Lecture pour tout le monde et écriture pour utilisateur
Exemple de type de fichier : d rwxr-xr-x
La 1ère lettre détermine le type de fichier (7 types)
- fichier ordinaire
d répertoire (directory)
l lien sur un fichier ou un répertoire
s socket
b fichier spécial de type bloc (pilote de disque)
c fichier spécial de type caractère (pilote de terminal)
p fichier spécial FIFO
Les droits d’accès sont modifiables par le propriétaire du fichier
chmod utilisateur opération permission nomfic 39
Système de gestion de fichier
Droits d’accès : modifiables par le propriétaire du fichier
chmod utilisateur opération permission nomfic
40
Gestion de Mémoire
Unix s’appuie sur de la mémoire virtuelle
• Les adresses mémoires gérées dans les processus ne sont pas
directement des références à des adresses physiques
• Chaque processus a son espace d’adressage virtuel
• Les adresses virtuelles sont traduites en adresses physiques
• Le circuit MMU opère la conversion à chaque référence
• A l'aide d'un ensemble de registres qui désignent les tables de
conversion du processus courant
• Une table de conversion est associée à chaque processus
• Lors du changement de contexte (= processus courant)
• chargement des registres du MMU avec de nouvelles adresses de tables
Gestion de Mémoire
Utilisation de mémoire virtuelle avec 2 autres techniques
• Pagination
• La mémoire est divisée en morceaux
• L’allocation se fait par nombre entier de pages
• Peu de fragmentation externe (espace libre coupé en petits morceaux)
• Sujet à fragmentation interne (sur allocation)
• Nécessite une MMU en hardware
• Segmentation
• Permet d’isoler des morceaux de mémoire
• Ils ne sont pas accessibles par le processus en cours d’exécution
• Utilisation de registres hardware
• Si non respect, segmentation fault
Ces deux techniques permettent d’assurer une protection de la mémoire
Un processus ne peut lire/écrire dans la mémoire d’un autre
Gestion de Mémoire
Distinction entre la mémoire utilisée par le noyau et celle utilisée par les processus
Kernel Space
zone mémoire d’exécution du noyau, ses extensions (modules…) et certains pilotes
de périphériques.
Jamais mis dans le swap
User Space
zone mémoire d’exécution des programmes utilisateurs
Pour accéder au kernel space un programme utilisateur doit passer par des appels
système.