punkt
punkt draws directly to a linear region of video memory. on top of that sits a hand-written font renderer that paints moonshot's own characters into that memory.
getting a framebuffer
the kernel's Multiboot header asks the bootloader for 1024×768 at 32 bits per pixel, and GRUB sets the hardware into it before the kernel runs. punkt maps the framebuffer GRUB reports into the kernel's page tables through jenna. when no framebuffer is granted, the kernel falls back to VGA text mode.
the font
the font is an original 8×8 bitmap with uppercase, lowercase, digits and
punctuation. a ring-3 program can ask for a glyph through SYS_GLYPH
and draw text into its own frame, which is how
utsikt sets a page in the same face
the shell uses.
the console
above the raw pixels sits a character-cell console, a 128×96 grid of 8×8 cells with newline, wrapping, backspace, tab stops and scrolling. punkt also draws rectangles and lines, and kakel builds its tiled windows on them, while punkt stays the single owner of the real framebuffer.