https://rippertc.pages.ensimag.fr/4mmpcsef/index.html
Le but de ce cours est de comprendre les mécanismes mis en œuvre dans la construction des systèmes d'exploitation. Il est destiné aux élèves suivant une filière à dominante informatique (ISI), par opposition au cours de Systèmes d'exploitation et programmation concurrente que suivent tous les Ensimag : le cours de SEPC se focalise sur l'utilisation des mécanismes systèmes alors qu'on apprend en Projet de conception de systèmes d'exploitation à construire ces mécanismes sur une machine nue.
Le projet de conception de systèmes d'exploitation est comme son nom l'indique une matière essentiellement pratique, basée sur un miniprojet de construction d'un (petit) noyau de système d'exploitation. Les prérequis de ce cours sont des notions de base d'architecture des ordinateurs et de programmation bas-niveau, ainsi bien sûr principalement d'algorithmique et programmation. On utilisera principalement le langage C dans le développement du projet, avec quelques (très petites) parties en assembleur qui seront fournies. La partie Fondements du Projet de conception de systèmes d'exploitation fait partie du tronc commun de la filière ISI : cette partie pourra être développée au deuxième semestre par les élèves choisissant l'option d'Approfondissement.
Les premières séances sont très détaillées pour vous guider dans le démarrage du projet, mais les sujets des dernières séances sont volontairement plus succincts afin de vous permettre de concevoir à votre guise votre noyau : c'est cette autonomie et aisance avec la programmation système que l'on évaluera lors de l'examen final.
Les séances de Projet de conception de systèmes d'exploitation ont lieu en alternance avec les TD/TP de SEPC, consultez ADE pour avoir le planning exact.
Le projet se fait en monôme, mais vous pouvez bien sûr vous entraider pendant les séances. On rappelle qu'échanger du code ne constitue pas de l'entraide, mais du plagiat.
La note de l'enseignement est basée sur un examen de TP qui aura lieu à la fin du semestre et pendant lequel on vous demandera de développer en temps limité des prototypes semblables à ceux réalisés pendant les séances encadrées.
L'examen sera sans aucun document (même pas les sources de votre miniprojet). Il aura lieu en salle PC sur des comptes vides et le réseau sera coupé (vous n'aurez donc pas accès à votre compte habituel et aux données qu'il contient). On fournira les documentations nécessaires avec le sujet, notamment des versions PDF de ces pages.
Attention : la note du Projet de conception de systèmes d'exploitation ne se rattrape pas en session 2, la note obtenue à l'examen de TP est définitive.
Le temps de travail attendu pour ce cours est de :
- 16 h 30 encadrées (5 séances de 3 h et 1 séance d'1 h 30) ;
- ~9 h non encadrées, entre les séances, pour finir ce que vous n'avez pas terminé pendant la séance précédente et préparer la suivante ;
- 2 séances de soutien facultatives, sous le format office-hours et réparties dans le semestre.
Tous les fichiers se trouvant sur ce dépôt sont distribués, sauf en cas de mention contraire, sous licence GPL-3 ou toute version ultérieure dont un exemplaire ce trouve ici, et écrits par moi (Mattéo Rossillol‑‑Laruelle a.k.a. Beatussum).
Pour davantage de détails sur les licences s'applicant sur les différents fichiers tiers, prière de consulter le fichier copyright dans le format de fichier debian/copyright
.