0% ont trouvé ce document utile (0 vote)
58 vues23 pages

Avantages et Développement sous Linux

Le document explique les raisons d'utiliser Linux, notamment sa gestion efficace des ressources, sa sécurité en tant que système open source, et sa compatibilité avec divers matériels. Il aborde également les étapes de développement d'un système embarqué, y compris le choix du matériel, l'installation de Linux, et la conception du système. Enfin, il décrit les outils nécessaires au développement, tels que le compilateur croisé, BusyBox, et les systèmes de gestion de paquets.

Transféré par

houda.djeraoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODP, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
58 vues23 pages

Avantages et Développement sous Linux

Le document explique les raisons d'utiliser Linux, notamment sa gestion efficace des ressources, sa sécurité en tant que système open source, et sa compatibilité avec divers matériels. Il aborde également les étapes de développement d'un système embarqué, y compris le choix du matériel, l'installation de Linux, et la conception du système. Enfin, il décrit les outils nécessaires au développement, tels que le compilateur croisé, BusyBox, et les systèmes de gestion de paquets.

Transféré par

houda.djeraoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODP, PDF, TXT ou lisez en ligne sur Scribd

Pourquoi l'utilisation de Linux

Pourquoi l'utilisation de Linux



Distinction entre noyau (kernel) du système
d'exploitation et l'application,

Le noyau gère les ressources hardware et propose
des services aux applications (API),

Une application est exécutée dans un contexte
(espace mémoire) séparé du noyau,

Les applications ne peuvent pas accéder
directement aux ressources hardware,

Une application défectueuse est isolée du noyau,
ce qui rend le système plus stable.
Pourquoi l'utilisation de Linux

Disponibilité de bibliothèque prêtes à l'emploi tels que
SSL, SSH, Serveurs webs, librairies C et pile TCP/IP.

Le développement de nouvelles technologies se fait
selon la publication des normes associées.
Connectivité : Zigbee, CANbus, SCSI …

Contrôle robuste des applications concurrentes :


– Gère les tâches dans des espaces séparés,


– Fournit une interface uniforme pour l'accès aux
ressources systèmes (syscall()),
– Arbitre les processus concurrents.
Pourquoi l'utilisation de Linux
Gestion moderne de la mémoire :

– Conceptde mémoire virtuelle : Les applications


ne voient pas la mémoire physique réelle,
mais une version translatée de celle-ci. Cette
transposition est gérée par le MMU (Memory
Management Unit),
– Lenoyau alloue au processus un espace
mémoire virtuel. Toute violation de cet espace
est détectée par le noyau et n'interfère pas
avec un processus voisin,
– Possibilité d'avoir de la mémoire virtuelle.
Pourquoi l'utilisation de Linux
Support d'une multitude de périphériques

– Plus de 200 adaptateurs réseau,


– 05 constructeurs de mémoire flash,
– 10 dispositifs de stockage de masse USB,
Système sécurisé (Open source)


Pourquoi l'utilisation de Linux
Support d'une multitude de périphériques

– Plus de 200 adaptateurs réseau,


– 05 constructeurs de mémoire flash,
– 10 dispositifs de stockage de masse USB,
Système sécurisé (Open source)


Autres raisons
Open source gratuit,

Environnement de développement gratuit,


Contrôle total sur le code source,


Modularité des librairies.



Étapes de développement (1/2)
Le hardware ciblé :

– Quel processeur choisir ?


– Quels périphériques choisir ?
– Existe-t-il
une carte de développement
associée ?
Comment obtenir Linux et quel Linux ?

– Est-ce que le fabricant fournit Linux compatible


avec la carte de développement ?
– Est-ce
que les drivers des périphériques sont
compris dans la distribution ?
Étapes de développement (2/2)
Comment booter Linux ?

– Par câble série, USB ou Ethernet ?


– Linux sur mémoire flash ?
– Comment configurer un terminal ?
Environnement de développement ?

– Sur quelle machine vais-je créer l'application ?


– Notion de compilation croisée !
– Comment tester le programme sur machine ?
Conception du système.

– Restriction des périphériques


– Restriction de la distribution Linux au minimum
Constitution d'un système embarqué

Le boot loader : composant qui charge le système
d'exploitation et assure le démarrage,
Noyau (kernel) : Composant qui gère les ressources

matérielles et les applications (process).



Le système de fichiers (Root file system) : Organisation
des fichiers ou répertoires. Il contient les fichiers de
programme développés et les fichiers du système. Peut être :
– Mémoire flash,
– Intégré dans le noyau,
– Sur un autre nœud du réseau.
Application : Programmes développés par vos soins

Boot loader

Initialise le processeur et prépare à démarrer le système
d'exploitation,

Il charge le noyau de son emplacement (mémoire flash)
vers la mémoire RAM,

Met le pointeur d'instruction à l'adresse de la première
instruction ( en RAM ),

Instruit le processeur de démarrer à l'emplacement
indiqué précédemment,
Le noyau prend la relève et le boot loader s'éteint.

PS : Le boot loader est indifférent à ce qui est chargé !


Le kernel (noyau) Linux
Résultat de travail de Linus Trovald :

– Fairefonctionner (porter) un système UNIX


(Sparc) sur x86, et obtenir Linux.
– Porter ensuite sur motorola 68000,
– Finalement,porter Linux sur les plus importants
processeurs actuels
La portabilité du noyau en fait sa force :

– Inutile
de réécrire des programmes ! Bénéficier
de qui a été déjà développé.
Le noyau n'est rien sans applications !

Système de fichiers racine

Représentation hiérarchique des répertoires et
des fichiers,

Le répertoire le plus élevé est la racine. Il
contient tout le système.

Il est possible de rattacher à ce système, d'autres
systèmes (contenues par exemple dans une clé
USB) en utilisant la commande Linux « mount ».

Si le noyau ne trouve pas de système de fichiers
racine à monter, il s'arrête !
Application
Programme écrit de votre part,


Il faut spécifier au noyau quelle application
exécuter après son démarrage,

Si cette application s'arrête, tout le système est
arrêté !

Sur machine de bureau, il s'agit du programme
« init »
Constituant du système de
développement
Le compilateur croisé et le debugger,

La distribution BusyBox,

Libraries UclibC,

Outils Automake / Autoconf,


Le système de package,

Le système de patch,

L'outil make.

Cross compiler / debugger

Compilateur qui produit un code destiné à être
exécuté sur une machine autre que la machine
hôte.

Plus exactement, nous avons besoin du
compilateur, de l'assembleur et de l'éditeur de liens.
En général il s'agit de GCC (GNU C Compiler),

Pour débugger, on utilise GDB.



Le déboggage se fait sur la machine cible (remote
debugging).
La distribution BusyBox
Version Linux très minimaliste,


La taille des composants système est optimisée
pour ne pas prendre beaucoup d'espace sur le
système de fichier ou en mémoire,
Système hautement configurable,

BusyBox consiste en 01 fichier.



Les commandes sont des raccourcis (symbolic
link ou symlink) vers ce fichier.
Projet uClibC

En C, il y a séparation entre le langage et les
librairies

Le langage tient sur 40 mots clés, alors qu'une
librairie peut avoir des milliers de fonctions,

Pourquoi ne pas construire un compilateur avec
une librairie minimaliste ?
La librairie la plus utilisée s'appelle uClibC.

Automake / Autoconf

L'open source est conçu pour être distribué sous forme
de code source,
Le code source est compilé selon la plate-forme ciblée.


Que ce passe-t-il si le code source a besoin d'une
bibliothèque et que cette dernière est incompatible avec
le code source ? Bugs !

Les fichiers automake et autoconf découvrent l'état de la
cible et créent des directives (fichiers make) afin de
guider le compilateur dans le but de choisir les
bibliothèques adéquates.
Systèmes de packages

Une fois un système Linux installé, il est possible
d'installer des composants supplémentaires sous
forme *.rpm ou *.deb.

Si des packages sont manquants pour le bon
fonctionnement du nouveau package, alors le
gestionnaire de paquets (package) propose
d'installer les packages manquants.

Patchs

Un patch est un fichier contenant un ensemble
d'instructions afin de modifier un fichier cible avec
des différences unifiées.

Pour créer un patch, il suffit d'utiliser un
programme qui calcul la différence entre deux
fichiers.
Commande make
Commande ancestrale de Linux,

Se base sur un fichier makefile,


Gère les dépendances des fichiers à compiler,



Make gère la compilation, et l'édition des liens.
Pour une compilation croisée, il faut préciser à

make, quelle est la plate-forme cible .


Ainsi pour un processeur ARM, on utilisera :

LD=arm-linux-ld
CC=arm-linux-gcc
En résumé

Vous aimerez peut-être aussi