TwoPizza9621536 / SeshOS-UEFI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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


Languages

Language:C 69.7%Language:Roff 12.1%Language:C++ 8.5%Language:Assembly 5.9%Language:Makefile 2.4%Language:Shell 1.1%Language:Python 0.2%Language:Batchfile 0.0%