যদি আপনি লিনাক্সে মাউস ব্যবহার করে এমন একটি বাস্তব-বিশ্ব প্রোগ্রাম লিখছেন তবে আপনি সম্ভবত একটি এক্স অ্যাপ্লিকেশন লিখছেন এবং সেক্ষেত্রে আপনার মাউসের ইভেন্টগুলির জন্য এক্স সার্ভারটি জিজ্ঞাসা করা উচিত। কিউটি , জিটিকে এবং লিবিএসডিএল এমন কয়েকটি জনপ্রিয় সি লাইব্রেরি যা মাউস, কীবোর্ড, গ্রাফিক্স, টাইমার এবং জিইউআই প্রোগ্রাম লেখার জন্য প্রয়োজনীয় অন্যান্য বৈশিষ্ট্যগুলি অ্যাক্সেসের জন্য ফাংশন সরবরাহ করে। টার্মিনাল অ্যাপ্লিকেশনগুলির জন্য Ncurses একটি অনুরূপ লাইব্রেরি।
তবে আপনি যদি আপনার সিস্টেমটি অন্বেষণ করছেন, বা আপনি যে কারণেই X ব্যবহার করতে পারবেন না, এখানে কার্নেল ইন্টারফেসে এটি কীভাবে কাজ করে তা এখানে।
ইউনিক্স দর্শনের একটি মূল ধারণাটি হ'ল "সবকিছুই একটি ফাইল"। আরও সুনির্দিষ্টভাবে বলা যায় যে, ফাইলগুলির সাথে কাজ করার জন্য আপনি যে একই সিস্টেম কল ব্যবহার করছেন তার মাধ্যমে যতটা সম্ভব সম্ভব অ্যাক্সেসযোগ্য হওয়া উচিত। এবং তাই মাউসের কার্নেল ইন্টারফেসটি একটি ডিভাইস ফাইল। আপনি open()
এটি, বৈকল্পিকভাবে কল করুন poll()
বা select()
এতে আগত ডেটা আছে কি না তা দেখার read()
জন্য এবং এতে ডেটা পড়তে পারেন।
প্রাক-ইউএসবি সময়ে, নির্দিষ্ট ডিভাইস ফাইলটি প্রায়শই একটি সিরিয়াল বন্দর ছিল, যেমন /dev/ttyS0
, বা পিএস / 2 পোর্ট /dev/psaux
,। হার্ডওয়্যার প্রোটোকল যা মাউসে তৈরি হয়েছিল তা ব্যবহার করে আপনি মাউসের সাথে কথা বলেছেন। এই দিনগুলিতে /dev/input/*
সাবসিস্টেমটিকে অগ্রাধিকার দেওয়া হয়, কারণ এটি অনেকগুলি ইনপুট ডিভাইসগুলি পরিচালনা করার জন্য একীভূত, ডিভাইস-স্বতন্ত্র উপায় সরবরাহ করে। বিশেষত, /dev/input/mice
আপনার সিস্টেমে সংযুক্ত যে কোনও মাউস থেকে ইভেন্টগুলি /dev/input/mouseN
আপনাকে দেবে এবং আপনাকে একটি নির্দিষ্ট মাউস থেকে ইভেন্টগুলি দেবে। বেশিরভাগ আধুনিক লিনাক্স ডিস্ট্রিবিউশনে, আপনি যখন মাউস প্লাগ করেন তখন এই ফাইলগুলি গতিশীলভাবে তৈরি হয়।
মাউস ডিভাইস ফাইলে আপনি কী পড়বেন বা লিখবেন ঠিক সে সম্পর্কে আরও তথ্যের জন্য, আপনি কার্নেল ডকুমেন্টেশনে ইনপুট / ইনপুট.সেক্সট দিয়ে শুরু করতে পারেন । বিশেষত বিভাগ 3.2.2 (মাউসদেব) এবং 3.2.4 (বিভাজন) এবং বিভাগ 4 এবং 5 এ দেখুন।