Title: Reenix: Implementing a unix-like operating system in Rust. Author: Alex Light (allight@cs.brown.edu) Abstract: My thesis project concerns the experience, problems and successes found in implementing a unix-like operating system kernel in rust. Using the basic design and much of the lowest-level support code from the Weenix operating system written for CS167/9 I was able to create a basic kernel supporting multiple kernel-land processes scheduled cooperatively, drivers for the basic devices and the beginnings of a VFS-like system. I made note of where the rust programming language, and its memory safety and type systems, helped and hindered my work. In general, I found that rust was rather helpful in creating this system. It's more high-level features obviated the need for some of the more arcane C practices and its powerful type and memory-safety system helped make the code I wrote both clearer and less buggy than it would otherwise be. There were some sharp edges to rust however. Rust does not accommodate statically allocated data very well and the lack of real inheritance in the java or python style makes some abstractions difficult to write and use. There was only one really critical problem with using rust today for kernel development, concerning how the rust compiler (and standard library) conceptualizes memory allocation and how it handles allocation failures.