Logiciel de base

Bienvenue sur la page du cours de Logiciel de base !


Examen de TP

Vous trouverez ici la répartition des élèves dans les deux salles de TP pour l'examen du 31 mai.

On recommande aussi de lire les consignes qui seront à respecter pendant l'épreuve.

Introduction

Le but de ce cours est de maitriser la programmation « bas-niveau », c'est à dire proche de la machine. Le cours est plus précisément découpé en trois parties :

  1. des rappels sur le langage C que vous avez déjà dû rencontrer avant d'arriver à l'Ensimag, en mettant l'accent sur les spécificités du dialecte C99 que l'on utilisera ici, ainsi que sur les notions en liaison avec la partie sur l'assembleur ;
  2. une initiation à la programmation en assembleur sur l'architecture Intel, qui sera axée sur la compréhension des mécanismes utilisés dans un compilateur pour générer systématiquement du code assembleur, et sur les conventions à respecter pour faire cohabiter des fonctions écrites en C et en assembleur ;
  3. un mini-projet basé sur la programmation d'un petit noyau de système d'exploitation, et qui mélangera des notions vues dans les deux parties précédentes.

L'enseignant responsable du cours de Logiciel de base est Christophe Rippert, n'hésitez pas à le contacter par mail pour toute question en dehors des séances encadrées.

Evaluation

L'évaluation prendra la forme d'un examen sur machine : les élèves devront réaliser en temps limité un petit TP faisant intervenir les notions vues en cours.

Seule une feuille de notes A4 manuscrite recto-verso sera autorisée pendant cet examen, à l'exclusion de tout autre document ou matériel. Les différents supports de cours ci-dessous seront inclus avec le sujet.

On rappelle que les absences pour raison de santé ou force majeure doivent être signalées et justifiées le plus rapidement possible au service de scolarité. Vous devez également prévenir l'enseignant de votre absence.

Supports de cours

Rappels de C

Assembleur sur architecture Intel

Mini-projet système

Documentations complémentaires

Pour rafraichir votre mémoire sur le langage C (norme ANSI « de base »), on recommande la lecture du polycopié de Bernard Cassagne.

Vous trouverez ci-dessous la documentation officielle des processeurs Intel, qui va évidemment beaucoup plus loin que ce qu'on voit dans ce cours. Attention, cette documentation fait plusieurs milliers de pages, ne l'imprimez pas ! Le jour de l'examen de TP, le sujet contiendra toutes les informations nécessaires, vous n'aurez pas besoin de cette documentation.

L'ABI x86_64 est un document qui détaille les conventions présentées dans ce cours concernant notamment les appels de fonctions : là-encore, le document original va beaucoup plus loin que ce qu'on a besoin de savoir.

Pour ceux qui voudraient prendre de l'avance sur le projet système de 2A, le wiki des développeurs de systèmes fourni beaucoup d'information et de multiples références bibliographiques.

Nous utilisons des logiciels libres dans ce cours, développé par le projet GNU, qui fourni de nombreuses documentations très complètes :