একটি USB ড্রাইভ প্লাগ ইন করা হয় তখন কী ঘটে?


21

কার্নেল স্পেস থেকে ইউজার স্পেসে ইউএসবি ইভেন্টগুলির প্রবাহ কী? আমি যখন একটি ইউএসবি ড্রাইভ প্লাগ ইন করি তখন আমি আমার ডেস্কটপে একটি পপআপ পাই - নতুন ইউএসবি ড্রাইভটি এটির মাউন্ট এবং এটি পপআপ প্রদর্শন করে এমন ইভেন্টগুলির অনুক্রম কী?

উত্তর:


6

এটি udevআধুনিক লিনাক্স সিস্টেমগুলি দ্বারা হস্তান্তরিত হয় । udevডেমন সিস্টেম দিয়ে শুরু অনুসন্ধান করবে /etc/udev/rules.dএবং /lib/udev/rules.dও কার্নেল ইভেন্টের জন্য ম্যাচিং নিয়ম চালানো হবে। একটি ইউএসবি ড্রাইভ সন্নিবেশ করা একটি ইভেন্টকে ট্রিগার করবে, udevএকটি মেলানো নিয়মের সন্ধান করবে এবং এটি সম্পাদন করবে।

নিয়মগুলি সেগুলি নির্ধারণ করবে যে আপনার সিস্টেমটি কী করে। সাম্প্রতিক বছরগুলিতে, udevএইচএএল এর সাথে যোগাযোগ করেছে, যা DBUS এর মাধ্যমে অ্যাপ্লিকেশনগুলিকে সতর্ক করবে। এই পদ্ধতিটি এখন একীভূত udevসমাধানের পক্ষে অচল , আমি ধারণা করি যে সরাসরি বা ডিবিএস-সেন্ডের মাধ্যমে udevdযোগাযোগ করা জড়িত ।dbus

আপনি এর কার্যক্রম নিরীক্ষণ করতে পারেন udevমাধ্যমে udevadm monitor


2

আমি এটির সাথে এখনও পুরোপুরি আত্মবিশ্বাসী নই, সুতরাং এটির সাথে লবণ এবং আরও গবেষণা নিয়ে নিন।

এটি কার্নেল হটপ্লাগ সাবসিস্টেম দিয়ে শুরু হয়। কোনও ডিভাইস সেটআপ হওয়ার পরে, এটি হটপ্লাগ ইভেন্টগুলি হ্যান্ডেল করার জন্য ইউজারস্পেস প্রোগ্রামটি সেটআপ করা যাই হোক না কেন কল করে (যদি এটি সেট করা থাকে echo hotplug_handler > /proc/sys/kernel/hotplug) অথবা কোবজেক্ট_উভেন্ট নেটলিংক সকেটের উপরে ডেটা প্যাকেট প্রেরণ করে। যখন কার্নেল হটপ্লাগ হ্যান্ডলারটি চালু করে, এটি কিছু পরিবেশের ভেরিয়েবল সেট আপ করে। যখন কার্নেল একটি ডেটাপ্যাকেট প্রেরণ করে, এতে কী = মান জোড়া যুক্ত থাকে। আপনি যদি চান, আপনি এমন একটি স্ক্রিপ্ট সেটআপ করতে পারেন যা কেবল পরিবেশে লগ করে এটি হ্যান্ডলার হিসাবে সেটআপ করতে পারে (অবশ্যই আপনার উত্পাদন সিস্টেমে নয় - একটি পরীক্ষা সেটআপ)।

সাধারণত, উদেব হ্যান্ডলার হিসাবে সেটআপ হয় এবং কীভাবে ইভেন্টগুলি পরিচালনা করতে হয় তার কয়েকটি বিধি সেটআপ থাকে। সেখান থেকে, এটি এমন অন্যান্য প্রোগ্রাম চালু করতে পারে যা অন্যান্য কাজ করে (যেমন ডিবিএস বার্তাগুলি ইস্যু করে)। এই উদেব নিয়মগুলি সুদের নির্দিষ্ট বিতরণের উপর অত্যন্ত নির্ভরশীল।

এই থ্রেডে অনেক তথ্য রয়েছে যেখানে কেউ কিছু ডকুমেন্টেশন লেখার চেষ্টা করছেন - প্রথম বার্তাটি সঠিক নয় নোট করুন; পড়া চালিয়ে যান


2
একসময় এটি সঠিক ছিল, তবে এখন দীর্ঘ সময়ের জন্য নয়: আধুনিক udevএকটি নেটলিঙ্ক সকেটে যুবকদের জন্য শ্রবণ করে। (পুরানো উপায়ে সিরিয়ালাইজেশন / সমঝোতার বিষয়গুলি ছিল))
প্রাক্তন

যেহেতু আমি লিনাক্সের এই অংশে নতুন ( ইউদেব , হটপ্লাগ ), তাই আপনি এখানে বর্ণিত প্রতিটি লাইনে আমার ধারণা থাকতে চাই। তাই আপনি দয়া করে কার্নেল হটপ্লাগ সাবসিস্টেম দিয়ে শুরুতে আরও বিস্তারিত বলতে পারেন ।
সেন

@ প্রিমিয়েন্ট: উত্তরের জন্য ধন্যবাদ আপনি দয়া করে ঘটনা ক্রম ব্যাখ্যা করতে পারেন।
সেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.