Kmscon
   HOME

TheInfoList



OR:

Kmscon is a
virtual console A virtual console (VC) – also known as a virtual terminal (VT) – is a conceptual combination of the keyboard and display for a computer user interface. It is a feature of some Unix-like operating systems such as Linux, BSD, illumos, Uni ...
that runs in
userspace A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
and intends to replace the
Linux console The Linux console is a system console internal to the Linux kernel. A system console is the device which receives all kernel messages and warnings and which allows logins in single user mode. The Linux console provides a way for the kernel and ...
, a terminal built into the Linux kernel. Kmscon uses the KMS driver for its output, it is multiseat-capable, and supports internationalized keyboard input and
UTF-8 UTF-8 is a variable-length character encoding used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode'' (or ''Universal Coded Character Set'') ''Transformation Format 8-bit''. UTF-8 is capable of ...
terminal output. The input support is implemented using
X keyboard extension In human–computer interfaces, the X keyboard extension or XKB is a part of the X Window System that extends the ability to control the keyboard over what is offered by the X Window System core protocol, and allows to use multiple keyboard layou ...
(XKB). Development of Kmscon stopped in March 2015. There was a successor project called systemd-consoled, but this project was also later dropped in July 2015.


Features

Kmscon supports printing the full set of
Unicode Unicode, formally The Unicode Standard,The formal version reference is is an information technology standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems. The standard, wh ...
glyphs and is not limited by console encoding as the Linux console. While the only hard dependency is
udev udev (userspace ) is a device manager for the Linux kernel. As the successor of devfsd and hotplug, udev primarily manages device nodes in the directory. At the same time, udev also handles all user space events raised when hardware devices ...
, kmscon can optionally be compiled to use
Mesa A mesa is an isolated, flat-topped elevation, ridge or hill, which is bounded from all sides by steep escarpments and stands distinctly above a surrounding plain. Mesas characteristically consist of flat-lying soft sedimentary rocks capped by a ...
for hardware acceleration of the console, and the
pango Pango (stylized as Παν語) is a text (i.e. glyph) layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text. Full-function rendering of text and cross-platform support is achieved when Pango is us ...
library for improved font rendering. The adoption of XKB for input allows kmscon to accept the full range of available
keyboard layout A keyboard layout is any specific physical, visual or functional arrangement of the keys, legends, or key-meaning associations (respectively) of a computer keyboard, mobile phone, or other computer-controlled typographic keyboard. is the actua ...
s for the
X.Org Server X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation. Implementations of the client-side X Window System protocol exist in the form of ''X11 libraries'', which serve a ...
and
Wayland compositor Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a '' Wayland composito ...
s for input and makes it possible to use the same layout both in graphical environment and in terminal.


Multiseat support

The VT system in the Linux kernel dates to 1993 and does not implement out-of-the-box multiseat support. It supports up to 63 VTs, but only one VT can be active at any given time. This necessitates additional steps to configure multiseat support. kmscon/systemd-consoled will enable multiseat out-of-the-box. If one seat's display server is running on VT 7 and another seat's display server is running on VT 8, then only one of these two seats can be used at a time. To use the other seat, a VT switch must be initiated. To make all seats usable at the same time, there are a few options: * Associate all display servers with the same VT: any user can switch VTs and in that case all users switch to the new VT. This makes VT switching (and thus fast user switching) impractical.
X.Org Server X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation. Implementations of the client-side X Window System protocol exist in the form of ''X11 libraries'', which serve a ...
command-line option -sharevts * Don't associate any display server with a VT: fast user switching is impossible in this case. Text-based console logins are only possible if an input and display device are reserved for this purpose. * Associate only one of the display servers with a VT: the other display servers can't do VT switching, but the display server associated with a VT can. VT switching on that one seat won't affect the other seats. This is the approach favored and assumed by systemd. command-line option vt7 for user 1 and -novtswitch for all other users.


Development

In 2011, Jesse Barnes wrote in his blog about the possible userspace
DRM DRM may refer to: Government, military and politics * Defense reform movement, U.S. campaign inspired by Col. John Boyd * Democratic Republic of Madagascar, a former socialist state (1975–1992) on Madagascar * Direction du renseignement milita ...
-based implementation of the virtual terminal, that would dissolve the need for the
Linux framebuffer The Linux framebuffer (fbdev) is a linux subsystem used to show graphics on a computer monitor, typically on the system console. It was designed as a hardware-independent API to give user space software access to the framebuffer (the part of ...
and
virtual terminal In open systems, a virtual terminal (VT) is an application service that: # Allows host terminals on a multi-user network to interact with other hosts regardless of terminal type and characteristics, # Allows remote log-on by local area network ...
(VT) subsystems in the Linux kernel. Motivated by this blog post, David Herrmann implemented the basic functionality of virtual terminal. In October 2013, terminal emulator state machine () library, a state machine for
DEC VT100 The VT100 is a video terminal, introduced in August 1978 by Digital Equipment Corporation (DEC). It was one of the first terminals to support ANSI escape codes for cursor control and other tasks, and added a number of extended codes for special f ...
VT520 The VT520 is an ANSI standard computer terminal introduced by Digital Equipment Corporation (DEC) in 1993 and 1994. The VT520 is a multi-session monochrome text-only terminal with a built-in 14" monitor. The VT510 was a single-session version, whi ...
compatible terminal emulators, was split out of kmscon and made available separately. It was amended with wlterm, an example Wayland terminal emulator.


See also

*
List of terminal emulators This is a list of notable terminal emulators. Most used terminal emulators on Linux and Unix-like systems are GNOME Terminal on GNOME and GTK-based environments, Konsole on KDE, and xfce4-terminal on Xfce as well as xterm. Character-oriented te ...


References

{{freedesktop.org Free system software Freedesktop.org Linux kernel-related software Software using the ISC license Technical communication tools Terminal emulators Wayland (display server protocol)