Skip to content

sarahcrowle/SeshOS-UEFI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BUILDING

install gcc, nasm, qemu-system-x86_64, and make. it is a UEFI OS but the UEFI files are in the repo.

then run ./build.sh and it will build and run the OS.

TODO

What I want to do:

  • Booting
  • Basic GUI
  • Mouse Detection
  • Buttons
  • Keyboard Driver
  • Window system
  • Read from FAT12
  • Terminal
  • Port Something
  • Make boot partition FAT32
  • Read from FAT32

What I need to do:

  • Load an IDT so that exceptions and interrupts can be handled.
  • Write a physical memory allocator, a good starting point is a bitmap allocator.
  • Write a virtual memory manager that can map, remap and unmap pages.
  • Begin parsing ACPI tables, the most important one is the MADT since it contains information about the APIC.
  • Start up the other CPUs. stivale2 provides a facility to make this less painful.
  • Set up an interrupt controller such as the APIC.
  • Configure a timer such as the Local APIC timer, the PIT, or the HPET.
  • Implement a scheduler to schedule threads in order make multitasking possible.
  • Design a virtual file system (VFS) and implement it. The traditional UNIX VFS works when porting software
  • Implement a simple virtual file system like a memory-only tmpfs
  • Decide how to abstract devices. UNIX likes usually go for a /dev virtual filesystem
  • Get a userland going by loading executables from your VFS and running them in ring 3. Set up a way to run sys calls.
  • Write a PCI driver.
  • Add support for a storage medium, the easiest and most common ones are AHCI and NVMe

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published