mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
59 lines
1.7 KiB
Markdown
59 lines
1.7 KiB
Markdown
## 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
|
|
- [x] Multboot structure parsing (boot cmdline, memory maps, framebuffer and kernel image details)
|
|
- CPU
|
|
- [x] CPUID wrapper
|
|
- [x] Port R/W abstraction
|
|
- Memory management
|
|
- [x] Physical frame allocators (bootmem-based, bitmap allocator)
|
|
- [x] VMM system (page table management, virtual address space reservations, page RW/NX bits, page walk/translation helpers and copy-on-write pages)
|
|
- Exception handling
|
|
- [x] Page fault handling (also used to implement CoW)
|
|
- [x] GPF handling
|
|
- Hardware detection/abstraction layer
|
|
- [x] Multiboot-based HW detection
|
|
- [ ] ACPI-based HW detection
|
|
|
|
#### Supported Go language features:
|
|
- [x] Go allocator
|
|
- [x] Maps
|
|
- [x] Interfaces
|
|
- [x] Package init() functions
|
|
- [x] Defer
|
|
- [x] Panic
|
|
- [ ] GC
|
|
- [ ] Go-routines
|
|
|
|
#### Device drivers
|
|
- Console
|
|
- [x] Text-mode console
|
|
- [x] Vesa-fb (15, 16, 24 and 32 bpp) console with support for bitmap fonts and (optional) logo
|
|
- TTY
|
|
- [x] Simple VT
|
|
- ACPI 6.2 support (**in progress**)
|
|
- [ ] ACPI table detection and parsing
|
|
- [ ] AML parser/interpreter
|
|
- 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
|