Skip to content

aprentxdev/SonnaOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SonnaOS x86-64 UEFI Limine License

Writing an operating system to explore low-level architecture and hardware programming.
(because I want to occupy my time)

screenshot

Hardware Requirements

  • Firmware: UEFI
  • CPU: 64-bit x86 processor with x2APIC support
  • ACPI 2.0+

Kernel

Estella - x86_64 EFI kernel using the Limine bootloader protocol.

Current status

  • ✅ UEFI boot via Limine bootloader on x86_64
  • ✅ Long mode + higher-half kernel - by Limine
  • ✅ Serial (COM1) debug output
  • ✅ Framebuffer text console (PSF2 font: Spleen 12x24)
  • ✅ Initrd (CPIO newc) with file lookup
  • ✅ GDT + TSS
  • ✅ IDT + basic exception handlers - ISRs
  • ✅ ACPI parsing (RSDP, XSDT, MADT, HPET)
  • ✅ x2APIC support
  • ✅ LAPIC timer in TSC-deadline mode (when invariant TSC available)
  • ✅ TSC frequency detection (CPUID 0x15/0x16 + HPET fallback calibration)
  • ✅ Physical Memory Manager (PMM) with self-tests
  • ✅ Virtual Memory Manager (VMM) with self-tests
  • ✅ PS/2 keyboard driver
  • ✅ Temporarily kernelspace shell
  • ✅ Current UTC time with (boot_time via limine) + (tsc(time after boot))
  • ✅ Loading program in ring3
  • ✅ Elf loader
  • 🚧 Syscalls: read(0), write (1), getpid(39), exit(60)
  • 🚧 Userspace lib: crt0, printf
  • ✅ A few example userspace programs in userspace/programs
  • ✅ Preemptive round-robin scheduler (LAPIC TSC-deadline)

Requirements

  • clang + ld.lld
  • QEMU + OVMF
  • make, git, curl/wget

Build & Run

git clone https://github.com/aprentxdev/SonnaOS
cd SonnaOS
make run

Releases

No releases published

Packages

 
 
 

Contributors