`Udev` ব্যবহারের বিকল্প আছে কি?


16

আমি যখন ওদেবের মাহাত্ম্য বুঝতে পেরেছি এবং বিকাশকারীদের প্রচেষ্টার প্রশংসা করছি, তখন আমি কেবল ভাবছিলাম যে এর কোনও বিকল্প আছে কিনা।

উদাহরণস্বরূপ, আমি কল্পনা করতে পারি যে স্টার্টআপ স্ক্রিপ্টটি তৈরি করার একটি উপায় থাকতে হবে যা বেশিরভাগ ডিভাইস নোড তৈরি করে যা আমার সিস্টেমে (কোনও হার্ডওয়্যার পরিবর্তিত হয়নি) যাইহোক, একই রকম।

আমি যে সুবিধা বা কারণটি এড়িয়ে যেতে চাই তা হ'ল udevস্কিপিংয়ের মতোই হবে dbus, যথা জটিলতা হ্রাস করা এবং এর দ্বারা আরও নিরাপদে সিস্টেম সেটআপে আমার পরিবর্তনগুলি বাড়ানো।

উত্তর:


23

udevবাইরে বেরোনোর ​​বিভিন্ন বিকল্প রয়েছে। আপাতদৃষ্টিতে জেন্টু যেকোনো কিছু ব্যবহার করতে পারে mdev। আরেকটি বিকল্প udevহ'ল পূর্বসূরির ব্যবহার করার চেষ্টা করা devfsd। অবশেষে, আপনি সর্বদা আপনার প্রয়োজনীয় সমস্ত ডিভাইস ফাইল তৈরি করতে পারেন mknod

নোটগুলি ডিস্কে তৈরি করা যেতে পারে এবং অন্যান্য বিকল্পগুলির মতো অস্থায়ী ফাইল সিস্টেমে নয়, তবে বুট সময়ে সমস্ত কিছু তৈরি করার দরকার নেই বলে মনে রাখবেন। অবশ্যই, যখন নতুন হার্ডওয়্যার প্লাগ ইন করা থাকে (যেমন একটি ইউএসবি স্টিক) তখন আপনি গতিশীল ডিভাইস ফাইলগুলি তৈরি করার নমনীয়তা হারাবেন। আমি বিশ্বাস করি যে এই যুগে স্ট্যান্ডার্ড পদ্ধতির প্রত্যেকটি /devডিভাইস ফাইলই ছিল যা আপনি ইতিমধ্যে তৈরি করতে পারা প্রয়োজন (যেমন অনেকগুলি ডিভাইস ফাইল) need

আধুনিক ডিস্ট্রোতে কাজ করার জন্য অবশ্যই এই পদ্ধতির কোনওটি পাওয়া খুব কঠিন। জেন্টু উইকি mdevডেস্কটপ পরিবেশের সাথে কাজ করতে অসুবিধার কথা উল্লেখ করেছে (জেন্টোর বাইরে একা থাকুক)। সর্বশেষ devfsdপ্রকাশটি 2002 ছিল, এটি এমনকি আধুনিক কার্নেলগুলি দিয়ে আদৌ কাজ করবে কিনা আমার কোনও ধারণা নেই। ম্যানুয়ালি নোডগুলি তৈরি করা সম্ভবত সবচেয়ে কার্যকর উপায়, তবে এমনকি অক্ষম করাও udevএকটি চ্যালেঞ্জ হতে পারে, বিশেষত ডিস্টোগুলি ব্যবহার করে systemd( udevবর্তমানে এটি একটি অংশ systemd, যা একটি দৃ depend় নির্ভরতার পরামর্শ দেয়)।

আমার পরামর্শটি বদ্ধ udev;)


1
ধন্যবাদ! দুর্দান্ত উত্তর যা প্রশ্নের পক্ষে সমস্ত দিক না থাকলে সবচেয়ে বেশি সম্বোধন করেছিল এবং তথ্য পূর্ণ ছিল! ভাবছি এখন systemd হল সমস্যা সমাধানের জন্য ... আমি এই :) ছাড়ান কিভাবে দেখতে হবে
humanityANDpeace

udevsystemdএগুলি ব্যতীত পুরোপুরি সূক্ষ্মভাবে কাজ করা উচিত - এগুলি উভয়ই কেবল একই কোড-বেসের মধ্যে বিকাশযুক্ত তবে udevএটি নির্মিত হতে পারে + এটি থেকে স্বতন্ত্র চালানো যায়।
ইলিয়াস প্রোবস্ট

@ ইলিয়াস অবশ্যই যাইহোক যেকোন udevসময়ের চেয়ে অনেক বেশি দীর্ঘ ছিল systemd। প্রশ্ন হল, systemdকাজ ছাড়া udevকি কাজ করতে পারেন ? আমার অনুমান যে আপনাকে কমপক্ষে কোনও কোনও --without-udevবিকল্প দিয়ে পুনরায় সংশ্লেষ করতে হবে ।
গ্রিম

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

@ গ্রায়েটি ফেয়ার পয়েন্ট, তবে সম্ভবত আমি তখন ডিআইডি-র জন্য সিস্টেমে বুট করার পরেও সেই সূক্ষ্ম নই! অতি এটি একটি বর্ণন দিতে
humanityANDpeace

22

আধুনিক লিনাক্স কার্নেলগুলি devtmpfsফাইল সিস্টেমকে সমর্থন করে (প্রাচীন সাথে বিভ্রান্ত করবেন না devfs) , যা কার্নেলগুলি আবিষ্কার করার সাথে সাথে সমস্ত ডিভাইস নোডকে গতিশীলভাবে তৈরি করে। (আসলে, সাম্প্রতিক udevপ্রকাশের জন্য এটির প্রয়োজন ; আপনি দেখতে পাবেন যে উদেব আর কোনও ডিভাইস নোড তৈরি করে না, কেবল প্রতিলিঙ্ক।)

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

সুতরাং তত্ত্ব একটি সম্পূর্ণ একশিলা কার্নেল উচিত বুট ঠিক সূক্ষ্ম udev দ্বারা ছাড়াই।

তবে এখানে আসল সমস্যাটি হ'ল পরে কী ঘটে।

  1. বেশ কয়েকটি ইউজারস্পেস প্রোগ্রাম ইউডেভের ডিভাইস ডাটাবেস বজায় রাখার উপর নির্ভর করে, এর মাধ্যমে অ্যাক্সেসযোগ্য libudev। ডিভাইসগুলি গণনা করার সময় এবং যুক্ত / সরানো ইভেন্টগুলি শোনার জন্য সরাসরি কার্নেল ইন্টারফেস (সিএসএফ এবং নেট লিঙ্ক) ব্যবহার করা যেতে পারে, তবে বিভিন্ন উদেব নিয়ম সংযুক্ত সমস্ত মেটাডেটা ছাড়াই আপনি এখনও রয়ে যাবেন।

  2. udev 'র এছাড়াও বিভিন্ন "ক্রমাগত" symlinks বজায় রাখা /dev/disk/by-*, /dev/mapper, /dev/input/by-path, /dev/snd/by-path, ইত্যাদি। উদাহরণস্বরূপ, আপনার যদি দুটি ডিস্ক সংযুক্ত থাকে, তবে কোনও নিশ্চয়তা নেই যে প্রথমটি সর্বদা থাকবে sdaবা না sdb, তবে উদেব নিশ্চিত করে যে এতে থাকা সিমলিংকগুলি /dev/disk/by-uuidসঠিক দিকে নির্দেশ করবে।

  3. ডিভাইস নোড এখন এবং সেইজন্য আপনার উদ্বেগ আর কার্নেল দ্বারা তৈরি করা হয়, এটা এখনও মনে রাখবেন যে কিছু ডিভাইস ধরনের পরিবর্তনশীল বরাদ্দ গুরুতর / গৌণ সংখ্যার ব্যবহার শুরু করেছেন গুরুত্বপূর্ণ, তাই যদিও আপনি /dev/fuse10.228 এবং /dev/hpet10.229 হিসেবে আজ, তারা হবে প্রতিটি পুনরায় বুট করার পরে আলাদা আলাদা নম্বর থাকে, সুতরাং হয় devtmpfsবা (পুরানো সিস্টেমে) একটি প্রোগ্রাম যা যুবকদের শোনার প্রয়োজন হয়

এর মধ্যে অনেকগুলি সহজেই অন্যান্য প্রোগ্রাম যেমন সহজেই করা যেত mdev। আমার বক্তব্যটি হ'ল স্থির /etc/MAKEDEVস্ক্রিপ্টটি আর কাজ করবে না ...


সুতরাং, মূলত, যখন বুট জটিলতার কথা আসে, udev সম্ভবত আপনার উদ্বেগগুলির মধ্যে সবচেয়ে কম


আকর্ষণীয়, আপনি কি জানেন যে কোন কার্নেল সংস্করণ নোডগুলির গতিশীল তৈরির সূচনা করে?
গ্রিম 18


12

বিভিন্ন বিকল্প রয়েছে:

  • কেবলমাত্র উপযুক্ত একটি সেট আছে chmod, chown, lnএকটি স্ক্রিপ্ট যে বুটস্ট্র্যাপ অংশ হিসেবে চালানো হয়, এবং তাদৃশ কমান্ড।
  • ব্যবহারের systemd-udev, প্লাগ-এবং-খেলা ম্যানেজার যা systemd হল প্রকল্পের অংশ।
  • জেন্টুরeudev ব্যবহার করুন , systemd-udevএটির একটি কাঁটা যা থেকে সিস্টেমড এখন উল্লেখযোগ্যভাবে বিচ্যুত হয়েছে।
  • দেবুয়ানসvdev ব্যবহার করুন , যা জুড নেলসনের তৈরি প্লাগ-এন্ড-প্লে ম্যানেজার, এটি দেবউনের অংশ Dev
  • ব্যবহার করুন mdev, যা অন্য উত্তরের বিপরীতে একটি জেন্টু জিনিস নয়। এটি প্লাগ-অ্যান্ড-প্লে ম্যানেজার যা ব্যাসিবক্সে অন্তর্নির্মিত ।
  • স্যাকলেসmdev ব্যবহার করুন যা ডিমিট্রিস পাপস্টামোস দ্বারা বিকাশিত একটি প্লাগ-ও-প্লে ম্যানেজার।
  • লরেন্ট বেরকোটসmdevd ব্যবহার করুন যা ব্যাসিবক্সের সাথে কনফিগারেশনের সাথে সামঞ্জস্যপূর্ণ mdevতবে এটি নিজস্ব সকেট হ্যান্ডলিং করে এবং LISTEN প্রোটোকল বুঝতে পারে না।

এগুলির মধ্যে প্রথমটি বাদে ডিভাইসগুলি সম্পর্কে কার্নেল বিজ্ঞপ্তি ইভেন্টগুলিতে কীভাবে প্রতিক্রিয়া জানানো হবে সে সম্পর্কে বিবরণের কয়েকটি সেট প্রয়োজন। একথাও ঠিক যে।

এছাড়াও এমন সরঞ্জাম রয়েছে যা /proc/sys/kernel/hotplugদুটি প্রোগ্রামের জন্য ডিজাইন করা প্রোগ্রামগুলি mdevগ্রহণ করবে এবং এটি নেটলিংক সকেট শুনে এবং তারপর সেই প্রোগ্রামগুলি তৈরি করে এগুলি খাপ খাইয়ে বা সিরিয়ালীকরণ করবে:


6

udev দ্বারা? সেরা বিকল্প এটি ব্যবহার না করা হয়। এবং কীভাবে এটি ব্যবহার করবেন না তা শিখলে লিনাক্স এবং * এনআইএক্স বিশ্ব আরও যুক্তিযুক্ত ধারণা তৈরি করতে শুরু করবে।

স্থিতিশীল ডিভাইস ব্যবহার করা (দ্রষ্টব্য দেখুন) সেরা দীর্ঘমেয়াদী বিকল্প। আপনি যদি ড্রাইভার পেয়ে থাকেন তবে লিনাক্স কার্নেল হট-প্লাগিং পরিচালনা করে। আমি কখনও কখনও udevd চালানো না পছন্দ।

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

দ্রষ্টব্য: আপনি যদি কেবল ফ্ল্যাশ ড্রাইভ বা ডিভিডি ডিভাইস প্লাগইন করেন dmesg|tailতবে মাউন্ট করার জন্য ডিভাইসের নাম দেখতে ব্যবহার করুন । যখন কোনও ডিভাইস একটি চরিত্র বা ব্লক ডিভাইস হয় তখন শেখা কম্পিউটার হার্ডওয়্যার বিশ্বে মৌলিক সিস্টেম জ্ঞান। লিনাক্সে এটির মুক্ত উত্স, এটি এম্বেড নয়, লিনাক্স সম্পর্কে অনেক কিছু পরীক্ষা করে দেখুন । লিনাক্স (সোলারিস, এইচপিউএক্স, এআইএক্স, ইত্যাদি) এর মতো সমস্ত * এনআইএক্সের স্ট্রেড ফরোয়ার্ড লজিক (দর্শন নয়) এর বিস্তৃত বোঝার জন্য এটি সেরা।

উদেব, ডিবিস, জিকনফ / ডকনফ, সিস্টেমড, জিনোম-শেল, জেনোম, গ্লিব, মনো এবং ফেডোরা এমন লোকদের জন্য যাঁরা হাতে সময় নিয়ে প্রচুর পরিমাণে আরটিএফএম করতে পারেন না, বা স্বয়ংক্রিয়ভাবে আপডেট হওয়া সত্যই স্লিট (দেখতে) খুঁজছেন তবে, ধীর গুড়, বগি, অর্ধপথ লিনাক্সের চেয়ে বেশি। (সত্যই এক ভয়ঙ্কর জায়গা, প্রচুর অনুরূপ অভিজ্ঞতার জন্য ওয়েবে ঘুরে দেখুন)।

সিস্টেম বুট তারপরে udevd চালায়। তবে, দাবি করা হয়েছে যে উদেব প্রয়োজনীয় কারণ, will changeরিবুটে ডিভাইস গৌণ সংখ্যা । উদেবের রেসন ডি'এত্রে প্রতিটি মোড়ের সাথে নিজেকে বিপরীত বলে মনে হয়। এবং যেখানে ফাইলগুলির ফাইলগুলি সর্বদা ভুল বলে মনে হয় আপনি যে কারও সাথে পরামর্শ করুন। বিশ্বাস বা ফ্রিডেস্কটপ.অর্গ।

সিস্টেমেড হিসাবে পরিচিত উরদেব সেই ভয়াবহতায় শোষিত হচ্ছে, তবুও আমি জানি না যে সেগুলি / ইত্যাদি / উদেব জাঙ্কের সাথে কী করে। এবং, এটি বলা মোটেও জরুরী যে উদেব বিধিগুলি রচনাগুলি যে কোনও কিছুর চেয়ে ভাল। ভদ্রলোকরা মনে হয় এটি ঝুলতে চান এবং সিস্টেম হওয়া উচিত নয়, তাই তারা এটিকে ইউদেভ হিসাবে যুক্ত করেছেন।

আপনি যদি একটি হাস্যকর দ্রুত চান, কোনও বাজে আশ্চর্য সিস্টেম নেই, তবে লিনাক্সের বেসিকগুলি ব্যবহার করুন।


6
এটি উত্তরের চেয়ে রেন্ট বেশি ...
জেসনওয়ারিয়ান

2
@ জেসনওয়ারিয়ান কিছুটা হ্যাঁ, এখনও কিছু মূল্য রয়েছে যেহেতু এটি udevকার্যকরীতার মধ্যে সাধারণভাবে আচ্ছাদিতভাবে এই কাজগুলি ম্যানুয়ালি মোকাবেলার জন্য কিছু উপায়ের পরামর্শ দেয়। এই বিকল্প পদ্ধতির স্ট্রিংথগুলি উল্লেখ করা কিছুটা ঠিক আছে ।
humanityANDpeace

1
এটি উত্সাহিত। আমি সম্পূর্ণরূপে একমত যে শৈলীটি কারও দ্বারা অনুচিত হিসাবে বিবেচিত হতে পারে, এর গুণাবলী রয়েছে, এবং এটি বাস্তবে সহায়ক না হলেও আমি এটিকে সত্যবাদী হিসাবে গ্রহণ করার ঝোঁক করছি। কার্নেল ৪.x এ, ইউদেব এলোমেলোভাবে ইথারনেট ইন্টারফেসের নাম পরিবর্তন করছে .. কী ?!
ভিক্টর

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