Headless-программное обеспечение (например, "headless Linux", [1] ) — это программное обеспечение, способное работать на устройстве без графического пользовательского интерфейса . Такое программное обеспечение получает входные данные и обеспечивает выходные данные через другие интерфейсы, такие как сеть или последовательный порт , и распространено на серверах и встроенных устройствах .
Термин «headless» чаще всего используется, когда обычная версия программы требует наличия графической карты или аналогичного графического интерфейсного устройства. Например, отсутствие графической карты, мыши или клавиатуры может привести к сбою процесса инициализации, который предполагает их наличие, или графическая карта может быть использована для создания некоторого автономного образа, который позже будет передан по сети.
Безголовый компьютер ( например, и чаще всего сервер) может не иметь многих системных библиотек, которые поддерживают отображение графических интерфейсов. Программное обеспечение, которое ожидает эти библиотеки, может не запуститься или даже не скомпилироваться, если такие библиотеки отсутствуют. [2]
В видеоиграх обычно используется headless-сервер для моделирования многопользовательской среды.
Headless-сервер не отображает никаких визуальных эффектов, и на нем никто не играет локально. Это позволяет выделенному серверу сосредоточиться на игровой логике и модерировании входящей информации от клиентов, максимально используя свои ресурсы для хостинга игры.
— Документация Unreal Engine
[3]
Кроме того, безголовые клиенты могут использоваться для автоматизации тестирования , игры в качестве ИИ NPC или интеграции с внешней системой искусственного компаньона-человека .
Безголовые симуляции игр используются для ускорения скорости градиентного спуска в машинном обучении , например, за счет возможности параллельного запуска больших партий симуляций . [4]
При отсутствии физического экрана программное обеспечение все равно можно использовать для рендеринга изображений во многих приложениях.
В конфигурации headless-сайта представление интерфейса отображается на стороне сервера .
Headless-рендеринг также используется в фильмах и генерации синтетических данных . Например, Blender обеспечивает рендеринг командной строки. [5]