building an OS (all streams)

Playlist of all my kernel dev streams

Curated by: offlinemark (137 videos)


Currently Playing: building my own OS in c++ (week 125, kernel stacks pt5)

#livecoding #operatingsystem #coding welcome: https://offlinemark.com/welcome discord: https://discord.gg/P6zQBsD2ng Welcome! I’m an aspiring systems programmer. Professionally, I used to work in infosec, but now I work on music production software & hardware. I stream OS/kernel development every week for 2 hours. (I’ve done this for over 75 weeks in a row! Sundays 10a-12 ET) From February 2024 to May 2025, I streamed myself doing all the labs for MIT’s old Operating Systems Engineering course (6.828 (2018)). Through doing this, I became very familiar with JOS, which is the x86 OS used for the course. I had almost no experience with OS development when I started, although I did have much experience with programming and low level concepts. I did the coursework because I wanted to write my own OS, but felt I wasn’t ready. Now, from May 2025 to present, I’m pursuing my own learning agenda with OS development, and starting my on own OS. If this resonates with you, please subscribe and I'll see you in a stream :) 00:00:00 Start 00:04:50 Proposing iteration 2.1: use external list index instead of internal pool index to select task stacks 00:10:38 Code review of the new simplified implementation, removing the ETL patch and unique pointer complexity 00:21:02 Running basic test reveals a boot loop crash requiring investigation 00:46:02 Root cause discovered: external list index is unstable across insertions/deletions, causing tasks to accidentally share stacks 01:00:58 Restoring the ETL patch to use the stable internal physical storage index for stack selection 01:13:59 Fix verified: multiple tasks schedule and run stably without stack collisions 01:17:26 Implementing guard page unmapping in the scheduler constructor to protect kernel task stacks 01:32:49 Guard page test succeeds: writing to an unmapped guard page correctly triggers a page fault 02:00:40 Code cleanup, ETL patch refinement to use a clean pool API, and planning to move stack buffers out of the scheduler struct


Tracks in this Playlist