Procfs এবং sysfs মধ্যে পার্থক্য কি?


71

Procfs এবং sysfs মধ্যে পার্থক্য কি? এগুলি ফাইল সিস্টেম হিসাবে তৈরি করা হয় কেন? যেহেতু আমি এটি বুঝতে পেরেছি, সিস্টেমে চলমান প্রক্রিয়াগুলি সম্পর্কে তাত্ক্ষণিক তথ্য সঞ্চয় করার জন্য প্রোক হ'ল একটি বিষয়।

উত্তর:


61

Procfs এবং sysfs মধ্যে পার্থক্য কি?

procএটি পুরানো, এটি নিয়ম এবং কাঠামো ছাড়াই কমবেশি। এবং এক পর্যায়ে সিদ্ধান্ত নেওয়া হয়েছিল যে procকিছুটা বিশৃঙ্খলাযুক্ত এবং একটি নতুন পথের প্রয়োজন ছিল।

তারপরে sysfsতৈরি করা হয়েছিল এবং যুক্ত হওয়া নতুন জিনিসগুলি sysfsডিভাইসের তথ্যের মতো করা হয়েছিল ।

সুতরাং কিছু দিক থেকে তারা একই কাজ করে তবে sysfsএটি আরও খানিকটা কাঠামোগত।

এগুলি ফাইল সিস্টেম হিসাবে তৈরি করা হয় কেন?

ইউনিক্স দর্শন আমাদের বলে যে সবকিছুই একটি "ফাইল", তাই এটি তৈরি করা হয়েছিল যাতে এটি ফাইল হিসাবে আচরণ করে।

যেহেতু আমি এটি বুঝতে পেরেছি, সিস্টেমে চলমান প্রক্রিয়াগুলি সম্পর্কে তাত্ক্ষণিক তথ্য সঞ্চয় করার জন্য প্রোক হ'ল একটি বিষয়।

এই অংশগুলি সর্বদা ছিল এবং সেগুলি সম্ভবত কখনও প্রবেশ করবে না sysfs

তবে আরও পুরানো জিনিস রয়েছে যা আপনি সন্ধান করতে পারেন proc, তা সরানো হয়নি।


2
উত্তরের জন্য ধন্যবাদ .. তবে সিপুইনফো এবং মেমিনফো কেন এখনও প্রোফসে রক্ষণাবেক্ষণের মতো জিনিস? তাদের সিস্টেমে কেন স্থানান্তরিত করা যায় না?
সেন

5
আমি অনুমান করি যে তারা নতুন জিনিসগুলি সিএসএফগুলিতে রেখেছিল এবং পুরানোটিকে ছেড়ে দেয় কারণ এটি পিছনের সামর্থ্যের কিছু স্তর রাখে। প্রচুর স্টাফ রয়েছে যা এই জিনিসগুলির উপর নির্ভর করে ...
জোহান

74

শুরুতে (ইউনিক্সে ফিরে আসার পথে) সিস্টেমগুলিতে প্রোগ্রামগুলি যেভাবে চলমান প্রক্রিয়াগুলি সম্পর্কে জানতে পেরেছিল তা ছিল সরাসরি কার্নেল মেমরি থেকে প্রক্রিয়া স্ট্রাকচার পড়ার মাধ্যমে (খোলার / ডেভ / মেমি এবং কাঁচা তথ্য সরাসরি ব্যাখ্যা করা)। প্রথম 'পিএস' কমান্ড এভাবে কাজ করেছিল। সময়ের সাথে সাথে কিছু তথ্য সিস্টেম কলের মাধ্যমে উপলব্ধ করা হয়েছিল।

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

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

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

লিগ্যাসি সিস্টেমের অনেকগুলি তথ্য এবং নিয়ন্ত্রণ পয়েন্টগুলি এখনও / প্রো-তে অ্যাক্সেসযোগ্য তবে সমস্ত নতুন বাস এবং চালকদের তাদের তথ্য এবং নিয়ন্ত্রণ পয়েন্টগুলি সিএসএফ-এর মাধ্যমে প্রকাশ করতে হবে।


8
এটি "খারাপ ফর্ম" ব্যবহার করার একটি কারণ /dev/memএবং /dev/kmemএগুলি হ'ল তাদের রুট অ্যাক্সেসের প্রয়োজন, সুতরাং যে অ্যাপ্লিকেশনগুলি সেগুলি ব্যবহার করে সেগুলি সেটআপ করতে হবে।
বার্মার

2
অনেকগুলি ইউনিক্স সিস্টেমে এবং লিনাক্সে সেই ডিভাইস ফাইলগুলি গ্রুপের মালিকানাধীন kmem, এবং সরঞ্জামগুলি psএসজিআইডি kmem
কাউন্টারমোড

2
প্রকৃতপক্ষে, সরাসরি অ্যাক্সেস করার পুরানো পদ্ধতিটি /dev/memবা /dev/kmemকার্নেলের জন্য দ্রুত ছিল কারণ ব্যবহারকারী মোড প্রক্রিয়াটি কেবল mmapফাইলটি র‍্যাম পড়ার মাধ্যমে সমস্ত তথ্য আনতে পারে । /procফাইল সিস্টেম থেকে যে কোনও টুকরো তথ্য পাওয়ার জন্য একটির জন্য সিস্কেল প্রয়োজন হয় openএবং readএটির জন্য এটি আরও ধীর হয়। তবে, /procমেমরিটি পড়ার জন্য কার্নেল নির্দিষ্ট হ্যাকের প্রয়োজন হয় না এবং ব্যবহারকারী মোড প্রক্রিয়াগুলিতে খুব কম সংবেদনশীল ডেটা প্রকাশ করে।
মিক্কো রেন্টালাইনেন

10

procfs নির্বিচারে অনুমতি দেয় file_operations, sysfs আরও সীমাবদ্ধ


3

sysfs হ'ল ভার্চুয়াল ফাইল সিস্টেমটি 2.6 কার্নেল রিলিজ চক্র চলাকালীন তৈরি হয়েছিল যা ডিভাইসের তথ্য প্রদর্শন করতে পারে কারণ প্রোফস এই ধরণের তথ্যটি ভালভাবে কাজ করে না।

মেমোরি ইত্যাদি সিসফেসে পোর্ট করা হয়নি কারণ এ ধরণের তথ্য প্রদর্শন করার জন্য এটি কখনও লক্ষ্য করা যায় নি তাই এটি একেবারেই পোর্ট করা সম্ভব নয়।


স্মৃতি ইত্যাদি সিএসফিতে পোর্ট করা হয়নি পোর্টিং দ্বারা আপনি কী বোঝাতে চান? এবং কেন এই ধরণের তথ্য দেখানোর উদ্দেশ্য ছিল না? আপনি দয়া করে আমাকে এটি ব্যাখ্যা করতে পারেন?
সেন

পোর্ট করে আমি বোঝানো হয়েছে যা মেমোরি ইত্যাদি সিস্টেমে স্থানান্তরিত হবে কিনা আপনার প্রশ্নের উত্তর ছিল to এবং এটি কেবলমাত্র ডিভাইসের তথ্য প্রদর্শন করার উদ্দেশ্যেই করা হয়েছিল কারণ এটি ছিল এমন জিনিস যা প্রকফগুলি ভাল করেনি, অন্য ধরণের তথ্যের জন্য প্রোকফগুলি এখনও দুর্দান্ত।
কেমরা 102

1

যেহেতু আমি এখানেও যুক্ত করতে চাই ... যেহেতু / প্রকল্পটি পুরানো সংস্করণ হিসাবে এটি সেই সময়ের সময়ের কার্নেল ডিভাইসের তথ্য ধারণ করে..যে সিএসএফএস 2.6 কার্নেল সংস্করণ নিয়ে আসে তাই ডিভাইস ড্রাইভারের তথ্যটি তাদের নিজস্ব ডিরেক্টরি করে যার দ্বারা এটি হয় কিছুটা কাঠামোগত এবং অ্যাক্সেস করা সহজ ..

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