| Filename | Latest commit message | Latest commit date |
|---|---|---|
The F8 menu is redrawn in the Niveus language: a window with three lights, bevelled keys with a lit edge, wells for panels, anti-aliased corners and a soft shadow, set in Instrument Sans rasterised into include/gfx/nvfont.h (tools/python/mknvfont.py, make nvfont). Scale doubles on screens 1400 px tall or more. Lists taller than the screen scroll. The keyboard still drives everything, and a mouse, touchpad or tablet does too: both UEFI pointer protocols are polled, hover moves the highlight, a click activates. The cursor stays hidden until the pointer has really done something, since the firmware installs a pointer protocol with or without a mouse. The 'keep this resolution?' countdown is one ten-second budget however many times the pointer moves. Loaders found at well-known paths on any volume (Windows, Ubuntu, Debian, Fedora, Arch, openSUSE, systemd-boot, rEFInd, other BOOTX64.EFI) are listed and chain-loaded with LoadImage/StartImage. 'Reboot to firmware' used to halt; it now sets OsIndications and restarts, and Restart and Shut Down call ResetSystem. Checked under QEMU+OVMF: menu, resolution list (incl. 2560x1600 at double scale), system information, shut down, firmware setup, chain-loading a copy of the loader from a second disk, and a full boot of the ISO to the login prompt. Pointer hover and click were checked only with synthetic events: in this setup a USB mouse or tablet delivered no event to the loader (one USB I/O handle appeared but no pointer protocol came from it), and why was not established. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EVRhxi9zpdW2uDUN4FVcao |
||
| .. | ||
| 1.0.md | ||
| finch.md | ||
| gpu.md | ||
| README.md | ||
| roadmap.md | ||
| schapi.md | ||
What happens next
Everything in this directory is unbuilt. When a piece of it is finished it leaves — deleted from here, rewritten as a description in ../architecture/. See the rule.
Read 1.0.md first.
It draws the finish line, says where the system stands against it, and holds the register of unfinished work — the one place anything half-built is listed. No new capability starts until that register is empty, and a row leaves it only by being finished or by being deleted from the tree.
What is here
| 1.0.md | The finish line. What 1.0 is, the acceptance test and where each clause stands, the register, and everything explicitly deferred. |
| roadmap.md | Everything else that is scoped and agreed: storage and the installer, graphics, networking, the hardware that makes a laptop a laptop, SchFS beyond SchOS, the kernel's own gaps. |
| gpu.md | Linux's own amdgpu through LDLS, and the /dev/dri a process has to serve. Measured, with the work it needs written down. |
| finch.md | Later. The author's own LLVM language for SchOS's applications and tools in place of C. The language is finished and self-hosting in its own repository; the plan here is a target, bindings generated from include/uapi/, and the compiler in the image. |
| schapi.md | The long-term API layering and the compatibility promise. Direction agreed, nothing built. |
What used to be here, and is built
Plans leave this directory when they are done. These did, and what replaced them is the description:
| Was | Now |
|---|---|
Descriptor passing, shared memory, sockets in the filesystem, dynamic linking, the event descriptors (foundations.md) |
kernel.md, networking.md, syscalls.md |
init.md |
init.md |
hybrid.md — drivers in processes, /dev/pci, a modeset API, the panic path, why USB stays |
devices.md |
ldls.md — Linux drivers in a process |
ldls.md |
debugger.md |
debugging.md |
alpine.md — an apk-managed root |
packages.md |
xorg.md — the desktop |
desktop.md |
The interactive crash screen (roadmap.md §4) |
GMMOS, in graphics.md |
And one that was decided against: wayland.md. Wayland needs DRM/KMS, libinput, udev and libseat, and DRM/KMS
alone is a kernel graphics subsystem. The desktop is X. The reasoning moved to desktop.md.
SchWM, SchDE and the compositor Schcom are gone from the tree: SchOS uses other people's window manager and desktop — Window Maker
now; XLibre, Xorg or a Wayland compositor later — and puts its work into what they need underneath (udev, DRM).
The order
Set by 1.0.md, which is the authority. 1.0 is reached (a live system; persistence is not part of it). What is left before anything new starts:
- Empty the register: decide the unused in-kernel LDLS window (delete it, or use it), and build socket activation or remove the key.
- The owner's list (roadmap.md): the Wayland groundwork (udev first, §5), making LDLS good enough that the GPU driver can run (gpu.md), a boot manager worth looking at (§5b), then the installer, then Finch inside SchOS (finch.md).
What this plan does not address
Stated here so it is not mistaken for covered:
- No IOMMU, so a driver in a process is isolated against its own bugs and not against a hostile driver.
- No page cache, so a general writable
MAP_SHAREDof a file is refused;memfdis the narrow answer. - No installer, so nothing a live system writes survives a reboot — by decision, for 1.0.