Réimplémentation d'une mini libc en assembleur x86-64 (NASM), avec appels système directs et wrapper de tests en C.
Telecharger & tester
make (bibliotheque libc partielle ecrite en assembleur x86-64, utilisee par mypandoc)
MinilibC est un projet Epitech (Tek1/B4, B-ASM-400, individuel ou petit groupe) qui consiste a ecrire en assembleur x86-64 une bibliotheque dynamique ELF (libasm.so) reimplementant un sous-ensemble de fonctions standard de la libc. L'objectif pedagogique est de pouvoir substituer, via LD_PRELOAD (weak binding), les fonctions de la libc systeme par ses propres implementations assembleur, en s'appuyant sur les acquis du projet malloc et du bootstrap.
Les fonctions a implementer sont strlen, strchr, memset, memcpy, strcmp, memmove, strncmp, strcasecmp, rindex, strstr, strpbrk et strcspn, dont le comportement doit strictement respecter les pages de manuel Unix correspondantes — aucune liberte d'interpretation n'est toleree sur la specification. Le sujet insiste explicitement sur l'integrite du travail : une comprehension approximative du code rendu est consideree comme une preuve de triche, l'enonce allant jusqu'a preferer un code rendu casse mais compris plutot qu'un code copie non maitrise.
La compilation se fait via un Makefile fournissant au minimum les regles re, clean et fclean, sans dependance a un compilateur C puisque l'intégralite du code est en assembleur x86-64 pur. Les pistes de bonus proposees incluent l'ajout de fonctions supplementaires comme read et write, ou le portage vers d'autres architectures (x86 32 bits, ARM), laissant une large place a l'initiative au-dela du socle obligatoire des douze fonctions.
Projet suivant
