WolOS

WolKernel 1.0 · Linux 7.3 · 20 patches

Linux that knows what you are doing.

Small patches, each with an off switch, for the app in front. Try them below.

01

The app in front goes first.

Five classes, from the interface down to background work.

An illustration of the rule, not a measurement.

Rows, top to bottom: Game, in front, Browser, Backup, Updates; then the frames.

Every frame on time.

02

Touch a key. It wakes up.

Input lifts the processor to 60% for 100 ms.

Press any key, or click here.

Speed floor of the processor over time (slowed down to be visible).

idle: the processor may sleepafter input: at least 60% for 100 ms
03

Your game is the last to go.

When memory runs out, background work ends first.

An illustration of the rule with made-up sizes, not a measurement.

  • Game, in frontscore 18
  • Browserscore 56
  • Backup, backgroundscore 70

A new allocation (orange) needs more memory than is free. Something has to go.

04

Game threads wait less.

Proton's wait-on-many, measured on the patch.

1 cell = 50 ns · futex_waitv ping-pong

Stock · 3350 nsWolKernel · 285 ns
05

20 patches, one idea each.

Pick a tile.

Colour by area: processor sync, input, memory, pipes and IPC, time, system calls, internals.

0017 · sync

futex-waitv-spin

futex_waitv spins briefly too: a waiting pair answers in about 285 ns instead of 3350 ns.

futex_waitv ping-pong, measured on the patch.

Stock · 3350 nsWolKernel · 285 ns
The patch's own words

adaptive spin for futex_waitv; futex.waitv_spin=0; waitv ping-pong 3350 to about 285 ns

Off switch
futex.waitv_spin=0
Upstream
none upstream
06

And around them.

The configuration you will notice, by area.

The app in front gets the machine.

  • The app you're using goes first.
  • The window in front never crawls.
  • Typing never feels sluggish.
  • Frame limiters wake on time.
  • Your click is handled now.
  • Nothing breaks if the scheduler stops.

You, first: the mechanism behind each line is in the WolKernel reference.

If it runs on Arch, it runs here.

  • 32-bit apps and Steam
  • Wine and Proton
  • Flatpak, AppImage, Snap
  • Docker and Podman
  • KVM, QEMU, VirtualBox
  • NVIDIA, ZFS and other DKMS modules

Source: wonderlandos/linux, one commit per patch, tag wolkernel-1.0-7.3.