Comment fonctionne Linux ? Comment l'utiliser pour faire un système embarqué ? Introduction Dans ce cours on va voir comment fonctionne Linux embarqué, quelles sont les différent éléments de ce système d’exploitation et comment l’utiliser dans les systèmes embarqués. Linux est un système multi utilisateur : plusieurs utilisateurs peuvent utiliser le système d’exploitation en même temps (en parallèle) après un login.Le système d’exploitation gère des droits d’accès, (user, group, others) et limité. Ceci réglemente les accès aux ressources (fichiers, périphérique , E/S, mémoire…). Linux est un système d’exploitation multiprocessus : Plusieurs processus ou programme s’ éxécutent en parallèle sur le système.Cela peut-être un processus utilisateur ou un processus système. Sommaire masquer 1 Comment fonctionne Linux ? Comment l'utiliser pour faire un système embarqué ? 1.1 Introduction 1.2 Découverte de Linux 1.2.1 Le kernel (Noyau) 1.2.2 Ordonnancement 1.2.3 Processus 1.2.4 Démarrage d’un ordinateur 1.2.5 Cas de la rapsberry pi 1.2.6 Mode d’adressage Découverte de Linux Un système d’exploitation linux a la gestion de :processeurmémoireentrées/sortiesl’éxécution des processustempsdroitssystème de fichierssynchronisations et des communications inter-processusinterruptions et des exceptions Le kernel (Noyau)Le kernel est la zone la plus centrale du calculateur. Il y a deux états dans un kernel : superviseur et utilisateur.Les principales fonctions d’un kernel sont : Interruption + exceptions, Entrée/sortie, gestion ḿémoire,ordonnancement, processeur, réseau, temps… OrdonnancementLe principe de l’ordonnancement c’est de gérer le parallèle d’exécution entre processus. L’ordonnancement possède pluieurs caractéristiques :le tempsles droits d’accès,le système de fichierles synchronisations et communcation inter processusinterruption et exceptions : quel événement va arriver dans le système ?ressources allouées, requisesétat du processus (actif, attente …).implementation mémoirepriorité ProcessusUn processus est un programme qui s’ éxécute en mémoire (RAM). Cette zone mémoire lui est attribuée par le système d’exploitation et lui est propre. Aucun processus ne peut accéder à cette zone. Toute tentative d’accès à cette zone par un autre processus provoque une exception “violation de mémoire” gérée par la système d’exploitation. Cette exception provoque généralement l’arrêt du procecssus autour de la tentative d’accès.La zone mémoire occupée par un processus lui est attribué par le système d’exploitation.Le système d’exploitation tient à jour une table des processus :chaque entrée dans cette table identifie un processus : descripteur du processus (DDP)LE DDP d’un processus contient notamment le PID (Processus Identifier). La création d’un processus sous linux est caractérisé par :son PIDses donnéesson codeses besoins en ressourcesLa seule façon de créer un nouveau processus sous linux est de dupliquer un processus déjà existant :nouveau processus : le filsprocessus créateur : le pèreCela inplique qu’au lancement de linux il y ait au moin un processus crée : le processus “init”, père de tous les autres processsus.Pour créer un processur fils, le père est “cloné” dans une autre zone de la mémoire avec le même code et les même données. Néanmoisn les deux processus sont totalement indépendants. . Le processus peut être dans 4 états possibles : Actif, prêt, attente et hors serviceActif : Le processus possède l’UC (le processus). Un processus actif sera ensuite en attente pour libérer le processeur.Attente : le processus a fait une requête de ressources et attend qu’elles lui soient alloués.prêt : le processus a toutes les ressources requises sauf le processeur. Le porcessus est en mémoire, il a toute les ressources pour s’éxécuter sauf le processeur.hors service : Le processus ne participe pas à la gestion du procédé, il est inutile à cet instance de l’ éxécution. Ici le processus n’est qu’un programme situé sur disque dur, mémoire flash. Il n’a pas d’entrée dans la table des processus.Les processus sont en compétition ou en concurrence pour pouvoir s’éxécuter.Préempter cela veut dire que le processus qui était actif redevient prêt car le processeur à besoin de reprendre la main.Un processus passe dans les trois états jusqu’à temps que le processus se termine.Le processus envoie un signal à un autre processus qui va démarrer. C’est binaire, le processus peut être arrivé ou non arrivé. Démarrage d’un ordinateur Le démarrage d’un ordinateur commence par l’initialisation du bios.Le bios Le bios , après avoir effectué ces initialisations, lit le 1er secteur de disque dur, et le charge en mémoire RAM. Le bios passe ensuite la main au préchargeur.2. Le préchargeurCelui-ci continue les initialisations et lit un autre secteur du disque dur dans lequel se trouve le chargeur, l’installe en mémoiré et lui passe la main.3. Le chargeurLe chargeur continue les initialisations, charge le noyau et lui passe la main.4. Le noyauLe noyau charge le système de gestion de fichier et démarre le 1er processus ”init”.Cas de la rapsberry piLe disque dur est replacé par la carte SD. La raspberry contient un microprogramme ( ́equivalent du BIOS). Ce microprogramme vient faire des initialisations et lire la partition 1 de la carte SD.La partition 1 de la carte SD contient des programmes d’initialistion et le kernel.Le kernel lance la lecture du système de gestion de fichier. Mode d’adressageLe mode d’adressage d’écrit le moyen d’accéder aux opérandes d’une instruction Au démarrage d’une machine on force une adresse dans le compteur ordinal. On lance un cycle de lecture instruction sur cette adresse.Cette adresse doit être physiquement situés dans une zone de code rémanente. (rom ou flash).