=== Lab === .. toctree:: :hidden: :glob: lab/tools lab/lab0 lab/lab1 lab/lab2 lab/lab3 lab/lab4 lab/lab5 In this course, we are going to build an operating system in `Rust programming language `__. The operating system that we will build targets ``AArch64 (ARM)`` architecture, and it will run on Raspberry Pi 3. These are the topics that we will cover in this course: - `Tools Guide `__ - `Lab 0: Rustlings `__ - `Lab 1: Bootstrapping Raspberry Pi `__ - `Lab 2: Shell and Bootloader `__ - `Lab 3: FAT32 Filesystem `__ - `Lab 4: Preemptive Multitasking `__ - `Lab 5: Multicore and Networking `__ We built our labs based on the materials originally developed for `CS140e: An Experimental Course on Operating Systems `__ by `Sergio Benitez `__. We have ported it to use newer toolchains such as Rust 2018 edition, ``cargo-xbuild`` (instead of ``xargo``), and ``no_std`` Rust with a minimal shim library (instead of custom built std). We've also developed it further to include topics such as virtual memory management, multicore scheduling, mutex designing, and implementing a networking stack.