Skip to content

Releases: Norost/norost-b

Pre-release v0.3-a0

02 Sep 14:26
v0.3-a0
3ed5c6c
Compare
Choose a tag to compare
Pre-release v0.3-a0 Pre-release
Pre-release

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

04 Aug 10:59
v0.2
9da7111
Compare
Choose a tag to compare

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.
  • 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

23 May 18:24
v0.1.1
fa9e43a
Compare
Choose a tag to compare
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