Headless software (e.g. "headless Linux",) is software capable of working on a device without a
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
. Such software receives inputs and provides output through other interfaces like network or
serial port
A serial port is a serial communication Interface (computing), interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in Pa ...
and is common on servers and
embedded device
An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or Electronics, electronic syst ...
s.
The term "headless" is most often used when the ordinary version of the program requires that a
graphics card
A graphics card (also called a video card, display card, graphics accelerator, graphics adapter, VGA card/VGA, video adapter, display adapter, or colloquially GPU) is a computer expansion card that generates a feed of graphics output to a displa ...
or similar graphical interface device be present. For instance, the absence of a graphic card, mouse or keyboard may cause an initialization process that assumes their presence to fail, or the graphics card may be relied upon to build some offline image that is later served through network.
A
headless computer (for example, and most commonly, a server) may be missing many of the system libraries that support the display of graphical interfaces. Software that expects these libraries may fail to start or even to
compile if such libraries are not present.
Headless agents and games
Video games typically use a headless server for simulation of a multiplayer environment.
Additionally, headless clients can be used to automate
testing, play as
NPC AIs, or integrate with an external
artificial human companion system.
Headless simulations of games are used to accelerate the rate of
gradient descent in
machine learning
Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of Computational statistics, statistical algorithms that can learn from data and generalise to unseen data, and thus perform Task ( ...
, for example, by ''enabling large batches of simulation to be run in parallel''.
Headless rendering
When no physical screen is present, software can still be used to render images for many applications.
In a headless website configuration, the
frontend presentation
A presentation conveys information from a speaker to an audience. Presentations are typically demonstrations, introduction, lecture, or speech meant to inform, persuade, inspire, motivate, build goodwill, or present a new idea/product. Presenta ...
is
server-side rendered.
Headless rendering is also used in films and generation of
synthetic data
Synthetic data are artificially generated rather than produced by real-world events. Typically created using algorithms, synthetic data can be deployed to validate mathematical models and to train machine learning models.
Data generated by a comp ...
. For example,
Blender provides command-line rendering.
[{{cite web
, title=Command Line Rendering
, url=https://docs.blender.org/manual/en/latest/advanced/command_line/render.html
]
See also
*
OS-level virtualization
*
Secure Shell (SSH)
*
Headless browser
*
Headless computer
*
Headless content management system
*
Compositing window manager
A compositing manager, or compositor, is software that provides applications with an off-screen data buffer, buffer for each window, then Compositing, composites these window buffers into an image representing the screen and writes the result into ...
References
Software engineering terminology