কোন ইউনিক্স-এর মতো সিস্টেম সত্যই / dev / tcp বিশেষ ফাইল সরবরাহ করে?


9

আমি জানি /dev/tcp/<host>/<port>যে একটি যাদু পথটি বিশেষত পুনঃনির্দেশগুলির কিছু শেল দ্বারা পরিচালিত। তবে অনুসারে man bash:

বাশ চলমান অপারেটিং সিস্টেম যদি এই বিশেষ ফাইলগুলি সরবরাহ করে তবে ব্যাশ সেগুলি ব্যবহার করবে; অন্যথায় এটি তাদের অভ্যন্তরীণভাবে অনুকরণ করবে [...]

লিনাক্স বাক্সে আমি এখনই ব্যবহার করছি, /dev/tcpবিশেষ ফাইল উপস্থিত নেই, সুতরাং বাশ এটি অনুকরণ করবে। তবে, আসলে কি এমন কোনও ইউনিক্স-এর মতো সিস্টেম রয়েছে যা /dev/tcpবাশ সমর্থিত একই শব্দার্থক সহ বিশেষ ফাইলটি সরবরাহ করে?


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

তবে অন্য কোনও ওএস আছে যা এটি ইতিমধ্যে করে? এক পর্যায়ে, আমি ভেবেছিলাম প্ল্যান 9 এটি করেছে তবে আমি ভুল ছিল।
সিলভাইন লেরাক্স

1
আমি জানি না, সম্ভবত না (যতদূর আমি জানি এটি একটি বাশ আবিষ্কার)। আমি আপনার প্রশ্নটিতে ভোট দিয়েছি, কারণ উত্তরটি আমার কাছেও আকর্ষণীয়। আমি যতদূর জানি, কোনও জনপ্রিয় x86- সক্ষম ইউনিক্স ওএস এটি করতে পারে না।
পিটারহ - মনিকা পুনরায় ইনস্টল করুন 14'19

উত্তর:


8

আমি মনে করি বাশ ডকুমেন্টেশন এই বিষয়টিকে কিছুটা বিভ্রান্ত করছে। কোডটির দিকে তাকানো, এমনকি সংস্করণ 2.04-এ ফিরে যাওয়া যেখানে নেটওয়ার্ক পুনঃনির্দেশগুলি চালু হয়েছিল /dev/tcpএবং /dev/udpনিম্নলিখিত হিসাবে কাজ করে:

  • নির্মাণের সময়, configureস্ক্রিপ্ট বিভিন্ন নেটওয়ার্কিং বৈশিষ্ট্যগুলি সমর্থন করে কিনা তা যাচাই করে; যদি তাই হয়, যদি নেটওয়ার্ক পুনর্নির্দেশগুলি সক্ষম করা থাকে (যা পূর্বনির্ধারিত ক্ষেত্রে হয়), অভ্যন্তরীণ নেটওয়ার্কিং কোডটি অন্তর্নির্মিত হয়;
  • রান সময়ে, যদি অভ্যন্তরীণ নেটওয়ার্কিং কোডটি অন্তর্নির্মিত হয় /dev/tcpএবং /dev/udp(ডান বিন্যাসে) অভ্যন্তরীণভাবে পরিচালনা করা হয়; অন্যথায়, একটি সতর্কতা উত্পন্ন হয় ("/ dev / (tcp | udp) / হোস্ট / পোর্ট নেটওয়ার্কিং ব্যতীত সমর্থিত নয়") এবং বাশ সিস্টেমে প্রদত্ত পথটি খোলার চেষ্টা করে;
  • যদি নেটওয়ার্ক পুনর্নির্দেশগুলি কনফিগার করা থাকে তবে বিশেষ কিছুই করা হয় না।

এটি কীভাবে ফুটে উঠেছে তা হ'ল:

  • নেটওয়ার্ক পুনঃনির্দেশ সক্ষম করা থাকলে:
    • যদি লক্ষ্য প্ল্যাটফর্মে নেটওয়ার্কিং সমর্থন করা হয়, /dev/tcpএবং /dev/udpসর্বদা অভ্যন্তরীণভাবে পরিচালনা করা হয়;
    • অন্যথায়, বাশ সতর্ক করবে এবং "অন্ধভাবে" ফাইলটি খোলার চেষ্টা করবে; যদি সিস্টেমটি কোনওভাবে সমর্থন /dev/(tcp|udp)/host/portকরে তবে তা ব্যবহার করা হবে, অন্যথায় সমস্ত সম্ভাবনায় পুনর্নির্দেশটি ব্যর্থ হবে;
  • নেটওয়ার্ক পুনঃনির্দেশ অক্ষম করা থাকলে, কোনও বিশেষ হ্যান্ডলিং করা হয় না; উপরের মতো, যদি সিস্টেমটি কোনওভাবে সমর্থন /dev/(tcp|udp)/host/portকরে তবে তা ব্যবহার করা হবে, অন্যথায় সমস্ত সম্ভাবনায় পুনঃনির্দেশটি ব্যর্থ হবে।

/dev/tcpকিছু সিস্টেমে অস্তিত্ব আছে, তবে যতদূর আমি সচেতন কেউই বাশের মতো বিমূর্ততা সমর্থন করে না। সোলারিসে, নেটওয়ার্ক কনফিগারেশনটি অনুসন্ধান এবং পরিবর্তন করার /dev/tcpজন্য nddসরঞ্জামটির সাথে ব্যবহৃত হয় । ইন XTI (এছাড়াও দেখুন ওপেন গ্রুপ যদি আপনি একজন সদস্য), t_openফাংশন ব্যবহার করা যেতে পারে /dev/tcpএকটি TCP সংযোগ খুলতে, কিন্তু এটা ব্যবহার করে না পাথ ভিত্তিক সেটআপ, সেখানে লক্ষ্য হোস্ট সেটি নির্ধারণের জন্য একটি পৃথক ডাটা স্ট্রাকচার এবং পোর্ট (এবং অন্যান্য পরামিতি)।


বৈশিষ্ট্যটি নিজেই ksh93 থেকে আসে। SysV সিস্টেমে / dev / tcp স্ট্রিমস টিসিপি মডিউলের একটি হ্যান্ডেল হবে ।
স্টাফেন চেজেলাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.