Hacker News Digest

27 ноября 2025 г. в 16:55 • venam.net • ⭐ 93 • 💬 6

OriginalHN

#linux#evdev#devtmpfs#sysfs#procfs#udev#libinput#xkb#x11#wayland

The input stack on Linux: An end-to-end architecture overview

Стек обработки ввода в Linux делится на три уровня: kernel-level (аппаратное обеспечение, шины, input core и драйверы устройств), промежуточный (evdev для абстракции событий, devtmpfs для узлов устройств, sysfs и procfs для атрибутов и отладки) и user-space (udev с hwdb, libinput/XKB для интерпретации, X Server/Wayland для виджетов).

В kernel input core (drivers/input/input.c) управляет устройствами через struct input_dev (выделяется input_allocate_device, регистрируется input_register_device в input_dev_list, интегрируется с devtmpfs и /proc/bus/input/). Драйверы отправляют события input_event, core фан-аутит их зарегистрированным обработчикам (input_handler_list), включая evdev по умолчанию (/dev/input/eventX). Обработчики реализуют интерфейс с event(), filter(), match() и т.д.; input_handle связывает устройство и обработчик, поддерживает эксклюзивный захват (input_grab_device).