লিনাক্সে ইউনিক্স ডোমেন সকেটের পথের শুরুতে @ প্রতীকটি কী বোঝায়?


17

আমি যখন চালানো netstat --protocol unixবা lsof -Uআমি দেখতে যে কিছু UNIX সকেট পাথ, @ চিহ্ন prepended হয় উদাহরণস্বরূপ, @ / tmp / 'dbus,-qj8V39Yrpa । তারপরে আমি যখন চালনা ls -l /tmpকরি তখন dbus-qj8V39Yrpa নামের ফাইলটি দেখতে পাচ্ছি না।

প্রশ্নটি কী সেই প্রতীকযুক্ত @ প্রতীককে বোঝায়? এবং দ্বিতীয় সম্পর্কিত প্রশ্ন হ'ল - ফাইল সিস্টেমটিতে আমি সেই ইউনিক্স সকেট ফাইলটি ( @ / tmp / dbus-qj8V39Yrpa ) আসলে কোথায় খুঁজে পাব ?


1
এটির মূল্যের জন্য, আরও আধুনিক ssপ্রোগ্রামটি "@ / tmp / .X11-unix / X0"
ব্রুস

উত্তর:


33

@সম্ভবত একটি সকেট একটি অনুষ্ঠিত ইঙ্গিত abstract namespaceযা ফাইলসিস্টেম একটি ফাইল অন্তর্গত নয়।

থেকে বরাত দিয়ে লিনাক্স প্রোগ্রামিং ইন্টারফেস দ্বারা মাইকেল Kerrisk :

57.6 লিনাক্স বিমূর্ত সকেট নেমস্পেস

তথাকথিত অ্যাবস্ট্রাক্ট নেমস্পেস একটি লিনাক্স-নির্দিষ্ট বৈশিষ্ট্য যা আমাদের ফাইল সিস্টেমে নামটি তৈরি না করে একটি ইউনিক্স ডোমেন সকেটকে একটি নামের সাথে যুক্ত করতে দেয়। এটি কয়েকটি সম্ভাব্য সুবিধা দেয়:

  • ফাইল সিস্টেমে বিদ্যমান নামের সাথে সংঘর্ষের বিষয়ে আমাদের উদ্বিগ্ন হওয়ার দরকার নেই।
  • সকেট ব্যবহার শেষ করার পরে সকেটের পাথের নামটি লিঙ্কমুক্ত করার দরকার নেই। সকেট বন্ধ হয়ে গেলে বিমূর্ত নামটি স্বয়ংক্রিয়ভাবে সরানো হবে।
  • সকেটের জন্য আমাদের কোনও ফাইল-সিস্টেমের পাথনাম তৈরি করার দরকার নেই। এটি ক্রুট পরিবেশে কার্যকর হতে পারে বা যদি আমাদের কোনও ফাইল সিস্টেমে লেখার অ্যাক্সেস না থাকে।

অ্যাবস্ট্রাক্ট বাইন্ডিং তৈরি করতে আমরা সূর্য_পথের ক্ষেত্রের প্রথম বাইটটিকে নাল বাইট (\ 0) হিসাবে নির্দিষ্ট করি। [...]

null byteজাতীয় সকেটের বোঝাতে নেতৃত্ব প্রদর্শন করা কঠিন হতে পারে, তাই এটি সম্ভবত শীর্ষস্থানীয় @চিহ্নের কারণ ।


2
এটি লক্ষণীয় যে ASCII NUL অক্ষরটি অনেক টার্মিনালে ^ @ ([Ctrl] + [@]) হিসাবে প্রবেশ করানো হয়েছিল এবং বিভিন্ন ইউনিক্স কমান্ড (যেমন জিএনইউ ক্যাট-এ) দ্বারা প্রদর্শিত হলে এটি ^ @ হিসাবে প্রদর্শিত হতে পারে।
জিম ডেনিস

7

যেমনটি man 7 unix

  • বিমূর্ততা: একটি বিমূর্ত সকেট ঠিকানাটি সূর্য_পাথ [0] একটি নাল বাইট ( \0) দ্বারা স্বীকৃত । সূর্য_পাথের বাকী সমস্ত বাইট সকেটের "নাম" সংজ্ঞায়িত করে। (নামে নাল বাইটের কোনও বিশেষ তাত্পর্য নেই)) ফাইল সিস্টেমের পাথের নামগুলির সাথে নামের কোনও সংযোগ নেই। এই নেমস্পেসের সকেটের ঠিকানা সূর্য_পাথের বাকী বাইট দ্বারা দেওয়া হয়েছে। যখন কোনও অ্যাবস্ট্রাক্ট সকেটের ঠিকানাটি গেসোকনাম (2), গেটপেইনারাম (2), এবং স্বীকৃতি (2) দিয়ে ফিরে আসে, তখন এর দৈর্ঘ্য আকার (স্ট্রাক্ট সোকাড্ডার_উন) হয় এবং সূর্য_পাথটিতে বিমূর্ত নামটি থাকে। অ্যাবস্ট্রাক্ট সকেট নেমস্পেস হ'ল একটি বহনযোগ্য লিনাক্স এক্সটেনশন।

দেখে মনে হচ্ছে এগুলি 'বিমূর্ত' - সুতরাং ফাইলসিস্টে কোনও সত্যিকারের পাথ উপস্থিত নেই

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