head0
user-space virtual terminal
One user-space virtual terminal is supplied as a pre-packaged suite of connected service bundles in several layers:
a suite of terminal-emulator@vcN
service bundles running console-terminal-emulator
to provide terminal emulation to the TUI login sessions, attached to their individual pseudo-terminals and presenting themselves as the several /run/dev/vcN
user-space virtual terminals
a suite of ttylogin@vcN
service bundles providing TUI login services on those pseudo-terminals
a console-multiplexor@head0
service bundle running console-multiplexor
to multiplex among the lower vcN
virtual terminals and presenting itself as the /run/dev/head0mux
user-space virtual terminal
a console-input-method@head0
service bundle running console-input-method
to layer an input method on top of the multiplexor and presenting itself as the /run/dev/head0
user-space virtual terminal
The head0
virtual terminal is realized onto physical devices using several service bundles:
Either:
a console-fb-realizer@fbN
service bundle running console-fb-realizer
to realize the overall combination at /run/dev/head0
onto the /dev/fbN
framebuffer device; or
a console-kvt-realizer@ttyvN
service bundle running console-kvt-realizer
to realize the overall combination at /run/dev/head0
onto the /dev/ttyvN
kernel virtual terminal
a console-ugen-hid-realizer@ugenN.M
service bundle (auto-generated and auto-started by the Plug and Play manager) running console-ugen-hid-realizer
to realize the overall combination at /run/dev/head0
onto some USB HID device
The realizers all use global (i.e. not private to individual realizer services) user-space virtual terminal configuration, so kbdmaps
, fonts
, keyboards-aggregate
, mice-aggregate
, and vcs
in their service directories are all symbolic links to subdirectories of the same names under /etc/system-control/convert/user-vt/
.
In turn, the global configuration is set up so that the relevant /etc/system-control/convert/user-vt/vcs/something
autoconfiguration symbolic links point to /run/dev/head0
.
How keyboard maps and keyboard/mouse states are assigned is a matter of configuration policy. Similarly, fonts are third-party terminal resources not supplied in the toolkit, that have to be obtained, and configured in a manner that is determined by where on the system they are installed.