Releases: Norost/norost-b
Releases · Norost/norost-b
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
very useful instructions (e.g.pshufb
). Every x64 CPU made in the
last ~15 years should support it.
- SSE4.2 has been chosen as baseline as all extension up to it include
- An SSH server has been implemented for secure remote logins.
- virtio-net performance and reliability has been improved (it is still flaky
though)
The provided image is intended for use with QEMU and VIRTIO devices. See run.sh
in the repository for an example of how to run it.
v0.1.1
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