ecole informatique
L'école  >  Le cursus  >  La culture Projet  >  Tek2 - asm-minilibc

Asm Minilibc (Tek 2)

minilibC en ASMEcriture d'une minilibC en ASM.

But du projet : Ecrire une mini librairie C en assembleur pour NetBSD.

Description du projet

Il s'agit d'écrire une mini librairie C (de préférence dynamique) en assembleur pour NetBSD sous IA32 en utilisant as(1).

Pour cela, les noms des fonctions du système doivent être utilisés. Il faut s'arranger pour remplacer la librairie native. Dans le cas contraire, les noms des fonctions seront préfixés par asm_.

Aspects techniques

Voici la liste des fonctions à réaliser :

Fonctions obligatoires

Les fonctions suivantes sont nécessaires pour avoir la moyenne :

  • memset(3) : Remplit une zone de mémoire avec un octet donné.
  • strlen(3) : Calcule la longueur d'une chaîne de caractères.
  • memchr(3) : Recherche un caractère dans une zone mémoire.
  • strchr(3) : Recherche un caractère dans une chaîne.
  • strcpy(3) : Copie une chaîne.

Fonctions recommandÉes

Ces fonctions sont nécessaires pour avoir 16 (il faudra aussi faire un seul parcours de chaîne pour la fonction strrchr(3) afin d'avoir la totalité des points).

  • strrchr(3) : Recherche un caractère dans une chaîne.
  • strcspn(3) : Recherche un ensemble de caractères dans une chaîne.
  • strncmp(3) : Compare deux chaînes.

Fonctions suggÉrÉes

Ces fonctions sont nécessaires pour avoir 20 :

  • dispatch (fonction décrite plus bas).
  • alloca(3) : Alloc de la mémoire
  • setjmp(3) : Sauve le contexte de pile pour un saut non-local.
  • longjmp(3) : Saut non-local vers un contexte de pile sauvegardé.

Pour la fonction dispatch : retval dispatch(retval (*function) (...) , ...);

Cette fonction prend en paramètre un pointeur sur fonction. Elle appellera cette fonction avec les paramètres suivants de dispatch et renverra la valeur de retour de cette fonction. En résumé dispatch(otherfunc, arguments) se comporte comme otherfunc(arguments).

Ce mini projet, qui est à réaliser à deux, permet aux étudiants de deuxième année de s'initier au langage assembleur. Ces bases leurs seront utiles pour réaliser en Tech 3 le projet ftrace : un traceur d'appels de fonctions pour Unix.

EPITECH en France

EPITECH en France

Témoignage

Au départ un projet, aujourd'hui mon entreprise

photo de CAMILLE MIREY "Un des éléments déclencheurs fut la possibilité de consacrer entièrement le stage de 3ème année au développement du projet."
CAMILLE MIREY
ancien
Promotion 2007

D'abord MMORPG (jeu de rôle en ligne), en 2003, puis moteur de jeu pour mondes persistants en 2004, et enfin middleware destiné à la production d'univers immersifs en 2006, le projet HellHeaven a accompagné tout notre cursus depuis la fin de la 1ère année. Il a d'abord évolué au gré des opportunités (projet libre de 2ème année, objectif de projet de fin d'études dès la 3ème année) et de l'équipe (jusqu'à 9 personnes) puis s'est progressivement orienté vers des besoins professionnels réels : la fibre entrepreneuriale commençait à s'exprimer.

Un des éléments déclencheurs fut la possibilité de consacrer entièrement le stage de 3ème année au développement du projet. Une chance inespérée et un argument décisif pour fonder, dès janvier 2005, Persistant Studios SARL qui regroupe quatre associés.

En 2006, une première prestation pour une société d'architecture nous donne une vision plus large des problématiques réelles de production. Une refonte complète du moteur est entamée cette même année afin de proposer une solution flexible pour la création d'applications 3D temps réel.

Une étape importante dans la consolidation de l'activité fut franchie avant même la fin de notre cursus, avec l'arrivée de Persistant Studios à la tête du laboratoire de développement de jeux vidéo. Une manière agréable et efficace de faire profiter les étudiants de notre expérience. L'activité de Persistant Studios, encore scindée en 2 parties (prestations d'un côté, R&D de l'autre) commence à se structurer et HellHeaven arrive à maturité.