Skip to content
Yifan (Michael) Ma edited this page Feb 8, 2025 · 8 revisions

DingOS

We are using a microkernel design that will emulate Linux. Our system will be event-driven and binary-compatible.

It is being programmed in C++, uses ARM64 architecture, and will be distributed in nature. We will run it on a Raspberry Pi 3B. We will have access to two.

We will write our documentation and have more detailed plans in Notion, use GitHub, and create regular educational Substack blogs.

Ultimately, we hope to run the following applications, in increasing difficulty of implementation: Networked Doom, Minecraft, and Chromium. We would also like to attempt to fork to a different team’s OS.

The testing framework will first be unit tests set up in a similar style to the 439 assignments (work in progress on the add-test-dir branch). We have to do more research on what failure modes are feasible for us to implement, but there will be some level of fault tolerance.

Our mascot is of course a Dingo named Dina:

Screen_Shot_2025-01-27_at_1 13 56_PM

Milestones

Jan 26th - Feb 8th: Checkpoint 1

The Kernel

  • Bootloader
  • UART
  • SMD
  • Generic Interrupt Controller
  • Block Descriptor Table
  • Basic Kernel
  • Malloc (bump allocator for now)
  • Scheduler (just a queue for now)
  • IPC (within registers)
  • Atomics
  • Lockless Queue
  • HashMap
  • ATA (Drives)
  • Interrupts
  • Keyboard inputs
  • Enable VGA (for graphics)

Feb 9th - Feb 22nd: Checkpoint 2

User Space

  • VMM
  • User/Kernel RWX
  • File System (Ext4)
  • Working system without journaling
  • Start Standard Library
  • Networking
  • IOPIC
  • Better Scheduler
  • Basic SysCalls

Feb 23rd - Mar 8th: Checkpoint 3

The things that live in user space

  • Raft
  • Distributed fork
  • Finish File Systems
  • DMA
  • Permissions
  • IPC (moving pages)

Mar 9th - Mar 23rd: Checkpoint 4

General Performance

  • Paging out
  • TLB Shootdowns
  • USB
  • Audio
  • Refine Graphics
  • Finish Shell
  • Start working on attacking other teams and our own security

Mar 24th - Apr 7th: Checkpoint 5

Wrapping up

  • Fork to DIfferent OS
  • More HCI
  • Finish Doom
  • Minecraft
  • Implement Java

Apr 8th - Apr 22nd: Checkpoint 6

Chromium

  • Implement Chromium

Team Structure

As of right now, we don't have a fixed assignment of responsibilities to each group member. For each milestone, each group member picks an area to work on, deciding factors include: strengths in a particular area, interests, and availability.

Group Members:

  • Ecaterina Sturzu
  • Christopher Hill
  • Joshua Clark
  • Brayden Strong
  • Harsheni Siddharthan
  • Varsha Ravi
  • Yuvraj Sahu
  • Yifan Ma

Clone this wiki locally