Skip to content

Latest commit

 

History

History
229 lines (203 loc) · 3.65 KB

roadmap.md

File metadata and controls

229 lines (203 loc) · 3.65 KB

Roadmap

The following roadmap is always subject to change.

Current Milestone

Milestone 5 - Storage and FileSystems

Past Milestones

Milestone 1 - To Userspace And Beyond

  • Baby steps (x86_64)
  • GDT/IDT
  • PMM
  • VMM
  • Parse MADT
  • apic (ioapic/lapic)
  • HPET
  • APIC timer
  • SMP
  • Multi tasking
  • Scheduling
  • Userspace
  • Syscalls
  • SIMD (avx, sse, fpu, xsave)

Milestone 2 - Userspace, IPC, And Syscalls

  • Syscalls
    • log
    • map
    • alloc
    • unmap
    • create
    • start
    • exit
    • ipc
    • irq (stub)
    • drop
    • close
  • Userspace ELF loader
  • IPC
  • IDL

Milestone 3 - ACPI, PCIe, Bootloader And IDL

  • Fibers
  • Event loop
  • IRQ routing to userspace
  • ACPI Server
    • MCFG
  • PCIe Server
    • Device enumeration
  • IDL (Interface definition language)
    • Parser
    • Sema
    • C code gen
      • Client Code
      • Server Code
      • Serialization
  • Mac support
  • Bootloader
    • Load the kernel
    • Load modules
    • Pass handover information
    • Boot the kernel
    • Load modules

Milestone 4 - Capabilities and Graphics

  • IPC/IDL
    • Capabilities
    • Import
    • Attributes
    • Modules
  • Graphic Library
    • SDL Backend
      • Render
      • Events
    • BRUTAL Backend
      • Compositor
        • Event Dispatch
        • Compositing
      • Client
        • Render
        • Events
    • Paint
      • Dots
      • Lines
      • Rect
      • Poly
      • Text
    • Event
      • Mouse Events
      • Keyboard Events
    • Layout
      • LTR/RTL Layout
      • Dock Layout
      • Flex Layout
    • Views
      • Panel
      • Icon
      • Button
      • Text
      • Frame
      • Image
      • Splitter
      • Switch
      • Slider

Backlog

  • Multiboot support

Architectures

  • riscv
    • fdt
    • interrupt
    • pmm
    • vmm
    • irq
    • timer
    • smp
    • userspace
    • own bootloader
  • arm64

Sub-Projects

Drivers

  • Virtio
    • Device Configuration
    • Virt Queues
    • Network device
    • Gpu device
    • Input device
    • Entropy device
    • Console device
    • Block device

C Compiler

  • Lexer
  • Parser
  • Sema
  • AST
  • Code gen (LLVM?)
  • Code gen C

Iso C Library

  • assert.h
  • complex.h
  • ctype.h
  • errno.h
  • fenv.h
  • float.h
  • inttypes.h
  • iso646.h
  • limits.h
  • locale.h
  • math.h
  • setjmp.h
  • signal.h
  • stdalign.h
  • stdarg.h
  • stdatomic.h
  • stdbool.h
  • stddef.h
  • stdint.h
  • stdio.h
  • stdlib.h
  • stdnoreturn.h
  • string.h
  • tgmath.h
  • threads.h
  • time.h
  • uchar.h
  • wchar.h
  • wctype.h

Networking

  • Networking
    • NICs
      • e1000
      • Rtl8139
    • Protocols
      • Ethernet
      • Arp
      • IPv4 (v6?)
      • UDP
      • TCP
      • HTTP
      • ICMP
      • IRC
      • TELNET
    • Tools
      • ping
      • irc
      • telnet
      • fetch
      • httpd