SchOS/projects/schde/README.md
Nexoniarz e04ca28812 Rename Schunix to SchOS; the kernel becomes SchIFT
Removes the "-unix" element and with it any trademark exposure to The
Open Group.

The split follows the ecosystem layout: SchOS is the system, and the
kernel has its own name. Kernel-identity strings are the only places
that take SchIFT -- uname(2) sysname, /proc/version, and the two licence
sentences that say "kernel" outright. That is what every Unix does here:
`uname -s` on Linux reports the kernel, not the distribution. Everything
a user reads as the product -- panic screen, boot menu, error prefixes,
docs, LICENSE, NOTICE -- is SchOS.

schunix.img is schos.img, the logo assets and the musl TLS patch are
renamed, and __SCHUNIX__ is __SCHOS__ (the define and the patch that
consumes it moved together).

Two things the rename broke, both found by the bootcheck suite:

  - shmtest wrote "SCHUNIX-MMAP-OK" with a hardcoded length of 15 and
    compared it back by hand-counted offsets (m[3]=='U', m[14]=='K').
    The shorter marker left the write running two bytes past the literal
    and the compare reading past the data, failing a file-backed mmap
    that was working correctly. Now written and compared through one
    constant with sizeof.
  - bootcheck asserted a 31-byte file after appending to
    "hello-from-schunix"; the shorter string makes it 29.

Both are the same mistake: a string literal whose length is written out
somewhere else. Full suite green -- base, Tty, Ps, Sock, Fb, Usb, Evdev.
2026-08-09 14:09:59 +02:00

27 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SchDE — the SchOS Desktop Environment
The parts you actually look at: a panel, a launcher, settings, a file
manager, a terminal.
SchDE is a set of ordinary Schcom clients plus whatever shared widget code
they end up needing. Nothing in it is privileged and nothing in it is
special — if SchDE can do something that a third-party program could not, the
line has been drawn in the wrong place.
## Status
Not started. Last of the three, and deliberately so: there is no point
designing a panel before there is a compositor to put it on.
## What it will need that does not exist yet
- **Text rendering.** Everything here is text, and the console's fixed 8×16
CP437 grid is not usable for it. See phase 4 of `docs/roadmap.md` — a real
glyph cache and rasteriser, and layout as a library in `lib/` so the
terminal and the file manager are not each solving it.
- **A widget toolkit**, however small. Even a panel needs buttons, labels and
hit testing.
- **A terminal emulator.** Note the direction: the *kernel* console parses
ANSI today because it draws directly to the framebuffer. A GUI terminal is
a client that parses ANSI itself and renders it with proportional-capable
text. The two do not share code.