Pre-release: v0.3-a0
New features since v0.2:
* Add xHCI driver
* Add USB keyboard driver
* Add USB mass storage driver
* Move PS/2 logic fully outside kernel.
* Switch from TOML to custom (& much simpler) configuration format
* Add memory driver to kernel, which exposes all addressable physical memory.
* Add "smart" PCIe driver loader.
* Add prototype user database
* Add GPT partition driver
Bug fixes:
* Mask MXCSR_INVALID_OPERATION_MASK et al. at program start.
* Map framebuffer as WC using PAT. This improves display refresh
performance significantly.
* Fix thread::sleep returning immediately if some wakeup event preceded
it.
* Make PCIe driver work on devices with less than 256 buses.
* Support PCIe MSI
Release v0.2
All the new features, briefly:
* Finalized OO interface. All basic methods are present.
* Add syscall for synchronous I/O
* StreamTable API and performance has been improved. It uses shared memory to
avoid redundant copies to kernel-space and back.
* Basic GUI support, including a tiling window manager prototype.
* Supported hardware are virtio-gpu and Intel HD Graphics (HD 5500).
* SSE and AVX2 support.
* SSE4.2 has been chosen as baseline as all extension up to it include
veru useful instructions (e.g. `pshufb`). Every x64 CPU made in the
last ~15 years should support it.
* An SSH server has been implemented for secure remote logins.
* virtio-net performance and reliability has been improved (it is still flaky
though)
Real hardware support, preemption
- Make OS work on real hardware (HP EliteBook Folio 1040 G2)
- Make kernel & userland preemtable
- Fix various deadlocks w.r.t. disabling ISRs
- Implement PS/2 keyboard driver
- Fix bootloader not recognizing ACPI v2.0+
- Add scrolling to VGA text driver
- Emulate FSGSBASE if not supported
- Fix erroneous OOM panics