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).
Комментарии (6)
- @charcircuit: маршрутизация ввода к правильному окну важна для end-to-end описания и источник багов, почему вне scope статьи.
- @rbancroft: статья впечатляющая, отличная работа.
- @venamresm__: тема покрыта для X11/Wayland, детали фокуса окон — часть WM/DE, варьируется, не input management (опыт написания WM).
- @Aurornis: это домен WM, статья затрагивает, но edge cases уведут в user space и настройки.
TuneD is a system tuning service for Linux
TuneD — служба тонкой настройки Linux.
- Отслеживает устройства через
udev, применяет профили, управляется из CLI и D-Bus. - Поддерживает
sysctl,sysfs, параметры ядра, плагины. - Работает без демона на ограниченных системах.
- Всё хранится в одном профиле, без разбросанных скриптов.
Профили
- Наследуются: общий HTTP-шаблон → Apache, Nginx.
- Полный откат изменений.
- Готовые пресеты: высокая пропускная способность, низкая латентность, энергосбережение, SAP, dBase и др.
Документация
- Старая: Fedora Power Management Guide.
- Новая: GitHub.
- Презентация: DevConf 2019.
Скачать
GitHub releases.
Баги
GitHub issues.
Разработка
GitHub.
PR или письма на power-management@lists.fedoraproject.org.
Лицензия
GPL v2+.
Комментарии (22)
- TuneD хвалят за экономию до 40-55 Вт и удобство на рабочих станциях, но на серверах результат «50/50»: иногда отключают и переходят на собственные скрипты.
- Есть адаптер под power-profiles-daemon, поэтому переключать профили можно из GNOME/KDE.
- Критика: дефолтные настройки неверно биндят IRQ для сети, а сам демон написан на Python, что вызывает сомнения в «производительности» инструмента для управления производительностью.
- Нет встроенного ограничения заряда батареи (как в TLP), поэтому для ноутбуков TuneD может быть не идеален.
- Пользователи хотели бы утилиту, которая после установки Linux сразу показывает, что не работает (suspend, GPU, Wi-Fi, диск), но такой «one-shot» диагностики пока нет.