Aperture Institute GLaDOS: an operating system in Rust, with a language model in the kernel
GLaDOS / Screenshots

GLaDOS OS screenshots

Taken from the running system under QEMU, through the emulator's monitor, so each one is the framebuffer's exact contents at 1280x800. All five are from 1.3.5.

The GLaDOS desktop: a teal-to-gold horizon wallpaper with the aperture mark lit as the sun, a terminal window and a Program Manager window with orange glass title bars, an icon column down the left and a taskbar along the bottom
The desktop as it comes up. A terminal showing its own boot log, Program Manager beside it, icons down the wall, and a taskbar carrying one pictogram per window. The look has been Frutiger Aero in Aperture's colours since 1.3.0, and there is a rule under it: the surfaces the machine speaks through are warm, so captions, selection and focus are orange, and the room it sits in is cool, so the wallpaper, the taskbar glass and the fields are deep water. The wall is where the two meet, a horizon from water to gold with the aperture mark lit as the sun on it. Every pixel was put there by the kernel. UEFI hands over a base address, a width, a height and a stride, and everything above those four numbers is written by hand.
The GLaDOS desktop with a terminal and a small Writing window reporting the progress of an application the machine is writing for itself: step 1 of 8, 2 of 2 clauses met, nothing wrong so far
The machine writing an application. author clock show the time of day queues a run and hands the prompt straight back, which is the point of it: the shell stays yours while it works, and agent stop cancels. The Writing window is the run reporting on itself -- which step of its budget it is on, how many of the clauses it set itself have been met, and the last check verbatim. There is no progress bar, because a step can be a skeleton that lands instantly or a decode that takes seconds, and the loop ends when the checks pass rather than after a known amount of work. It leaves a draft and adopts nothing: app try runs it, app take keeps it. Nothing here calls out to anything. The model that decided to write this is in the same address space as the code drawing the window it is reporting into.
A GLaDOS terminal running an unmodified busybox binary, showing the uname output and a trace of the seven syscalls it made
An unmodified Linux binary, at ring 3. This busybox came from busybox.net and nothing here touched it. The kernel loads it, reports the segment it placed and where the entry landed, and then busybox answers uname -a for itself. Underneath is every syscall it made, with the arguments it passed and what it got back: seven of them, ending in exit_group. The same binary run as sha256sum hashes its own file to the digest the development machine computes over the same bytes, which is the check that settles this path against an implementation nobody here wrote.
DOOM running full-screen in GLaDOS on FreeDoom's first level, showing textured walls, a lit corridor, a pickup on the floor and the pistol drawn at the bottom of the screen
DOOM, on FreeDoom. Not id's data. FreeDoom is freely licensed, and no WAD ships with GLaDOS, because every byte of art here belongs to somebody else. Walls are composed from patches, floors and ceilings go through visplanes, sprites turn to face you, and the light falling off down the corridor is not arithmetic: a texture pixel is a palette index, an index scaled by 0.7 is an unrelated colour, so shading has to be a remap through the WAD's own COLORMAP. This map reports 14 palettes, 280 things to draw, and 13 of its 44 kinds animating. The pistol is placed from the patch's own offsets and from nothing else.
Eight vertical colour bands from green to magenta with a single white diagonal line running corner to corner, drawn by an SDL2 program
An SDL2 program, on a machine with no display server. Not much to look at, which is most of the point. The program is ordinary SDL2 and knows nothing about this machine; SDL reports video driver: glados, a display of 1280x800 and a surface with a pitch of 5120 bytes. The diagonal is why the picture is shaped like this. Eight flat bars come out looking perfectly correct under a wrong stride, as long as the stride is a multiple of the bar width, and a line from corner to corner cannot. It runs straight.
The Oracle window in GLaDOS, plotting recorded machine telemetry as a white history line with three coloured projections forking from it
The Oracle. TempleOS had God Says, which drew words from a list seeded by the timing of the operator's own hands. The entropy here is the same, taken from every keyboard and mouse interrupt, and the subject is changed to the one future this machine can honestly claim to know, which is its own. It records heap, task switches, touch rate and task count once a second, which are the four tabs along the top, fits a small linear system to them with the same Cholesky solver the router uses, and rolls the state forward under three interventions: left alone, carried on, put under load. Solid up to the now line is what happened. The coloured forks after it are what the fitted model expects, here three futures from 37 samples. It is a controlled linear system fitted from real telemetry, so it is a projection and never a prophecy. The first draft had the machine hallucinate words the way TempleOS did, and was scrapped for exactly that reason.

What you are looking at

There is no graphics library beneath any of this. UEFI's Graphics Output Protocol hands the kernel four numbers, and the glyph renderer, the gradients, the window manager, the wallpaper geometry and the compositor are all written above them. src/gfx/theme.rs owns the whole look, which is what made the move off Windows 98 chrome at 1.3.0 mostly a change of numbers rather than a change to every caller.

The frame is composed and then diffed. Every change repaints the entire screen back to front into a heap buffer, and only the row spans that differ from what is already on the display get written. Total repaint is what keeps the window manager obviously correct; the diff is why nothing flashes.

None of these were arranged by hand. The machine that builds GLaDOS is not the machine that runs it, so the desktop is driven over a serial line: a script sends shell commands, and the emulator's monitor is asked for the framebuffer. Anything the pointer can do a keystroke can also do, which is a constraint the testing imposed and the interface kept.