On this page:
Small Rust OS Documentation
8.10

Small Rust OS Documentation

Luke Jianu <jianuluke@gmail.com>,
Andrey Piterkin <andrey.piterkin@gmail.com>,
Lucas Sta Maria <lucas@priime.dev>,
Oleg Pavlenko <oleg.pavlenko@outlook.com>,
James Sweeney <sweeneyj202@gmail.com>,
Nishil Patel <nishil.patel13@gmail.com>,
and Derek Kaplan <thederekkaplan@proton.me>

This site contains documentation for the small-rust-os project. This project is an attempt to systematically design and implement a small operating system in the Rust programming language. We are currently in the very early stages, still deciding on the scope of the project.

This document is itself written using Scribble, a Racket DSL for writing documentation. You can see its source at https://github.com/lukejianu/small-rust-os/tree/main/docs, starting with the "index.scrbl" file.

    1 Motivation

      1.1 Why?

        1.1.1 Why Operating Systems?

        1.1.2 Why Rust?

        1.1.3 Why Systematic Design?

          1.1.3.1 The Design Recipe

          1.1.3.2 The Design Recipe in Rust

          1.1.3.3 Systematic Design in our OS

    2 A Toy Operating System

      2.1 What is an OS?

        2.1.1 OS as an API

          2.1.1.1 System Calls

          2.1.1.2 POSIX

          2.1.1.3 System Calls Are Everywhere!

        2.1.2 OS Functionality

          2.1.2.1 Process Management

          2.1.2.2 Memory Management

          2.1.2.3 File Management

    3 The Components

      3.1 Scheduler

      3.2 Memory Allocator

      3.3 File System

      3.4 Shell

      3.5 Booter

    4 The Plan

      4.1 The Scope

      4.2 Component Ordering

      4.3 Milestones

      4.4 Milestone 1

        4.4.1 Freestanding Binary

          4.4.1.1 Binaries

          4.4.1.2 C Program to Binary

          4.4.1.3 Bare Metal Rust

          4.4.1.4 Aside: The Java Virtual Machine

        4.4.2 Hello World Bootable Disk Image

        4.4.3 Testing

          4.4.3.1 Booting

          4.4.3.2 Unit Tests

      4.5 Milestone 2

      4.6 Milestone 3

    5 Contributor Resources

      5.1 Operating Systems

      5.2 Rust

      5.3 Scribble


Last built and deployed at Thursday, December 21st, 2023 4:36:34pm PST.