ΠΠΈΡΡΡ Π₯ΡΡΠ΅ΡΠ΅Ρ (Peter Hutterer), ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° X.Org, ΡΠ°Π±ΠΎΡΠ΅Ρ Π² Red Hat, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π½ΠΎΠ²Π° ΡΡΠΈΠ»ΠΈΡΠ° udev-hid-bpf, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ HID (Human Input Device) ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π·Π° HID ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠ°ΡΠΎ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΈ ΠΈ ΠΌΠΈΡΠΊΠΈ, ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° HID-BPF, ΠΏΠΎΡΠ²ΠΈΠ»Π° ΡΠ΅ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 6.3 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° HID.
Π£ΡΠΈΠ»ΠΈΡΠ°ΡΠ° udev-hid-bpf ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° udev Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈΠ»ΠΈ Π·Π° ΡΡΡΠ½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. ΠΠΌΠ° Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Ρ udev-hid-bpf: ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² Ρ Π°ΡΠ΄ΡΠ΅ΡΠ° ΠΈΠ»ΠΈ ΡΡΡΠΌΡΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ.
Π ΠΏΡΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ Π·Π°Π΄Π°ΡΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ΠΈ ΠΎΡΠΈ Π½Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡΠ΅, Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° 8 Π±ΡΡΠΎΠ½Π° Π²ΠΌΠ΅ΡΡΠΎ 5) ΠΈ Π½Π΅Π»ΠΎΠ³ΠΈΡΠ½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ ΡΡΠ±ΠΈΡΠΈΡ. ΠΡΠ² Π²ΡΠΎΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Π½ΡΡ Π±ΡΡΠΎΠ½ΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΡΡΡΠ°Π² Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
