RDP straight to the console
What you get
This is not the remote desktop inside Windows. It is the VM's screen, served by the host, the way Hyper-V's VM Connect and VirtualBox's VRDP work. So it shows UEFI, installers, login screens and guests without a network.
- One port for all VMs (3389). The user name picks the VM.
- Password: the administrator password of keelOS, or a VM's own RDP password. Login uses NLA; only an NT hash of the administrator password is kept, never the password.
- Works with mstsc, the Windows App, FreeRDP and Remmina.
- A VM without a display, or not running, shows a "no signal" card. A stopped VM gets a START button.
- When the VM reboots or shuts down, the session stays open and shows a card instead of dropping.
- After a host restart the client reconnects by itself.
Copy and paste without a guest agent
Ctrl+Alt+C copies the whole text console of a Linux or FreeBSD guest. The host reads the characters from the guest's memory; there is no OCR. Ctrl+Alt+V pastes by typing the text into the guest, after you confirm a preview. This also works in installers and firmware screens.
Keyboards: the host translates between the client's layout and the guest's, with tables for 33 layouts, so a Japanese keyboard on an English Windows guest types the right characters.
What was measured
The screen goes out through RDP's graphics pipeline with RemoteFX Progressive. Window moves and scrolling are sent as copies of what the client already has, plain areas as fills, and repeated tiles from the client's cache. Bandwidth on a Windows desktop:
- Dragging a window: 14.4 MB/s with plain bitmaps, 0.47 MB/s now.
- Scrolling: 3.4 MB/s with plain bitmaps, 0.056 MB/s now.
Limits
- Copying out of a graphical Windows desktop needs an agent in the guest. It is planned.
- Pasting types about 20–25 characters a second, slower on Windows guests; characters with no key on the guest's keyboard are skipped.
- No H.264, sound or USB redirection yet.
- For the resolution to follow the client window, a Windows guest needs the virtio GPU driver installed.