বিশেষ ডিভাইসের ফাইলগুলিতে কেন ইনোড থাকে?


11

ডিভাইস ফাইলগুলি প্রতি সেফ ফাইল নয়। ইউনিক্স-এর মতো অপারেটিং সিস্টেমগুলিতে ডিভাইসগুলি ব্যবহার করার জন্য তারা একটি I / O ইন্টারফেস। তারা ডিস্কে কোনও স্থান ব্যবহার করে না, তবুও তারা statকমান্ডের রিপোর্ট অনুসারে একটি ইনোড ব্যবহার করে :

$ stat /dev/sda
      File: /dev/sda
      Size: 0               Blocks: 0          IO Block: 4096   block special file
Device: 6h/6d   Inode: 14628       Links: 1     Device type: 8,0

ডিভাইস ফাইলগুলি কি ফাইল সিস্টেমে ফিজিক্যাল ইনোড ব্যবহার করে এবং এগুলিতে কেন এগুলি প্রয়োজন?


2
Inode এবং ডেটা হয় ফাইল। একটি ইনোড ছাড়া আপনার কোনও ফাইল নেই। (যদিও ডিভাইস ফাইলগুলির কোনও ডেটা নেই)
ব্যবহারকারী 253751

উত্তর:


16

সংক্ষিপ্ত উত্তরটি হ'ল কেবলমাত্র যদি আপনার কোনও শারীরিক ফাইল সিস্টেম ব্যাকিং থাকে /dev(এবং আপনি যদি কোনও আধুনিক লিনাক্স ডিস্ট্রো ব্যবহার করেন তবে সম্ভবত আপনি তা করবেন না) does

দীর্ঘ উত্তর অনুসরণ করে:

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

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

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

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


3
সাবধানে হাত বাড়ায়। আমি এমন একটি প্রকল্পে এসেছি যা একটি সার্ভারের ইনোডের বাইরে চলে গেল। আমাদের দলের সেখানে পৌঁছানোর আগেই আমাদের দলটির সেই ব্যাক-এন্ড সিস্টেমটি প্রতিস্থাপনে বিনিয়োগের জন্য ম্যানেজমেন্টকে বোঝানো দরকার যে সংকটটি হয়েছিল, এটি নকশাকৃত (খারাপভাবে আপনি যেমন কল্পনাও করতে পারেন!) সেখানে উপস্থিত হওয়ার আগেই।
কেআরয়ান

@ কেআরআইয়ান এটি ঘটতে পারে, তবে অ্যাডমিন স্পষ্টভাবে ফাইল সিস্টেম তৈরির সময় সংখ্যা কমিয়ে না দিলে এটি বিরল। অনেক আধুনিক ফাইল সিস্টেম (কমপক্ষে এনটিএফএস, বিটিআরএফএস, এবং জেডএফএস, আমি মনে করি এক্সএফএসও সম্ভবত) গতিশীলভাবে ইনোডগুলি বরাদ্দ করে, তাই অনেকগুলি নতুন সিস্টেমে আসলে এটি চালানো অসম্ভব।
অস্টিন হেমেলগার্ন

@ কেআরয়ান আমারও এই সমস্যাটি আছে। এবং এটি আসলে একটি ভাল নকশা করা সিস্টেম ছিল, যদি কিছুটা তারিখ দেওয়া হয় এবং এক্সপ্লিমিংয়ের জন্য নেওয়া হয় (প্রতিটি লেনদেনের জন্য একটি পৃথক লগ প্রয়োজন যা ডিস্কে রাখা হয়েছিল, শেষ পর্যন্ত এটি কেবলমাত্র ছোট্ট ছোট্ট
ইনোড

1
ওওড এবং ডকার হ'ল এক ধরণের বিখ্যাত যা এই ইনোড সমস্যাটি তৈরি করার জন্য।
কোটায়ার

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

15

ডিভাইস ফাইলগুলিরও অনুমতি রয়েছে এবং সেগুলি একটি ইনোডে সঞ্চিত রয়েছে।


আমি উল্লেখ করতে ভুলে গেছি দুর্দান্ত পয়েন্ট।
অস্টিন হেমেলগারন

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

12

ডিরেক্টরিগুলি কেবল ফাইল নামগুলি থেকে ইনোডগুলিতে ম্যাপিং হয়, সুতরাং নামটি যে জিনিসটিকে বোঝায় সে সম্পর্কে সমস্ত কিছুই (একটি ফাইল, একটি সিমিলিংক, একটি ডিভাইস, একটি ফিফো, একটি সকেট) ইনোডে থাকতে হবে, এটি রাখার মতো আর কোথাও নেই।

ডিভাইস সম্পর্কিত তথ্য ইনোডে সঞ্চিত। প্রধান এবং গৌণ ডিভাইস নম্বরগুলি রয়েছে, সুতরাং অনুমতিগুলি, টাইমস্ট্যাম্পস ইত্যাদি রয়েছে The টাইপ ফিল্ড যা বলে যে এটি নিয়মিত ফাইলের চেয়ে একটি ব্লক বা অক্ষর ডিভাইস stored

ডিভাইসগুলির জন্য ইনোড কেবলমাত্র সেই ক্ষেত্রগুলিতে ব্যবহার করে না যা ফাইলের ব্লক মানচিত্র ধারণ করে।


0

একটি ইনোড ছাড়া আপনার কাছে কেবল ডিভাইস সম্পর্কিত সমস্ত তথ্য প্রশ্নবিদ্ধ রাখার জন্য ফাইলের নাম থাকবে name এই মানে হলো "চমৎকার" ডিভাইস এর মতো নামগুলি /dev/sdaপ্রশ্ন আউট হবে: আপনি একটি নাম একটি নির্দিষ্ট চালক বাঁধা যেতে পারে যে, মত প্রয়োজন চাই /dev/ohci/sda

এমনকি আরও গুরুত্বপূর্ণ হল, সব সরঞ্জাম যা inodes (যেমন উপর নির্ভর stat, lsইত্যাদি) অধীনে আচরণ পাথ রুপান্তরিত করতে হবে /devএকটি বিশেষ উপায়। এটি বর্তমানের পরিস্থিতির তুলনায় কোনও আপত্তিজনক লাভ ছাড়াই একটি নিষিদ্ধ পরিমাণে কাজ হবে।

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