A system console is the device which receives all kernel messages and warnings and which allows logins in single user mode.
The framebuffer implementation is the default in modern Linux distributions, and together with kernel mode setting, provides kernel-level support for display hardware and features such as showing graphics while the system is booting.
[5] The legacy text mode implementation was used in PC-compatible systems with CGA, EGA, MDA and VGA graphics cards.
[5] The Linux console uses fixed-size bitmap, monospace fonts, usually defaulting to 8x16 pixels per character.
[12] Some modern Linux-based systems have deprecated kernel based text-mode input and output, and instead show a graphical logo or progress bar while the system is booting, followed by the immediate start of a graphical user interface (e.g. the X.Org Server on desktop distributions, or SurfaceFlinger on Android).
At this point in time, the kernel is the only software running, and hence logging via user-space (e.g. syslog) is not possible, so the console provides a convenient place to output this information.
After the init boot process is complete, the console will be used to multiplex multiple virtual terminals (accessible by pressing Ctrl-Alt-F1, Ctrl-Alt-F2 etc., Ctrl-Alt-LeftArrow, Ctrl-Alt-RightArrow, or using chvt[13]).
Efforts on the internationalization of Linux at the kernel level started as early as in 1994 by Markus Kuhn and Andries Brouwer.
The serial console allows the same mode of access for the system, but usually at a slower speed due to the small bandwidth of RS-232.
A serial console is often used during development of software for embedded systems, and is sometimes left accessible via a debug port.
[15][17] These extended sequences can control colors, visual effects like blinking, underline, intensity and inverse video, bell tone frequency and duration, VESA screen blanking interval.
[18][19] Development priorities include support for multi-monitor setups, Unicode font rendering with Pango, XKB keyboard handling, and GPU OpenGL acceleration.
[20] Complaints about the current kernel implementation include "that it's a user-interface in kernel-space, the code is poorly maintained, handles keyboards badly, produces bad font rendering, misses out on mode-setting and multi-head support, contains no multi-seat awareness, and only has limited hot-plugging handling, limited to VT102 compliance.