NanoOs

A multitasking nanokernel OS for an Arduino Nano.

Goals

This work started out as an experiment to see if I could implement an operating system similar to an early version of UNIX in a similar environment. This site documents the work involved in the OS along the way.

History

2024-11-18: Starting Out

2024-11-22: Missing Inter-process Communication

2024-11-26: Inter-thread Communication Update

2024-11-29: Thread Message Passing

2024-12-01: Dynamic Memory

2024-12-09: stdin

2024-12-15: Shell Games

2024-12-19: Multiple Concurrent Users

2024-12-25: Process Queues

2024-12-26: Reclaiming Memory

2024-12-29: Waiting Queues

2024-12-30: Preemptive Multitasking

2025-01-01: Filesystem Part I

2025-01-08: Pipes

2025-01-24: Filesystem Part II

2025-01-31: WASM VM

2025-02-06: RV32I VM

2025-02-07: VM Optimizations Part I

2025-02-08: VM Optimizations Part II

2025-02-18: Cleanup

2025-03-02: User Space Shell?

2025-03-03: Retrospective