Skip to content

Introduction

What DavOS is

go-dav-os is a minimal kernel written in Go (compiled with gccgo) with critical low-level parts in x86_64 assembly.

It is not trying to be a full production OS. It is a learning project focused on core operating system mechanics.

What is in this project

  • Boot with GRUB + Multiboot2
  • x86_64 long mode transition
  • Kernel with basic interrupts (timer and keyboard)
  • Very small round-robin scheduler
  • Physical memory management using 4 KiB pages
  • In-memory filesystem
  • ATA PIO disk driver + FAT16
  • Text shell with diagnostic commands

What is not in this project (yet)

  • Advanced process isolation
  • Full per-process virtual memory
  • Multi-core support
  • Modern drivers (AHCI, USB, networking, and so on)

Minimal prerequisites

You do not need to be an OS expert. It helps if you know:

  • basic Assembler/Go
  • what an interrupt handler is (high-level idea)
  • difference between RAM and disk

If terms are unfamiliar, start with the glossary first.