2019-12-29 01:46:20 +02:00
2019-10-23 15:40:32 +03:00
2019-11-05 16:51:24 +02:00
2019-12-29 01:46:20 +02:00
2019-12-29 01:46:20 +02:00
2019-10-10 16:44:22 +03:00
2019-10-10 17:43:03 +03:00

Just another attempt at OS development

I need refactoring, huh.

What works

  • SMP:
    • APs are started up using InitIPI/SIPIs
    • LAPIC config
    • LAPIC timer for each processor
    • Per-CPU scheduling queues
  • Multitasking
  • Userspace stuff with a simple libc
  • Readonly (yet) AHCI and IDE ATA controller drivers
  • I/O APIC configuration:
    • 8259 PIC -> I/O APIC mapping
    • Trigger/polarity config from MADT table (for 8259 IRQs)
  • PCI:
    • Device enumeration
    • PCI-to-PCI bridge support
    • Resolve INTA#/INTB#/INTC#/INTD# pin routing
  • ACPI:
    • Integrated ACPICA into the kernel. Only singlethreaded access, synchronization not implemented yet
    • PCI Interrupt Link Devices (_SB_.LNKx/GSIx) for dynamic PCI IRQ mapping
    • Hard IRQ routes (for chipsets where there's no IRQ router and PCI traces are hardwired)
    • Shutdown works (Sleep state 5)
S
Description
x86-64 operating system kernel
Readme 2.5 MiB
Languages
C 99.4%
Assembly 0.4%
Objective-C 0.2%