Long-Term Features
What is it?
This roadmap collects the power-user and ecosystem features that come after the core OS: a GDB kernel debug stub and a user-mode debugger, developer tools, touch gestures, gamepads with an XInput layer, printing to PDF, text to speech, software OpenGL through a TinyGL port, multi-user sessions with fast switching, opt-in telemetry and parental controls. All eleven sections are P2 to P4 and none has shipped. Most can be built on their own, but the user-mode debugger builds on the kernel debug stub, and other roadmaps wait on three of them: the SDK debugger work on the user-mode debugger, WordPad printing on the PDF writer, and GPU compositor research on the TinyGL port.
How does it work?
Today. None of these features exists. The code they would start from:
- Debugging. COM1 output through
serial_putchar()andserial_write()(serial.h); the panic path reads the debug registersDR0toDR7(panic.c); and the NT-style hooks a debugger attaches to,ki_set_debug_routine()andDbgkForwardException()(except.h), with the service number forNtDebugActiveProcessreserved (service_numbers.h). Those hooks belong to the WinDbg-compatible Kernel Debugger (KD Protocol) roadmap, which overlaps this roadmap's GDB stub and debugger sections. - Input.
keyboard_inject_hid_key()andmouse_inject_state()(keyboard.h,mouse.h) and the USB stack; there is no touch or gamepad driver. - Shell.
cmd.exehasps,rebootandshutdown; there is nomemmap,netstatorstraceanywhere. - Libraries. Mbed TLS is vendored and could carry telemetry uploads; SAM, eSpeak NG and TinyGL are not vendored (
PROVENANCE.md).
Planned design.
- GDB stub. The GDB Remote Serial Protocol over COM1, so QEMU with
-gdb tcp::1234 -Sor a second machine can set breakpoints, read memory and step the kernel. - User-mode debugger.
debugger.exewith hardware breakpoints throughDR0toDR7, software breakpoints byINT3patching, and debug-register system calls. - Developer tools. An F12 debug console overlay, off by default, with kernel log, memory, network and system call tabs and
ps,memmap,netstatandstrace <pid>commands, plus an FPS overlay. - Touch and gamepads. Touch points and a gesture recogniser (tap, swipe, pinch) delivered as window messages; gamepad polling and XInput stubs.
- Print. A PDF writer and a print dialog, with printer drivers left to the hardware roadmaps.
- Text to speech. SAM first, then eSpeak NG, behind a
tts_speak()call. - Software OpenGL. TinyGL as
opengl32.dllfor simple 3D programs. - Sessions, telemetry, parental controls. Per-user sessions with their own compositor surface and fast switching; telemetry that is off by default (
HKLM\SYSTEM\Privacy\Telemetry = 0); and time and app limits inparcon.cpl.
What are its interfaces?
| Interface | Status |
|---|---|
serial_write(), debug register reads in the panic path |
Shipped |
ki_set_debug_routine(), DbgkForwardException() |
Shipped hooks; the debugger behind them is planned |
GDB stub, debugger.exe, SYS_DEBUG_* calls |
Planned |
| Touch, gesture, gamepad and XInput calls | Planned |
pdf_*, tts_*, opengl32.dll, sessions, telemetry_*, parcon.cpl |
Planned |
How do I use it?
Nothing here can be used yet. For kernel debugging today, read the serial log and the panic screen; see Panic Screen and Crash Experience.
What is not implemented yet?
- Kernel Debugger (GDB RSP Stub) and User-Mode Debugger; settle the overlap with the KD protocol roadmap first
- Developer Tools
- Touch Input and Gestures and Gamepad and XInput, whose drivers belong to Game Controllers and Haptics and I2C and Precision Touchpad
- Print Support, with printer drivers in Printing and Scanning Device Path
- Text to Speech; the roadmap records eSpeak NG as LGPL, and its licence file must be checked before it is vendored
- Software OpenGL
- Multi-User Sessions, which need user accounts from Security and User Accounts
- Telemetry and Parental Controls
How does it compare with Windows 11 and Linux?
Windows 11 covers every row: WinDbg, touch and pen messages, XInput, Microsoft Print to PDF, Narrator, the WARP software renderer, fast user switching, diagnostic data settings and Family Safety. Linux has KGDB and GDB, libinput, evdev and SDL for gamepads, CUPS, eSpeak NG, Mesa's llvmpipe, multi-seat logins and distribution-specific telemetry. The Impossible OS plan's two distinctive items are a kernel GDB stub and user debugger that share one debug-register interface, and an in-kernel debug console. Nothing is built yet.