KFS-2: memory and interrupts
Second step of the kernel-from-scratch series: GDT, interrupt handling and a keyboard-driven debug shell.
- C
- x86
- Assembly
Every project from the 42 curriculum, grouped by area and listed newest first.
Second step of the kernel-from-scratch series: GDT, interrupt handling and a keyboard-driven debug shell.
A bootable i386 kernel written from scratch, with its own GDT and a VGA text driver.
Data analysis, visualisation and a logistic regression written from scratch to sort students into Hogwarts houses.
IRC server written in C++, compliant with part of the IRC protocol.
A minimal Unix shell in C, modelled on bash: parsing, pipes, redirections, environment variables and signals.
The dining philosophers problem in C: threads, mutexes and starvation-free scheduling without a single data race.
Small 2D game in C built on MiniLibX: sprite rendering, map parsing and keyboard events.
Sorting a stack with a restricted instruction set, optimised to keep the number of operations as low as possible.
Reimplementation of the shell pipeline in C: fork, pipe, dup2 and process handling.
Reimplementation of printf in C, with variadic arguments and its own format parser.
Reading a file descriptor line by line in C, with a static buffer kept between calls and no memory leak.
A personal C library reimplementing part of the standard library, linked by every later 42 project.
Finding and documenting a set of web vulnerabilities on a deliberately broken application.
Security challenge: exploiting a chain of vulnerabilities to move from one user to the next on a Linux system.
Automated deployment of a multi-service web stack on a remote server, provisioned from scratch with Ansible and Docker.
A small infrastructure of services (NGINX with TLS, WordPress, MariaDB), each in its own Docker container, orchestrated with Docker Compose.
Setting up a hardened Linux virtual machine: LVM partitioning, firewall, SSH, sudo and password policies.
Full-stack dating web application built with React, Node.js / Express and PostgreSQL.
Collaborative real-time web application built around an online multiplayer game.