Initial commit: Schunix as it stands before the SchOS rename

An x86-64 operating system built from xv6, now largely rewritten: SMP,
a copy-on-write root filesystem (SchFS), PCI/USB/virtio drivers, a TTF
rasteriser, and a Linux-numbered syscall ABI.

No history before this point -- the tree was never under version control.
This commit exists so the rename that follows has something to undo to.
This commit is contained in:
Nexoniarz 2026-08-09 13:47:01 +02:00
commit d0f7acf9eb
275 changed files with 51417 additions and 0 deletions

27
projects/schwm/README.md Normal file
View file

@ -0,0 +1,27 @@
# SchWM — the Schunix Window Manager
Policy. Where windows go, which one has focus, what happens when you drag a
title bar, how alt-tab behaves, what a window looks like at its edges.
SchWM is a *client* of Schcom, not part of it. It talks the same protocol
every other client does, plus a privileged extension that lets it position
and stack surfaces it does not own. That extension is the entire difference
between a window manager and an ordinary application.
## Status
Not started. Blocked on Schcom, which is blocked on the kernel — see
`../schcom/README.md`.
## Why it is separate from the compositor
Merging them is the common shortcut and it is the one that hurts later.
Compositing is mechanical and must never stall: it runs every frame and a
mistake there is a frozen screen. Window management is policy, full of
special cases and personal taste, and it changes constantly. Putting them in
one process means every experiment with focus behaviour risks the thing that
puts pixels on the screen.
Keeping them apart also means SchWM can be restarted, replaced, or simply not
run. A Schcom with no window manager should still show a full-screen client —
that is a useful state to be able to reach when something is wrong.