~demindiro/norost-b

v0.3-a0 2 years ago .tar.gz browse log

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

v0.2 2 years ago .tar.gz browse log

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)

v0.1.1 2 years ago .tar.gz browse log

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

v0.1 2 years ago .tar.gz browse log

Initial release

This is the first version that is useable for hosting a website.

kvm-internal-error 2 years ago .tar.gz browse log

WIP: Rework bootloader

Making a commit here since I managed to get KVM to choke:

    KVM internal error. Suberror: 1
    emulation failure
    EAX=00117f0c EBX=00000000 ECX=00000000 EDX=00000000
    ESI=0000000a EDI=00117f58 EBP=00117fed ESP=00117ef0
    EIP=f000ff53 EFL=00000006 [-----P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
    ES =0018 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
    CS =0010 00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA]
    SS =0018 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
    DS =0018 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
    FS =0018 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
    GS =0018 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
    LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
    TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
    GDT=     000010b0 00000020
    IDT=     00000000 00000000
    CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
    DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
    DR6=00000000ffff0ff0 DR7=0000000000000400
    EFER=0000000000000000
    Code=?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? <??> ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??