The following roadmap is always subject to change.
- DOOM
- Terminal
- TTY
- Shell
- Optimise IPCs
- Files System
- GPT
- MBR
- Ahci
- Read
- Write
- Fat
- Read
- Write
- Create files
- Format a partition
- Ext2Fs
- Read
- Write
- Create files
- Format a partition
- Benchmarking (https://github.com/benchmark-action/github-action-benchmark/tree/master)
- 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)
- Syscalls
- log
- map
- alloc
- unmap
- create
- start
- exit
- ipc
- irq (stub)
- drop
- close
- Userspace ELF loader
- IPC
- 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
- IPC/IDL
- Capabilities
- Import
- Attributes
- Modules
- Graphic Library
- SDL Backend
- Render
- Events
- BRUTAL Backend
- Compositor
- Event Dispatch
- Compositing
- Client
- Render
- Events
- Compositor
- 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
- SDL Backend
- Multiboot support
- riscv
- fdt
- interrupt
- pmm
- vmm
- irq
- timer
- smp
- userspace
- own bootloader
- arm64
- Virtio
- Device Configuration
- Virt Queues
- Network device
- Gpu device
- Input device
- Entropy device
- Console device
- Block device
- Lexer
- Parser
- Sema
- AST
- Code gen (LLVM?)
- Code gen C
- 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
- NICs
- e1000
- Rtl8139
- Protocols
- Ethernet
- Arp
- IPv4 (v6?)
- UDP
- TCP
- HTTP
- ICMP
- IRC
- TELNET
- Tools
- ping
- irc
- telnet
- fetch
- httpd
- NICs