01 // PROJECT AT A GLANCE
MINILIBC
AssemblyRewriting 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
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…