Linux console

Simplified Structure of the Linux Kernel: VT subsystem
Framebuffer console showing Knoppix booting. The presence of the penguin graphic indicates this is a framebuffer console as opposed to text mode 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.[1] The Linux console provides a way for the kernel and other processes to send text output to the user, and to receive text input from the user. The user typically enters text with a computer keyboard and reads the output text on a computer monitor. The Linux kernel supports virtual consoles – consoles that are logically separate, but which access the same physical keyboard and display.[2] The Linux console (and Linux virtual consoles) are implemented by the VT (virtual terminal) subsystem of the Linux kernel, and do not rely on any user space software.[3] This is in contrast to a terminal emulator, which is a user space process that emulates a terminal, and is typically used in a graphical display environment.

The Linux console was one of the first features of the kernel and was originally written by Linus Torvalds in 1991[4] (see history of Linux). There are two main implementations: framebuffer and text 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. Non-x86 architectures used framebuffer mode because their graphics cards did not implement text mode.[5] The Linux console uses fixed-size bitmap, monospace fonts, usually defaulting to 8x16 pixels per character.[5]

The Linux console is an optional kernel feature, and most embedded Linux systems do not enable it. These systems typically provide an alternative user interface (e.g. web based), or boot immediately into a graphical user interface and use this as the primary means of interacting with the user. Other implementations of the Linux console include the Braille console to support refreshable Braille displays[6] and the serial port console.[7]

  1. ^ "config VT_CONSOLE: Support for console on virtual terminal". Linus Torvalds. The system console is the device which receives all kernel messages and warnings and which allows logins in single user mode.
  2. ^ "config VT: Virtual terminal". Linus Torvalds. If you say Y here, you will get support for terminal devices with display and keyboard devices. These are called "virtual" because you can run several virtual terminals (also called virtual consoles) on one physical terminal. This is rather useful, for example one virtual terminal can collect system messages and warnings, another one can be used for a text-mode user session, and a third could run an X session, all in parallel. Switching between virtual terminals is done with certain key combinations, usually Alt-<function key>.
  3. ^ Cite error: The named reference deprecating was invoked but never defined (see the help page).
  4. ^ "Replacing CONFIG_VT/Linux-Console". FOSDEM. 2013-02-02. CONFIG_VT is the kernel configuration option that enables virtual terminals in the kernel. Initially written by Linus himself, it has been around since 1991.
  5. ^ a b c "The Framebuffer Console". kernel.org. The framebuffer console (fbcon), as its name implies, is a text console running on top of the framebuffer device. It has the functionality of any standard text console driver, such as the VGA console, with the added features that can be attributed to the graphical nature of the framebuffer. In the x86 architecture, the framebuffer console is optional, and some even treat it as a toy. For other architectures, it is the only available display device, text or graphical. What are the features of fbcon? The framebuffer console supports high resolutions, varying font types, display rotation, primitive multihead, etc. Theoretically, multi-colored fonts, blending, aliasing, and any feature made available by the underlying graphics card are also possible.
  6. ^ "Documentation/braille-console.txt". kernel.org. Archived from the original on 2015-09-06. Retrieved 2014-07-04.
  7. ^ "Documentation/serial-console.txt". kernel.org. Archived from the original on 2013-05-22. Retrieved 2013-05-30.