Specifications
Chapter 1
An Introduction to Linux Input
The Linux kernel offers drivers for a vast number of different input devices—drivers for key-
boards, mice, joysticks, touch screens and others. Even though, many of these input devices
can not be used with the GNU/Linux operating system. This severe problem is caused by
input device drivers’ varying implementations: they are not following a common standard. It
is in the nature of the process how free and open source development evolves by the course of
time. Most developers implement device drivers in their sole discretion, only a few are following
common approaches. The increasing number of input devices are connected in many different
ways which results in a numerous amount of device drivers. For example, most function keys
found on mobile computers follow an entirely different approach for processing input events
than regular keyboards. All keys—no matter how they are connected to the system—are in-
tended to trigger input events which can be utilized. However, applications are not prepared
to receive input events from all the interfaces offered by the input device drivers.
The project outcome resulting from this diploma thesis solves the problem by creating
an abstraction layer—the Input Abstraction Layer. The Input Abstraction Layer represents
a framework unifying input events of the different input device drivers. All input events
are abstracted and get delivered to user space applications. Applications using the framework
receive all input events by accessing a single interface provided by the Input Abstraction Layer.
To get an overview of the current situation regarding input device support under Linux a
survey was carried out (Appendix B). This survey was aimed at all Linux users: beginners,
experts and professionals. The questions of the survey targeted function keys of desktop
keyboards and special keys of built-in laptop keyboards. The target of the survey was to
investigate the current state of the support of input devices from the user’s point of view. It
lasted for five days starting on the 13
th
of October 2004. During this time, 305 participants
contributed to the survey by answering the questions posted. Since it was an online survey an
e-mail was posted to several mailing lists. Both the e-mail and the addressed mailing lists can
be found in Appendix B, §B.1.
The used set of mailing lists ensured that all target groups—Linux beginners, experienced
and professionals—were reached. The Linux distributions’ mailing lists are mainly subscribed
to by end users, the Gnome and KDE lists are subscribed by both Linux developers and users.
The laptop mailing lists are subscribed to by people who run Linux on laptops, and therefore,
have to face extraordinary problems caused by the specific hardware. The large amount of
participants who contributed to the survey together with the used set of mailing lists, resulted
in a high expressiveness of the survey’s evaluation.
1