লিনাক্স কার্নেলে কীভাবে পাইপগুলি প্রয়োগ করা হয় এবং আমার বোঝার বিষয়টি যাচাই করতে চেয়েছিলাম সে সম্পর্কে আমি পড়ছি। আমি যদি ভুল হয় তবে সঠিক ব্যাখ্যা সহ উত্তরটি নির্বাচন করা হবে।
- লিনাক্সের একটি ভিএফএস রয়েছে পাইপফেস যা কার্নেলে মাউন্ট করা থাকে (ব্যবহারকারীর জায়গায় নয়)
- পাইপফেসগুলির একটি একক সুপার ব্লক রয়েছে এবং
pipe:
পাশাপাশি এটির নিজস্ব রুট ( ) এ মাউন্ট করা হয়/
- পাইপফেসগুলি বেশিরভাগ ফাইল সিস্টেমের বিপরীতে সরাসরি দেখা যায় না
- Pipefs যাওয়ার প্রবেশ মারফত
pipe(2)
প্রাপ্ত syscall pipe(2)
সঙ্গে বংশীধ্বনিতুল্য জন্য শেল দ্বারা ব্যবহৃত প্রাপ্ত syscall|
(যে কোন অন্যান্য প্রক্রিয়া থেকে হস্তচালিত বা) অপারেটর যা প্রায় কাছাকাছি সাধারন ফাইল মত আচরণ pipefs একটি নতুন ফাইল তৈরি করে- পাইপ অপারেটরের বাম পাশের
stdout
ফাইলটি পাইপফেসগুলিতে তৈরি অস্থায়ী ফাইলটিতে পুনঃনির্দেশিত করেছে - পাইপ অপারেটরের ডানদিকে
stdin
থাকা ফাইলটি পাইপফায়সে সেট করে - পাইপফেসগুলি মেমোরিতে এবং কিছু কার্নেল যাদু দ্বারা সংরক্ষিত থাকে, পেজ করা উচিত নয়
পাইপ (উদাহরণস্বরূপ ls -la | less
) কীভাবে কার্যকর হয় তার এই ব্যাখ্যাটি কি খুব সঠিক?
একটি জিনিস যা আমি বুঝতে পারি না তা হ'ল বাশের মতো কিছু কীভাবে একটি প্রক্রিয়া সেট করে ' stdin
বা stdout
ফাইল বিবরণীর মাধ্যমে ফিরে আসে pipe(2)
। আমি এখনও এটি সম্পর্কে কিছুই সন্ধান করতে পারিনি।
হ্যাঁ, আমি বিশেষত নিম্ন স্তরের ক্রিয়াকলাপগুলি উল্লেখ করছি, এই ধারনা সহ যে
—
ব্র্যান্ডন ওয়াম্বল্ট
|
অপারেটর কেবল বাশের pipe(2)
মতো একটি প্রক্রিয়া হিসাবে কল করছে ।
pipe()
যন্ত্রপাতি যে সমর্থন করে (সহ কার্নেল কলpipefs
, ইত্যাদি) তুলনায় অনেক কম স্তর|
অপারেটরকে আপনার শেল দেওয়া। পরেরটি সাধারণত প্রবীণ ব্যবহার করে প্রয়োগ করা হয়, তবে তা হওয়ার দরকার নেই।