Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.
-
Upload
adolphe-porte -
Category
Documents
-
view
108 -
download
2
Transcript of Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.
![Page 1: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/1.jpg)
Systèmes d’exploitation pour l’embarqué et
THINK
Etude ApprofondieArnaud CONSTANCIN25/11/2003
![Page 2: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/2.jpg)
Arnaud Constancin2/29
Sommaire :
Tini (Tiny Internet Interface) Principe des systèmes d’exploitation THINK Is Not a Kernel Des concepts à la pratique : Think/Tini Demo !
![Page 3: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/3.jpg)
TINI : Tini Internet Interface
PrésentationMémoire : Caractéristiques Applications industrielles
![Page 4: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/4.jpg)
Arnaud Constancin4/29
Tini : Présentation
Moins de 100 euros OS propriétaire + JVM Micro-contrôleur DS80C390 Controleur intégrés :
Ethernet Série (x2) CAN I2c 1-Wire
![Page 5: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/5.jpg)
Arnaud Constancin5/29
Mémoire : caractéristiques
Adressage 24 bits (4Mo) Rom : 512 ko Ram 1024 ko
Periphérical segment
Data segment Code segment
![Page 6: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/6.jpg)
Arnaud Constancin6/29
Applications industrielles
Accès aux bus de terrains Contrôle distant de capteurs et d’actionneurs Collecte de données Domotique etc…
![Page 7: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/7.jpg)
Principes des systèmes d’exploitations
Présentation Les ressources Les differents types de noyaux Spécificité de l’embarqué
![Page 8: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/8.jpg)
Arnaud Constancin8/29
Les Systèmes d’exploitation
Rôle Abstractions de la machine Partage des ressources matérielles
Services Accès aux ressources
Notion de noyau Couche essentielle d’un système Gestion et partage des ressources
![Page 9: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/9.jpg)
Arnaud Constancin9/29
Les ressources matérielles
Processeur UAL, UC, Contexte (Registres) Exceptions et évènements Mode d’exécution (superviseur / utilisateur)
Mémoire et MMU Contrôleurs de Périphériques i/o
Série, USB,PCI, AGP, Fire-Wire, WIFI, IDE, etc…
![Page 10: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/10.jpg)
Arnaud Constancin10/29
Ressources systèmes
Abstraction des ressources matérielles Fils d’exécution (Thread) Mémoire virtuelle --> Processus Fichiers, sockets, etc…
But : répartition des ressources
![Page 11: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/11.jpg)
Arnaud Constancin11/29
Les concepts de noyaux (1/5)
Noyau à domaine de protection unique DOS, PalmOS
Efficace
Aucune sécurité
matériel
appli
service
![Page 12: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/12.jpg)
Arnaud Constancin12/29
Les concepts de noyaux (2/5)
Noyau monolithiques 1eres générations de Linux et d’AIX… Performant et relativement sécurisé. Peu extensible, maintenance délicate.
matériel
appli
service
Noyau monolithique
![Page 13: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/13.jpg)
Arnaud Constancin13/29
micronoyau
Les concepts de noyaux (3/5)
Micronoyaux Mach(BSD, MacOSX), GNU-HURD Très sécurisé Peu performant (Génération actuelles optimisées)
matériel
appli service
![Page 14: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/14.jpg)
Arnaud Constancin14/29
Les concepts de noyaux (4/5)
Noyau extensible Linux, AIX, Solaris… Chargement dynamique de code Manque de sécurité
micronoyau
matériel
appli
service
![Page 15: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/15.jpg)
Arnaud Constancin15/29
Les concepts de noyaux (5/5)
Exonoyau Performance Extensible Perte de contrôle des ressources par le noyau
micronoyau
matériel
appli
service
![Page 16: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/16.jpg)
Arnaud Constancin16/29
Spécificité de l’embarqué
Processeurs Simples Pas de MMU Pas de mode d’exécution
Ressources restreintes Mémoire vitesse
![Page 17: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/17.jpg)
THINK Is Not a Kernel
Présentation et Définitions
Canevas logiciel
Fonctionnement global
![Page 18: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/18.jpg)
Arnaud Constancin18/29
THINK : présentation
THink Is Not a Kernel Architecture pour Exo-Noyaux Préoccupation :
Extensibilité / Flexibilité / Adaptabilité / ModularitéEfficacité / PerformanceEt tout et tout...
Projet Open Source : ObjectWeb.org
![Page 19: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/19.jpg)
Arnaud Constancin19/29
THINK : Définitions
Composants Réifient les ressources matérielles Possèdent une Interface (ou plusieurs) Associés à un nom Utilisent les services d’un canevas pour communiquer entre
eux (liaison)
Liaisons Flexibles Canal de communication inter-composant Locales / distantes Assemblage de composants (1 ou plusieurs)
![Page 20: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/20.jpg)
Arnaud Constancin20/29
THINK : Canevas logiciel
Canevas Logiciel Naming Context
Trader (Courtier)
Binding factory (Usine de liaisons)
NanoNoyau L'essentiel pour booter !
![Page 21: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/21.jpg)
Arnaud Constancin21/29
Fonctionnement Globale
Matériel
Nano noyau : réifie la machine sans abstraction
Composant A Composant B
Composant C
Implémente une ou plusieurs
interfacesExporte sesInterfaces--> Nom
Se lient
utilise
Usine à liaisons
Contexte de nommage
Canevas logiciel
Courtier (Trader)
Demande une interface
![Page 22: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/22.jpg)
Des concepts à la pratique avec Think/Tini
Prototype
Codage
Démo !!
![Page 23: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/23.jpg)
Arnaud Constancin23/29
Think/Tini : Le prototype !
Nano noyau Boot et interruption
Canevas de base de THINK Trader / Naming Context / Binding Factory
Pilotes de périphériques Leds / Afficheur LCD / Port série
Application : Interpréteur de commande sur port série
![Page 24: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/24.jpg)
Arnaud Constancin24/29
Think/Tini : Dépendances
<component name="serialshell" class="exec"><description>This shell is provided for components debugging purpose.</description>
<file name="serialshell.tini"/><probe value="true"/><!--optionnel-->
<produces interface="input" type="activity.input"/><consumes interface="trader"/><consumes interface="BF"/><consumes interface="display"/><consumes interface="serial"/><consumes interface="leds"/>
</component>
![Page 25: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/25.jpg)
Arnaud Constancin25/29
Think/Tini : Composition
<component name="shelltest"><description>Shell on serial port test !</description><file name="shelltest.tini"/><needs component="boot"/><needs component="libc"/><needs component="ds80c390"/><needs component="BFlocale"/><needs component="trader"/><needs component="tutorioleds"/><needs component="serial"/><needs component="tutoriodisplay"/><needs component="serialshell"/>
</component>
![Page 26: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/26.jpg)
Arnaud Constancin26/29
Think/Tini : Interface
Décrites en Java puis converties en C
methRéférenceD’interface
Descripteur d’interface
m1
m2
m3
Structure de méthode
de l’interface
data
Variable statiques
![Page 27: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/27.jpg)
Arnaud Constancin27/29
Think/Tini : Interface
package appli;
public interface shell {
void start();
}
typedef struct {
struct Mappli_shell *meth;
void *selfdata;
} Rappli_shell;
/* Virtual table */
struct Mappli_shell {
void* (*cast)(void* this, const unsigned char* type) reentrant;
void (*start)(void* __this) reentrant;
};
![Page 28: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/28.jpg)
Arnaud Constancin28/29
Think/Tini : Composant Interfaces multiples :
methRéférenceD’interface 1
Descripteur Itf1
m1
m2
m3
Structure de méthode
de l’interface
data
Variable statiques
m4methRéférenceD’interface 2
Descripteur Itf 2
data
![Page 29: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/29.jpg)
Arnaud Constancin29/29
Think/Tini : Composant
struct serialshelldata {
Rappli_shell itf;
char in_buffer[256];
};
static void start(void* __this) reentrant{/* implementation */}
static struct Mappli_shell serialshellMeth = {
meth = &serialshellMeth
selfdata = &d;
};
![Page 30: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/30.jpg)
Arnaud Constancin30/29
Think/Tini : Composant
void serialshellProbe(void) reentrant{
static struct serialshelldata d;
serialshellMeth.start = start;
Rthink_Name* rtn;
rtn =(Rthink_Name *) CALL1(Trader, lookupfirst, "serial");
refserial =(Rdrivers_serial *)CALL2(defaultBF, bind, rtn, 0);
/* Enregistrement aupres du trader */
Rthink_Top* itfptr = (Rthink_Top *)(&(d.itf));
rtn = CALL2(defaultNC,export,itfptr,0);
CALL2(Trader,_register,rtn,"shell");
}
![Page 31: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/31.jpg)
Arnaud Constancin31/29
Conclusion
Relativement facile à programmer --> Enseignement
Prochaines étapes : Reconfiguration dynamique Multitâche Communication évènementielle
![Page 32: Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.](https://reader035.fdocument.pub/reader035/viewer/2022062404/551d9db7497959293b8dbcc6/html5/thumbnails/32.jpg)
Arnaud Constancin32/29
Petite démo
Application : interpréteur de commande Saisie des commandes
Lecture de caractère sur le port série
Appels des jeux de test des composants Test des Leds, Affichage de message sur le LCD, Envoie de chaîne de caractères sur le port série