Projet PAF : Développement d'un petit système d'exploitation


Introduction

Bienvenue sur ce sujet de projet PAF.

Objectif

L’objectif de ce projet est de concevoir un petit système d’exploitation. Il vous permettra d’approfondir et de mettre en pratique les cours des modules INF104 (Systèmes d’Exploitation et Langage C) et ELECINF102 (Processeurs et Architectures Numériques).

Documentation

Voici quelques liens vers des documents techniques qui vous seront utiles tout au long du projet, gardez les à proximité (mais ne commencez pas à les lire tout de suite, vous n’aurez pas le temps de les finir d’ici à la fin du projet) :

Cible

Certaines partie d’un système d’exploitation étant fortement liées aux détails du matériel sur lequel il doit s’exécuter, il va falloir choisir une première cible pour le développement.

Dans le cadre de ce projet, pour des raisons de simplifications pédagogiques, nous ciblerons un SoC (System-on-Chip) à base de ARM Cortex-M3. Et plus précisément la carte Luminary Micro Stellaris LM3S6965EVB.

Cette carte a été choisie car c’est une des cartes à base de Cortex-M3 qui est émulée par QEMU. QEMU vous permettra, depuis votre ordinateur, de simuler cette carte et de facilement déboguer le code qui tourne dessus, ce qui sera très utile pendant toute la durée du projet.

Le Stellaris LM3S6965 est un SoC produit par Texas Instruments. Il contient un cœur de processeur ARM Cortex-M3 ainsi qu’un certain nombre de périphériques regroupés sur le même circuit : timers, UART, ADC, I2C, et de la mémoire : 256 ko de mémoire flash et 64 ko de mémoire vive (SRAM).

Environnement de développement

Pour pouvoir développer durant cette UE, vous aurez besoin, outre un éditeur de texte pour coder en C (choisissez un avec lequel vous êtes à l’aide) :

Commencez par récupérer et installer ces paquets sur vos machines.

Travail préliminaire

Avant de commencer et de rentrer dans le vif du sujet, un peu de réflexion :

  1. Qu’est-ce qu’un système d’exploitation ?
  2. Quelles vont être ses fonctionnalités ?
  3. Par où allez-vous commencer ?
  4. Sur quoi allez-vous être évalués pendant le projet ?

Une fois que vous avez convergé vers des réponses qui vous satisfont, discutez-en avec votre encadrant. Seulement après, passez à la page suivante.


© Copyright 2020 Guillaume Duc. Le contenu de cette page est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International (à l'exception des exemples de code tirés du noyau Linux et qui sont distribués sous leurs licences d'origine).

Licence
Creative Commons