ডিভাইসটির প্রতিনিধিত্ব /dev
এবং এর মধ্যে একটির মধ্যে পার্থক্য কী /sys/class
?
একজনের কি অন্যের চেয়ে বেশি পছন্দ হয়? একটি প্রস্তাব আছে এবং অন্য না কিছু আছে?
ডিভাইসটির প্রতিনিধিত্ব /dev
এবং এর মধ্যে একটির মধ্যে পার্থক্য কী /sys/class
?
একজনের কি অন্যের চেয়ে বেশি পছন্দ হয়? একটি প্রস্তাব আছে এবং অন্য না কিছু আছে?
উত্তর:
ফাইলগুলি /dev
হ'ল প্রকৃত ডিভাইসগুলির ফাইল যা ইউডিইভি রান সময় সময়ে তৈরি করে। ডিরেক্টরি /sys/class
চালানোর সময়ে কার্নেল দ্বারা রপ্তানি করা হয় মাধ্যমে হার্ডওয়্যার অনুক্রমের প্রকাশক sysfs
।
থেকে libudev এবং sysfs টিউটোরিয়াল
উদ্ধৃতাংশ
ইউনিক্স এবং ইউনিক্সের মতো সিস্টেমে / ডিভ ডিরেক্টরিতে অবস্থিত বিশেষ ফাইলগুলির (ডিভাইস ফাইল বা নোড নামে পরিচিত) মাধ্যমে হার্ডওয়্যার ডিভাইসগুলি অ্যাক্সেস করা হয়। এই ফাইলগুলি কেবল সাধারণ ফাইলের মতোই পড়ে এবং লিখিত হয়, তবে ডিস্কে ডেটা লেখার ও পড়ার পরিবর্তে তারা সরাসরি কার্নেল ড্রাইভারের সাথে যোগাযোগ করে যা পরে হার্ডওয়্যারের সাথে যোগাযোগ করে। অনেকগুলি অনলাইন সংস্থান রয়েছে / ডিভ ফাইলগুলি আরও বিশদে বর্ণনা করে। ট্র্যাডিটোনালি, এই বিশেষ ফাইলগুলি ইনস্টল করার সময় mknod কমান্ড ব্যবহার করে বিতরণ দ্বারা তৈরি করা হয়েছিল। সাম্প্রতিক বছরগুলিতে, লিনাক্স সিস্টেমগুলি রানটাইমে এই / ডেভ ফাইলগুলি পরিচালনা করতে udev ব্যবহার শুরু করে। উদাহরণস্বরূপ, ডিভাইসগুলি সনাক্ত করা হলে udev নোড তৈরি করবে এবং ডিভাইসগুলি সরানো হলে সেগুলি মুছবে (রানটাইমের সময় হটপ্লাগ ডিভাইস সহ)। এই পথে,
অন্য একটি অংশ
সিসফের ডিরেক্টরিতে কম্পিউটারের সাথে সংযুক্ত থাকায় ডিভাইসগুলির বংশগতি থাকে contain উদাহরণস্বরূপ, আমার কম্পিউটারে, hidraw0 ডিভাইসটি নীচে অবস্থিত:
/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4:1.0/0003:04D8:003F.0001/hidraw/hidraw0
পথের ভিত্তিতে, ডিভাইসটি 1-5 ডিভাইসের পোর্ট নং 4-এর সাথে সংযুক্ত ডিভাইসের (মোটামুটি, শেষ থেকে শুরু) কনফিগারেশন 1 (: 1.0) এর সাথে সংযুক্ত, ইউএসবি কন্ট্রোলার 1 (ইউএসবি 1) এর সাথে সংযুক্ত, এর সাথে সংযুক্ত পিসিআই বাস। আকর্ষণীয় হলেও, এই ডিরেক্টরিটির পথটি আমাদের খুব ভাল করে না, কারণ এটি কীভাবে হার্ডওয়্যারটি কম্পিউটারের সাথে শারীরিকভাবে সংযুক্ত রয়েছে তার উপর নির্ভর করে।
ভাগ্যক্রমে, সিসফগুলি কোনও পিসিআই এবং ইউএসবি পোর্টের সাথে সংযুক্ত রয়েছে তা জেনেও ডিভাইসগুলিতে সহজে অ্যাক্সেসের জন্য প্রচুর সংখ্যক সিমলিংক সরবরাহ করে। / Sys / শ্রেণিতে ডিভাইসের প্রতিটি পৃথক শ্রেণীর জন্য একটি ডিরেক্টরি রয়েছে।
সাধারণভাবে আপনি /etc/udev/rules.d
আপনার সিস্টেমকে বাড়ানোর জন্য নিয়ম ব্যবহার করেন । বিভিন্ন হার্ডওয়্যার উপস্থিত থাকলে স্ক্রিপ্টগুলি চালানোর জন্য বিধিগুলি তৈরি করা যেতে পারে।
একবার একটি সিস্টেম আপ আপনার বিরুদ্ধে পারেন কাজ স্ক্রিপ্ট লিখতে পারেন /dev
অথবা /sys
, এবং এটি সত্যিই ব্যক্তিগত পছন্দ নেমে আসে, কিন্তু আমি সাধারণত চেষ্টা বিরুদ্ধে কাজ করবে /sys
যেমন এবং সরঞ্জামের ব্যবহার করতে udevadm
বিভিন্ন সিস্টেম রিসোর্স অবস্থানের জন্য কোয়েরি udev করতে।
$ udevadm info -a -p $(udevadm info -q path -n /dev/sda) | head -15
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda':
KERNEL=="sda"
SUBSYSTEM=="block"
DRIVER==""
ATTR{ro}=="0"
ATTR{size}=="976773168"
ATTR{stat}==" 6951659 2950164 183733008 41904530 16928577 18806302 597365181 580435555 0 138442293 622621324"
ATTR{range}=="16"
...