8000 GitHub - Tatskaari/zigzag: An operating system written from scratch in Zig · GitHub
[go: up one dir, main page]

Skip to content
TatskaariPublic

About

An operating system written from scratch in Zig

Resources

Stars

12 stars

Watchers

1 watching

Forks

Latest commit

 

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zigzag is an operating system with a terrible name

It's written from scratch, with love, in zig.

Roadmap

Currently trying to figure out the feature set needed to port binutils and a shell (zsh maybe?).

The feaures are loosely:

  • A userspace
  • A TTY implementation
  • A libc port (should be easy enough once we have a posix like abi)
  • A filesystem

The roadmap to achieve this is:

  • VGA graphics mode
  • VGA terminal
  • Initialise the interrupt descriptor table
  • MoreCore allocator
  • Configure the GDT with kernel and user segments for long mode
  • Read the root system descriptor table
  • Read the MADT
  • APIC setup
  • PS/2 Keyboard input
  • PIT timer
  • Paging: allocating pages and mapping them to virtual addresses
  • Paging: mmap and a std.heap.PageAllocator
  • Lapic timer
  • Scheduler (basic scheduling of threads)
    • Set up the TSS and get exceptions handled from threads
    • Implement wait, yield and sleep
    • Implement an event queue and terminal thread that listens to keyboard events
    • Run lspci from the keybaord listener as a thread
  • Implement the proc/sys filesystems for pci devices
  • Processes and elf loading: move lspci out into its own binary
  • Basic userspace + entrypoint
  • Syscall ABI for memory mapping
  • Filesystem service for embedded tar
  • Keyboard service
  • TTY service
  • PCI device discovery
  • SATA/IDE driver
  • Read/write FAT-32 filesystem (over IDE)
  • Open and write syscalls
  • Create a standard library for userspace programmes
  • Exec syscall
  • Fork syscall

About

An operating system written from scratch in Zig

Resources

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

0