Things I have built to understand how something works — interpreters, bootloaders,
emulators and servers, mostly written to be read rather than deployed.

  • Built with: go

    Yeti! : Tiny Programming Language

    This is an interpreter implementation of a tiny programming language called Yeti. It supports basic constructs like variables, arithmetic operations, conditionals, loops, functions, and print statements.

    Tagged: interpreterprogramming-language

  • Built with: c · assembly

    TinyOS : Hacking OS Internals

    A tiny bootloader implementation with kernel initialization. It demonstrates the sequence of bootloader and kernel setup for a basic operating system using BIOS.

    Tagged: oskernel

  • Built with: go · c

    RISC-V VM : Experimental Assembler & Emulator

    The assembler generates the HEX representations of the risc-v assembly instructions which can be the input for the emulator. The emulator is a RISC-V machine with 32 registers and memory to perform the computations and store the results in the registers.

    Tagged: virtual-machineassemblyisarisc-v

  • Built with: c++ · bazel

    WebServer : Exploring Sockets & Bazel

    Exploration and experiments with Linux socket in an attempt to build a web server in C++ which is modular and reusable. This repo is built using Bazel, which initially had a steep learning curve.

    Tagged: web-serverweb