উত্তর:
Procfs এবং sysfs মধ্যে পার্থক্য কি?
proc
এটি পুরানো, এটি নিয়ম এবং কাঠামো ছাড়াই কমবেশি। এবং এক পর্যায়ে সিদ্ধান্ত নেওয়া হয়েছিল যে proc
কিছুটা বিশৃঙ্খলাযুক্ত এবং একটি নতুন পথের প্রয়োজন ছিল।
তারপরে sysfs
তৈরি করা হয়েছিল এবং যুক্ত হওয়া নতুন জিনিসগুলি sysfs
ডিভাইসের তথ্যের মতো করা হয়েছিল ।
সুতরাং কিছু দিক থেকে তারা একই কাজ করে তবে sysfs
এটি আরও খানিকটা কাঠামোগত।
এগুলি ফাইল সিস্টেম হিসাবে তৈরি করা হয় কেন?
ইউনিক্স দর্শন আমাদের বলে যে সবকিছুই একটি "ফাইল", তাই এটি তৈরি করা হয়েছিল যাতে এটি ফাইল হিসাবে আচরণ করে।
যেহেতু আমি এটি বুঝতে পেরেছি, সিস্টেমে চলমান প্রক্রিয়াগুলি সম্পর্কে তাত্ক্ষণিক তথ্য সঞ্চয় করার জন্য প্রোক হ'ল একটি বিষয়।
এই অংশগুলি সর্বদা ছিল এবং সেগুলি সম্ভবত কখনও প্রবেশ করবে না sysfs
।
তবে আরও পুরানো জিনিস রয়েছে যা আপনি সন্ধান করতে পারেন proc
, তা সরানো হয়নি।
শুরুতে (ইউনিক্সে ফিরে আসার পথে) সিস্টেমগুলিতে প্রোগ্রামগুলি যেভাবে চলমান প্রক্রিয়াগুলি সম্পর্কে জানতে পেরেছিল তা ছিল সরাসরি কার্নেল মেমরি থেকে প্রক্রিয়া স্ট্রাকচার পড়ার মাধ্যমে (খোলার / ডেভ / মেমি এবং কাঁচা তথ্য সরাসরি ব্যাখ্যা করা)। প্রথম 'পিএস' কমান্ড এভাবে কাজ করেছিল। সময়ের সাথে সাথে কিছু তথ্য সিস্টেম কলের মাধ্যমে উপলব্ধ করা হয়েছিল।
তবে / ডেভ / মেমের মাধ্যমে সরাসরি ব্যবহারকারী-স্পেসে সিস্টেমের ডেটা উন্মোচন করা খারাপ রূপ এবং প্রতিবার আপনি কিছু নতুন প্রসেস ডেটা রফতানি করতে চাইলে ক্রমাগতভাবে নতুন সিস্টেম কল তৈরি করা অস্বস্তিকর এবং তাই একটি নতুন পদ্ধতি তৈরি করা হয়েছিল প্রক্রিয়া বৈশিষ্ট্যগুলি সম্পর্কে সন্ধানের জন্য ব্যবহারকারী-স্পেস অ্যাপ্লিকেশনগুলির জন্য কাঠামোগত ডেটা অ্যাক্সেস করতে। এটি ছিল / প্রকোপ ফাইল সিস্টেম। / Proc এর সাহায্যে, কার্নেলের অন্তর্নিহিত ডেটা স্ট্রাকচার পরিবর্তিত হওয়ার সাথে সাথে ইন্টারফেস এবং কাঠামোগুলি (ডিরেক্টরি এবং ফাইলগুলি) একই রাখা যেতে পারে। এটি আগের সিস্টেমের তুলনায় খুব কম ভঙ্গুর ছিল এবং এটি আরও ভালভাবে ছড়িয়ে পড়ে।
/ Proc ফাইল সিস্টেমটি মূলত প্রক্রিয়া সম্পর্কিত তথ্য এবং কয়েকটি কী সিস্টেম অ্যাট্রিবিউট প্রকাশের জন্য তৈরি করা হয়েছিল, যা 'পিএস', 'শীর্ষ', 'ফ্রি' এবং কয়েকটি অন্যান্য সিস্টেম ইউটিলিটি দ্বারা প্রয়োজনীয়। তবে, এটি ব্যবহার করা সহজ ছিল (কার্নেল দিক এবং ব্যবহারকারী-স্থান উভয় দিক থেকে), এটি সিস্টেমের তথ্যের পুরো পরিসীমা জন্য একটি ডাম্পিং গ্রাউন্ডে পরিণত হয়েছিল। এছাড়াও, এটি ফাইলগুলি পঠন / লেখার সুবিধা অর্জন করতে শুরু করে, সেটিংস সামঞ্জস্য করতে এবং কার্নেল বা এর বিভিন্ন সাবসিস্টেমগুলির পরিচালনা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। যাইহোক, নিয়ন্ত্রণ ইন্টারফেস বাস্তবায়নের পদ্ধতিটি অ্যাড-হক ছিল এবং শীঘ্রই জট বাঁধা জগতে পরিণত হয়েছিল /
Sysfs (বা / sys ফাইল সিস্টেম) এই জগাখিচুড়ি কাঠামো যুক্ত করার জন্য এবং কার্নেল থেকে ব্যবহারকারী-স্পেসে সিস্টেম তথ্য এবং নিয়ন্ত্রণের পয়েন্টগুলি (নিষ্পত্তিযোগ্য সিস্টেম এবং ড্রাইভার বৈশিষ্ট্য) প্রকাশের জন্য অভিন্ন পদ্ধতি সরবরাহ করার জন্য ডিজাইন করা হয়েছিল। এখন, ড্রাইভারের ধরণ এবং তাদের ডাটা স্ট্রাকচারের মানগুলির উপর ভিত্তি করে, কার্নেলের ড্রাইভার ফ্রেমওয়ার্কটি স্বয়ংক্রিয়ভাবে / সিসের অধীনে ডিরেক্টরি তৈরি করে। এর অর্থ একটি নির্দিষ্ট ধরণের ড্রাইভারের সকলেরই সিএসএফএসের মাধ্যমে একই উপাদান উপস্থিত থাকবে।
লিগ্যাসি সিস্টেমের অনেকগুলি তথ্য এবং নিয়ন্ত্রণ পয়েন্টগুলি এখনও / প্রো-তে অ্যাক্সেসযোগ্য তবে সমস্ত নতুন বাস এবং চালকদের তাদের তথ্য এবং নিয়ন্ত্রণ পয়েন্টগুলি সিএসএফ-এর মাধ্যমে প্রকাশ করতে হবে।
/dev/mem
এবং /dev/kmem
এগুলি হ'ল তাদের রুট অ্যাক্সেসের প্রয়োজন, সুতরাং যে অ্যাপ্লিকেশনগুলি সেগুলি ব্যবহার করে সেগুলি সেটআপ করতে হবে।
kmem
, এবং সরঞ্জামগুলি ps
এসজিআইডি kmem
।
/dev/mem
বা /dev/kmem
কার্নেলের জন্য দ্রুত ছিল কারণ ব্যবহারকারী মোড প্রক্রিয়াটি কেবল mmap
ফাইলটি র্যাম পড়ার মাধ্যমে সমস্ত তথ্য আনতে পারে । /proc
ফাইল সিস্টেম থেকে যে কোনও টুকরো তথ্য পাওয়ার জন্য একটির জন্য সিস্কেল প্রয়োজন হয় open
এবং read
এটির জন্য এটি আরও ধীর হয়। তবে, /proc
মেমরিটি পড়ার জন্য কার্নেল নির্দিষ্ট হ্যাকের প্রয়োজন হয় না এবং ব্যবহারকারী মোড প্রক্রিয়াগুলিতে খুব কম সংবেদনশীল ডেটা প্রকাশ করে।
procfs নির্বিচারে অনুমতি দেয় file_operations
, sysfs আরও সীমাবদ্ধ
জন্য procfs এন্ট্রি একটি গ্রহণ file_operations
struct হয়, যা ফাংশন পয়েন্টার তা নির্ধারণ কি প্রতিটি ফাইল-ভিত্তিক সিস্টেম কল, যেমন ঘটবে রয়েছে open
, read
, mmap
, ইত্যাদি, এবং আপনি থেকে নির্বিচারে ব্যবস্থাগুলি নিতে পারেন।
সর্বনিম্ন উদাহরণ:
sysfs নিম্নলিখিত সংবেদনগুলিতে আরও সীমাবদ্ধ:
show
এবং store
যার ফলে Linux বাস্তবায়ন ব্যবহার open
, close
, read
, write
এবং lseek
আপনার জন্য। আরও দেখুন: প্ল্যাটফর্ম ড্রাইভারের মধ্যে sysfs অ্যাট্রিবিউটের সাথে ফাইল অপারেশনগুলি কীভাবে সংযুক্ত করবেন? | স্ট্যাক ওভারফ্লোkobject
সর্বনিম্ন উদাহরণ: লিনাক্স কার্নেল v3.2 | এ কীভাবে একটি সাধারণ সিএসএফএস শ্রেণীর বৈশিষ্ট্য তৈরি করতে হয় স্ট্যাক ওভারফ্লো
sysfs হ'ল ভার্চুয়াল ফাইল সিস্টেমটি 2.6 কার্নেল রিলিজ চক্র চলাকালীন তৈরি হয়েছিল যা ডিভাইসের তথ্য প্রদর্শন করতে পারে কারণ প্রোফস এই ধরণের তথ্যটি ভালভাবে কাজ করে না।
মেমোরি ইত্যাদি সিসফেসে পোর্ট করা হয়নি কারণ এ ধরণের তথ্য প্রদর্শন করার জন্য এটি কখনও লক্ষ্য করা যায় নি তাই এটি একেবারেই পোর্ট করা সম্ভব নয়।
যেহেতু আমি এখানেও যুক্ত করতে চাই ... যেহেতু / প্রকল্পটি পুরানো সংস্করণ হিসাবে এটি সেই সময়ের সময়ের কার্নেল ডিভাইসের তথ্য ধারণ করে..যে সিএসএফএস 2.6 কার্নেল সংস্করণ নিয়ে আসে তাই ডিভাইস ড্রাইভারের তথ্যটি তাদের নিজস্ব ডিরেক্টরি করে যার দ্বারা এটি হয় কিছুটা কাঠামোগত এবং অ্যাক্সেস করা সহজ ..