PROJECT DOSSIER // [MINILIBC]VIEW SOURCEBACK TO PROJECTS →

01 // PROJECT AT A GLANCE

MINILIBC

Assembly

Rewriting the C library functions directly in x86-64 assembly.

Going down to the lowest possible level: writing functions no longer in C, but in the language the processor actually executes. The result is a shared library that any C program can use without knowing it was not written in C. It is the project that definitively dispels any magic around compilation.

A libasm.so shared library implementing in x86-64 assembly twelve libc functions — strlen, strchr, rindex, strcmp, strncmp, strcasecmp, strstr, strpbrk, strcspn, memset, memcpy and memmove — assembled with nasm then linked with ld, following the System V AMD64 ABI.

PRIMARYAssembly
DELIVERYTEAM RECORD
VERIFICATIONmake
SOURCEINSPECTOR READY
MEDIA ATTACHMENTS (Images, Photos, Videos)

03 // KEY OUTCOMES

  • A shared library entirely in assembly, usable from C
  • Strict compliance with the calling convention, where a mistake shows up elsewhere
  • The nasm + ld chain mastered end to end, without going through gcc

04 // SOURCE TREE

READING SOURCE…