Posts
Cloudflare Internship
In Summer 2020, I interned at Cloudflare on the Spectrum team. This is a blog post that describes work I did while at Cloudflare.
Posts
Welcome to Workers
I am migrating my blog from GitHub Pages to Cloudflare Workers. As well, I am using GitHub Actions to automatically deploy to Workers.
Posts
Implementing Cooperative Multitasking
OxidizedOS is a multicore, x86-64 kernel written in Rust. For more information, see An Introduction.
The previous post in the series, Threads and Context Switching should be read before this post.
The code for this post is located here.
Intro In this post, we will implement cooperative multitasking. For simplicity, we will use a round-robin scheduler, where each thread will be run in a FIFO order.
What is a cooperative scheduler?
Posts
Threads
OxidizedOS is a multicore, x86-64 kernel written in Rust. For more information, see An Introduction.
The code for this post is located here.
In this Series, we will be discussing the implementation of kernel threads and a scheduler in Rust.
Background In its present state, the amount of tasks OxidizedOS can currently work on concurrently is limited to the number of physical cores on the system. Clearly, this is a major problem – an operating system needs to be able to handle multiple tasks simultaneously.
Posts
An Introduction
What is OxidizedOS? OxidizedOS is a x86-64 kernel written in Rust. While implementing some basic parts of the kernel, I realized that the implementation was interesting and I thought it may be instructive to provide a writeup of some parts of the implementation.
The Environment OxidizedOS is Multiboot 2 compatible, and booted with GRUB 2. The kernel is compiled using Philipp Oppermann’s xbuild tool, which cross-compiles the standard library. OxidizedOS supports SMP, and sets up each core with a 4KB stack and an identity mapped paging structure, as the kernel is located in the lower-half (loaded at 0x100000).