यदि आप लिनक्स में माउस का उपयोग करने वाले वास्तविक दुनिया का प्रोग्राम लिख रहे हैं, तो आप सबसे अधिक एक्स एप्लीकेशन लिखने की संभावना रखते हैं, और उस स्थिति में आपको माउस घटनाओं के लिए एक्स सर्वर से पूछना चाहिए। Qt , GTK , और libsdl कुछ लोकप्रिय सी लाइब्रेरी हैं जो GUI प्रोग्राम लिखने के लिए आवश्यक माउस, कीबोर्ड, ग्राफिक्स, टाइमर और अन्य सुविधाओं तक पहुँचने के लिए कार्य प्रदान करते हैं। Ncurses टर्मिनल अनुप्रयोगों के लिए एक समान पुस्तकालय है।
लेकिन अगर आप अपने सिस्टम को खोज रहे हैं, या आप X का उपयोग किसी भी कारण से नहीं कर सकते हैं, तो यहां बताया गया है कि यह कर्नेल इंटरफ़ेस पर कैसे काम करता है।
UNIX दर्शन में एक मुख्य विचार यह है कि "सब कुछ एक फ़ाइल है"। अधिक विशेष रूप से, जितनी संभव हो उतनी चीजें उसी सिस्टम कॉल के माध्यम से सुलभ होनी चाहिए जो आप फ़ाइलों के साथ काम करने के लिए उपयोग करते हैं। और इसलिए माउस को कर्नेल इंटरफ़ेस एक डिवाइस फ़ाइल है। आप open()इसे, आने वाले डेटा को देखने के लिए वैकल्पिक रूप से कॉल poll()या इस select()पर, और डेटा read()को पढ़ने के लिए।
प्री-यूएसबी समय में, विशिष्ट डिवाइस फ़ाइल अक्सर एक सीरियल पोर्ट, जैसे /dev/ttyS0, या एक पीएस / 2 पोर्ट, होती है /dev/psaux। आपने माउस में जो भी हार्डवेयर प्रोटोकॉल बनाया था उसका उपयोग करके माउस से बात की। इन दिनों, /dev/input/*सबसिस्टम को प्राथमिकता दी जाती है, क्योंकि यह कई अलग-अलग इनपुट डिवाइसों को संभालने का एकीकृत, डिवाइस-स्वतंत्र तरीका प्रदान करता है। विशेष रूप से, /dev/input/miceआपको आपके सिस्टम से जुड़े किसी भी माउस से ईवेंट /dev/input/mouseNदेगा , और आपको एक विशेष माउस से ईवेंट देगा। अधिकांश आधुनिक लिनक्स वितरणों में, ये फाइलें गतिशील रूप से बनाई जाती हैं जब आप माउस में प्लग करते हैं।
माउस डिवाइस फ़ाइल को आप क्या पढ़ेंगे या लिखेंगे, इसके बारे में अधिक जानकारी के लिए, आप कर्नेल प्रलेखन में इनपुट / input.txt से शुरू कर सकते हैं । विशेष रूप से खंड २.२.२ (मूसदेव) और ३.२.४ (ईदेव) में देखें, और खंड ४ और ५ में भी।