Jika Anda menulis program dunia nyata yang menggunakan mouse di Linux, kemungkinan besar Anda menulis aplikasi X, dan dalam hal ini Anda harus meminta server X untuk acara mouse. Qt , GTK , dan libsdl adalah beberapa pustaka C populer yang menyediakan fungsi untuk mengakses mouse, keyboard, grafik, timer, dan fitur lain yang diperlukan untuk menulis program GUI. Ncurses adalah perpustakaan serupa untuk aplikasi terminal.
Tetapi jika Anda menjelajahi sistem Anda, atau Anda tidak dapat menggunakan X untuk alasan apa pun, berikut adalah cara kerjanya di antarmuka kernel.
Gagasan inti dalam filosofi UNIX adalah bahwa "semuanya adalah file". Lebih khusus lagi, sebanyak mungkin hal harus dapat diakses melalui panggilan sistem yang sama yang Anda gunakan untuk bekerja dengan file. Jadi antarmuka kernel ke mouse adalah file perangkat. Anda open()
itu, panggilan opsional poll()
atau select()
di atasnya untuk melihat apakah ada data yang masuk, dan read()
untuk membaca data.
Pada masa pra-USB, file perangkat tertentu sering berupa port serial, mis. /dev/ttyS0
, Atau port PS / 2 /dev/psaux
,. Anda berbicara dengan mouse menggunakan protokol perangkat keras apa pun yang dibangun ke dalam mouse. Saat ini, /dev/input/*
subsistem lebih disukai, karena menyediakan cara terpadu dan tidak tergantung pada perangkat untuk menangani banyak perangkat input yang berbeda. Secara khusus, /dev/input/mice
akan memberi Anda acara dari mouse apa pun yang terpasang pada sistem Anda, dan /dev/input/mouseN
akan memberi Anda acara dari mouse tertentu. Di sebagian besar distribusi Linux modern, file-file ini dibuat secara dinamis ketika Anda mencolokkan mouse.
Untuk informasi lebih lanjut tentang apa yang akan Anda baca atau tulis ke file perangkat mouse, Anda dapat mulai dengan input / input.txt dalam dokumentasi kernel. Lihat khususnya di bagian 3.2.2 (mousedev) dan 3.2.4 (evdev), dan juga bagian 4 dan 5.