Skip to content

Latest commit

 

History

History
59 lines (54 loc) · 1.69 KB

STATUS.md

File metadata and controls

59 lines (54 loc) · 1.69 KB

Current project status

Here is the list of features currently working as well as some of the next steps in the project roadmap.

Core kernel features

  • Bootloader-related
    • Multboot structure parsing (boot cmdline, memory maps, framebuffer and kernel image details)
  • CPU
    • CPUID wrapper
    • Port R/W abstraction
  • Memory management
    • Physical frame allocators (bootmem-based, bitmap allocator)
    • VMM system (page table management, virtual address space reservations, page RW/NX bits, page walk/translation helpers and copy-on-write pages)
  • Exception handling
    • Page fault handling (also used to implement CoW)
    • GPF handling
  • Hardware detection/abstraction layer
    • Multiboot-based HW detection
    • ACPI-based HW detection

Supported Go language features:

  • Go allocator
  • Maps
  • Interfaces
  • Package init() functions
  • Defer
  • Panic
  • GC
  • Go-routines

Device drivers

  • Console
    • Text-mode console
    • Vesa-fb (15, 16, 24 and 32 bpp) console with support for bitmap fonts and (optional) logo
  • TTY
    • Simple VT
  • ACPI 6.2 support (in progress)
    • ACPI table detection and parsing
    • AML parser
    • AML interpreter/VM
  • Interrupt handling chip drivers
    • APIC
  • Timer and time-keeping drivers
    • APM timer
    • APIC timer
    • HPET
    • RTC
  • Timekeeping system
    • Monotonic clock (configurable timer implementation)

Feature roadmap

Here is a list of features planned for the future:

  • RAMDISK support (tar/bz2)
  • Loadable modules (using a mechanism analogous to Go plugins)
  • Tasks and scheduling
  • Network device drivers
  • Hypervisor support
  • POSIX-compliant VFS