Полный текст

Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядраСтандартные туториалы редко объясняют, как работать с подсистемой ввода на низком уровне. Задача меняется, если нужно написать драйвер, который перехватывает нажатия и подменяет контент на лету. Прямой хук через keyboard_notifier здесь не сработает — блокирующие операции в прерывании убьют производительность.Архитектура требует четырёх итераций: от выноса логики в асинхронные workqueue до эмуляции виртуальной клавиатуры. Самый сложный этап — научить модуль распознавать текущую раскладку без доступа к userspace. Для этого придётся обойти скрытие символов ядра и получить доступ к структурам VT через kprobe.Разберём код самописного драйвера.