Skip to content

Releases: JonasKruckenberg/k23

wavltree-v0.0.7

21 Feb 15:53
df0f1c0
Compare
Choose a tag to compare

Added

  • Rust 2024 edition (#309)

wavltree-v0.0.6

15 Feb 19:42
654dd4b
Compare
Choose a tag to compare

Added

  • user address space functionality (#246)
  • integrate k23VM Wasm Engine (#224)

Fixed

  • reduce time spent on large allocations (#288)

Other

  • update rand crates (#271)
  • upgrade deps (#268)

wavltree v0.0.5

11 Jan 13:35
a5e7234
Compare
Choose a tag to compare

Other

  • Rust 2024 edition ready (#222)

wavltree v0.0.4

09 Jan 21:46
b9353bf
Compare
Choose a tag to compare

Added

  • implement AddressSpace::unmap (#217)

wavltree v0.0.3

09 Jan 18:04
Compare
Choose a tag to compare

Added

  • VM (finally) (#212)
  • kernel virtmem cont (#189)

Other

  • add copyright headers (#213)

v0.0.2

16 Dec 17:07
77e2d8d
Compare
Choose a tag to compare

Other

  • (kernel/vm) allocate virtual memory spot (#165)

wavltree v0.0.1

12 Dec 19:06
ce45342
Compare
Choose a tag to compare

Other

  • remove ambiguous and broken cursor/cursor_mut in favor of root/root_mut methods (#164)
  • (wavltree) release v0.0.0 (#160)

wavltree v0.0.0

12 Dec 11:03
1a8f239
Compare
Choose a tag to compare

Initial release of the wavltree Weak AVL Tree crate.

0.0.3

04 Sep 19:10
Compare
Choose a tag to compare

It's time for another one! A bit more exciting this time!

What's Changed

KASLR

Over the last two weeks I finally implemented Kernel Address Space Layout Randomization (KASLR) in the loader. This required making a few changes to the way the kernel is built (i.e. fully position independent) and the loader.

Every memory region (kernel elf, stacks, heap, physical memory) is now mapped at randomized offsets.

This code can easily be reused to implement ASLR for user space as well. Next up would be function-grained ASLR, but that is much more complicated and I've been bashing my head against it without much success, so I'll leave that for later.

Streamlined build system

The build system got simplified massively to the point where dependencies on various native tools could be removed. It should also be more streamlined now!

Tests are run in CI

The test suite now gets on in CI on every commit; This way we can better track exactly how far along the WASM journey we are!

Other

  • Removed the kconfig configuration system and simplified repo setup
  • vendored the linked_list_allocator to reduce the dependency tree and have better integration

0.0.2

23 Aug 14:42
d6e7525
Compare
Choose a tag to compare

This is a smaller release, focusing mostly on an improved developer experience, better code organization and bug fixes.

What's Changed

Better Build Setup

k23 now has a much cleaner build setup using just, nushell and optionally nix for dependency management.

# Run in QEMU
just run configs/riscv64-qemu.toml

# Runs tests in QEMU
just test configs/riscv64-qemu.toml

# And the basic check commands remain
just check configs/riscv64-qemu.toml
just clippy configs/riscv64-qemu.toml
just preflight

kconfig Build Configuration System

Compile-time configuration is now done through the kconfig system (not related to Linux's kconfig) which let's you declare
configuration symbols in Rust code and configure them in a unified .toml file:

#[kconfig_declare::symbol("kernel.stack-size-pages")]
pub const STACK_SIZE_PAGES: size = 32;

the above configuration symbol will read from the following .toml file

[kernel]
stack-size-pages = 128

Other

  • Fixed an issue mapping BSS segments larger than a page (#73)
  • Updated WASM spec test suite (#30)
  • Removed vendored gimli copy (#78)
  • Removed monolithic kstd crate in favor or multiple smaller ones (#90)