লিনাক্সের প্রায় প্রতিটি জিনিসই একটি ফাইল হিসাবে বিবেচনা করা যায় , তবে নিয়মিত ফাইল এবং নামযুক্ত পাইপের মধ্যে প্রধান পার্থক্য হ'ল নামক পাইপ একটি ফাইলের একটি বিশেষ উদাহরণ যা ফাইল সিস্টেমে কোনও বিষয়বস্তু নেই।
এখানে থেকে উদ্ধৃতি দেওয়া হয় man fifo
:
একটি ফিফোর বিশেষ ফাইল (একটি নামযুক্ত পাইপ) একটি পাইপের সাথে সমান, এটি ফাইল সিস্টেমের অংশ হিসাবে অ্যাক্সেস করা ছাড়া। এটি পড়া বা লেখার জন্য একাধিক প্রক্রিয়া দ্বারা খোলা যেতে পারে। প্রক্রিয়াগুলি যখন FIFO- র মাধ্যমে ডেটা এক্সচেঞ্জ করে, কার্নেল ফাইল সিস্টেমে না লিখে সমস্ত তথ্য অভ্যন্তরীণভাবে পাস করে। সুতরাং, ফিফোর বিশেষ ফাইলটির ফাইল সিস্টেমে কোনও সামগ্রী নেই; ফাইল সিস্টেম এন্ট্রি নিছক একটি রেফারেন্স পয়েন্ট হিসাবে কাজ করে যাতে প্রক্রিয়াগুলি ফাইল সিস্টেমে নাম ব্যবহার করে পাইপ অ্যাক্সেস করতে পারে।
কার্নেল প্রতিটি FIFO বিশেষ ফাইলের জন্য ঠিক একটি পাইপ অবজেক্ট রক্ষণ করে যা কমপক্ষে একটি প্রক্রিয়া দ্বারা খোলা হয়। ডেটা পাস করার আগে উভয় প্রান্তে (পড়া এবং লেখা) ফিফো খুলতে হবে। সাধারণত, অন্য প্রান্তটি না খোলার আগে পর্যন্ত ফিফো ব্লকগুলি খোলার।
সুতরাং প্রকৃতপক্ষে একটি নামক পাইপ কিছুই না করে যতক্ষণ না কোনও প্রক্রিয়া এটি পড়ে এবং এটি লিখে দেয়। এটি হার্ড ডিস্কে কোনও স্থান নেয় না (কিছুটা মেটা তথ্য বাদে), এটি সিপিইউ ব্যবহার করে না।
এটি করে আপনি এটি পরীক্ষা করতে পারেন:
একটি নামী পাইপ তৈরি করুন
$ mkfifo /tmp/testpipe
উদাহরণস্বরূপ কিছু ডিরেক্টরিতে যান /home/user/Documents
এবং এর ভিতরে থাকা পাইপ ব্যবহার করে এর ভিতরে থাকা সমস্ত কিছুকে জিপ করুন।
$ cd /home/user/Documents
$ tar cvf - . | gzip > /tmp/testpipe &
[1] 28584
এখানে আপনার জিজিপ প্রক্রিয়াটির পিআইডি দেখতে হবে। আমাদের উদাহরণে এটি ছিল 28584।
এখন এই পিআইডি কি করছে তা পরীক্ষা করে দেখুন
$ ps u -P 28584
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
c0rp 28584 0.0 0.0 29276 7800 pts/8 S 00:08 0:00 bash
আপনি দেখতে পাবেন যে এটি কোনও সংস্থান ব্যবহার করছে না । 0% সিপিইউ ব্যবহার, 0% মেমরির ব্যবহার।
ফাইল স্পেস ব্যবহার সম্পর্কিত হান্চ যাচাই করুন
$ du -h /tmp/testpipe
0 testpipe
এবং আবার 0
, কিছুই না। প্রয়োজন হলে টেস্টপাইপ আবার ব্যবহার করা যেত।
জিজিপ মারতে ভুলবেন না, ব্যবহার করে kill -15 28584
। এবং আমাদের নামক পাইপ ব্যবহার করে সরানrm /tmp/testpipe
ব্যবহারের উদাহরণ
নামযুক্ত পাইপ ব্যবহার করে আপনি প্রায় সবকিছু পুনর্নির্দেশ করতে পারেন। উদাহরণস্বরূপ আপনি এই এক লাইন প্রক্সি দেখতে পারেন ।
এছাড়াও এখানে বেশি নামে পাইপ ব্যবহারের চমৎকার ব্যাখ্যা। আপনি টিসিপি / আইপি স্ট্যাকের পরিবর্তে নামযুক্ত পাইপ ব্যবহার করে যোগাযোগ করার জন্য একটি সার্ভারে দুটি প্রক্রিয়া কনফিগার করতে পারেন। এটি অনেক দ্রুত এবং নেটওয়ার্ক সংস্থানগুলি লোড করে না। উদাহরণস্বরূপ, আপনার ওয়েব সার্ভার localhost
ঠিকানা ব্যবহার বা কিছু পোর্ট শোনার পরিবর্তে কোনও নামযুক্ত পাইপ ব্যবহার করে সরাসরি ডাটাবেসের সাথে যোগাযোগ করতে পারে ।