Linux'ta fareyi kullanan bir gerçek dünya programı yazıyorsanız, büyük olasılıkla bir X uygulaması yazıyorsunuz ve bu durumda X sunucusundan fare olaylarını sormalısınız. Qt , GTK ve libsdl , GUI programlarını yazmak için gerekli olan fareye, klavyeye, grafiklere, zamanlayıcılara ve diğer özelliklere erişmek için işlevler sağlayan bazı popüler C kütüphaneleridir. Ncurses , terminal uygulamaları için benzer bir kütüphanedir.
Fakat sisteminizi araştırıyorsanız veya herhangi bir nedenle X'i kullanamıyorsanız, işte çekirdek arayüzünde nasıl çalıştığı.
UNIX felsefesindeki temel fikir "her şey bir dosya" dır. Daha spesifik olarak, mümkün olduğu kadar çok şeye dosyalarla çalışmak için kullandığınız aynı sistem çağrıları yoluyla erişilebilir olmalıdır. Ve böylece farenin çekirdek arayüzü bir cihaz dosyasıdır. Size open()
, isteğe bağlı olarak gelen veri olup olmadığını görmek ve verileri okumak için arayın poll()
veya arayın .select()
read()
USB öncesi zamanlarda, belirli bir aygıt dosyası genellikle bir seri bağlantı noktasıydı, örneğin /dev/ttyS0
ya da bir PS / 2 bağlantı noktasıydı /dev/psaux
. Hangi donanım protokolünü kullanıyorsanız fareyle fareyle konuştunuz. Bu günlerde, /dev/input/*
birçok farklı giriş cihazının kullanımı için birleşik, cihazdan bağımsız bir yol sağladığı için alt sistem tercih edilir. Özellikle, /dev/input/mice
sisteminize bağlı herhangi bir fareden /dev/input/mouseN
olayları verecek ve belirli bir fareden olayları verecek. Çoğu modern Linux dağıtımında, bu dosyalar bir fareyi taktığınızda dinamik olarak oluşturulur.
Fare aygıtı dosyasına tam olarak ne okuyup yazacağınız hakkında daha fazla bilgi için , çekirdek belgelerinde input / input.txt ile başlayabilirsiniz . Özellikle 3.2.2 (mousedev) ve 3.2.4 (evdev) bölümlerine ve ayrıca 4. ve 5. bölümlere bakın.