সুপারব্লক, ইনোড, ডেন্ট্রি এবং একটি ফাইল কী?


125

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

কেউ কি আমাকে এই পদগুলি ব্যাখ্যা করতে পারেন?

উত্তর:


136

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

Superblock- র মূলত ফাইল সিস্টেম মেটাডেটা এবং ফাইল-সিস্টেমের ধরন, আকার, স্থিতি, এবং তথ্য অন্যান্য মেটাডেটা স্ট্রাকচার (মেটাডেটার মেটাডেটা) সম্পর্কে সংজ্ঞায়িত করে। সুপারব্লকটি ফাইল সিস্টেমের জন্য অত্যন্ত সমালোচনামূলক এবং তাই প্রতিটি ফাইল সিস্টেমের জন্য একাধিক রিলান্ড্যান্ট কপিগুলিতে সংরক্ষণ করা হয়। সুপারব্লক ফাইল সিস্টেমের জন্য খুব "উচ্চ স্তরের" মেটাডেটা কাঠামো। উদাহরণস্বরূপ, যদি কোনও পার্টিশনের সুপারব্লক, / var, দুর্নীতিগ্রস্থ হয়ে যায় তবে প্রশ্নযুক্ত ফাইল সিস্টেম (/ var) অপারেটিং সিস্টেম দ্বারা মাউন্ট করা যাবে না। সাধারণত এই ইভেন্টে আপনার চালানো দরকারfsckযা স্বয়ংক্রিয়ভাবে সুপারব্লকের একটি বিকল্প, ব্যাকআপ কপি নির্বাচন করবে এবং ফাইল সিস্টেমটি পুনরুদ্ধার করার চেষ্টা করবে। ব্যাকআপ অনুলিপিগুলি ফাইল সিস্টেমের মাধ্যমে ছড়িয়ে থাকা ব্লক গ্রুপগুলিতে পার্টিশনের শুরু থেকে প্রথম 1 টি ব্লক অফসেটে সংরক্ষণ করা হয়। ম্যানুয়াল পুনরুদ্ধার করা প্রয়োজন এমন ক্ষেত্রে এটি গুরুত্বপূর্ণ is আপনি কমান্ডটি দিয়ে সুপারব্লক ব্যাকআপ সম্পর্কিত তথ্য দেখতে পারেন dumpe2fs /dev/foo | grep -i superblockযা ম্যানুয়াল পুনরুদ্ধারের প্রচেষ্টা হওয়ার ক্ষেত্রে কার্যকর। ধরা যাক ডাম্প 2fs কমান্ড লাইনটি আউটপুট করে Backup superblock at 163840, Group descriptors at 163841-163841। আমরা এই superblock- র ব্যাকআপ ব্যবহার করার প্রচেষ্টা এই তথ্য, এবং ফাইল সিস্টেম কাঠামো সম্পর্কে অতিরিক্ত জ্ঞান ব্যবহার করতে পারেন: /sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo। দয়া করে নোট করুন যে আমি এই উদাহরণের জন্য 1024 বাইটের একটি ব্লক আকার ধরেছি।

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

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

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

আমি পুরোপুরি উপলব্ধি করেছি যে কয়েকটি বাক্য এই ধারণার কোনও সম্পূর্ণ ব্যাখ্যা সরবরাহ করে না তাই দয়া করে কখন এবং কোথায় প্রয়োজনবোধে অতিরিক্ত বিবরণ জিজ্ঞাসা করতে দ্বিধা বোধ করবেন না।


@ টোক: এটি কি এইভাবে ফেলা হবে (উত্তরে যেমনটি দেখানো হয়েছে): ব্যাকআপ সুপারব্লক 163840, গ্রুপ বর্ণনাকারী 163841-163841 বা এটি কি এভাবে: ব্যাকআপ সুপারব্লক 163840, গ্রুপ বর্ণনাকারী 163841-163842? এটি কি টাইপোর ত্রুটি ছিল? :-)
সেন

@ টোক: 163840-এ ব্যাকআপ সুপারব্লক, 163841-163842-তে গ্রুপ বর্ণনাকারী, গ্রুপ বর্ণনাকারী কোন তথ্য জানায়?
সেন

@ সেন - তাত্ত্বিকভাবে গ্রুপ বর্ণনাকারীরা একাধিক ব্লক বিস্তৃত করতে পারে তবে বেশিরভাগ ডেস্কটপ সিস্টেমের জন্য আপনি কেবলমাত্র একটি একক ব্লক নেবেন এবং $ ((ব্যাকআপব্লক + 1)) হিসাবে উল্লেখ করবেন
টক

@ টোক: ঠিক আছে আমার সিস্টেমে আমি এটিকে $ ((ব্যাকআপব্লক +১)) - $ ((ব্যাকআপব্লক + ২))
সেন

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

49

ফাইল

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

inode

একটি ইনোড ("সূচক নোড" এর জন্য সংক্ষিপ্ত) লিনাক্স সংরক্ষণ করে এমন একটি ফাইল সম্পর্কে গুণাবলী একটি গুচ্ছ। প্রতিটি ফাইলের জন্য একটি আইনোড রয়েছে (যদিও কিছু ফাইল সিস্টেমের সাথে লিনাক্সকে নিজস্ব ইনোড তৈরি করতে হবে কারণ তথ্যটি ফাইল সিস্টেমের চারদিকে ছড়িয়ে পড়ে)। ফাইলটির মালিক কে, ফাইলটি কত বড় এবং কে ফাইলটি খোলার অনুমতি দেয় সে সম্পর্কিত ইনোড তথ্য সঞ্চয় করে। প্রতিটি ইনোডে ফাইল সিস্টেম পার্টিশনের সাথে একটি অনন্য সংখ্যা রয়েছে; এটি সেই ইনোড দ্বারা বর্ণিত ফাইলটির জন্য ক্রমিক সংখ্যার মতো।

Dentry

একটি ডেন্ট্রি ("ডিরেক্টরিতে প্রবেশের জন্য সংক্ষিপ্ত)" লিনাক্স কার্নেল ডিরেক্টরিতে ফাইলের স্তরক্রমের উপর নজর রাখতে ব্যবহার করে। প্রতিটি ডেন্ট্রি একটি ফাইলের নাম এবং একটি পিতামাতার ডিরেক্টরিতে একটি ইনোড নম্বর ম্যাপ করে।

superblock- র

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


11

superblock- র সূচক নোড (বা inode ), ডিরেক্টরি এন্ট্রি (বা dentry ), এবং পরিশেষে, ফাইল বস্তুর অংশ ভার্চুয়াল ফাইল সিস্টেম (ভিএফএস) অথবা ভার্চুয়াল ফাইল সিস্টেম সুইচ । ভিএফএসের উদ্দেশ্য হ'ল ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে অভিন্ন উপায়ে বিভিন্ন ধরণের কংক্রিট ফাইল সিস্টেম অ্যাক্সেস করতে দেওয়া।

ভিএফএস-এর প্রধান সামগ্রীর সম্পর্ক

এখানে চিত্র বর্ণনা লিখুন


একটি ইনোড হ'ল ইউনিক্স / লিনাক্স ফাইল সিস্টেমের ডেটা স্ট্রাকচার। একটি ইনোড একটি নিয়মিত ফাইল, ডিরেক্টরি বা অন্যান্য ফাইল সিস্টেমের অবজেক্ট সম্পর্কে মেটা ডেটা সঞ্চয় করে। ইনোড ফাইল এবং ডেটার মধ্যে একটি ইন্টারফেস হিসাবে কাজ করে। একটি ইনোড কোনও ফাইল বা ডিরেক্টরি বা অন্য কোনও বস্তুর প্রতীকী লিঙ্কটি উল্লেখ করতে পারে। এটিতে একটি অনন্য নম্বর (আই-নম্বর), ফাইলের বৈশিষ্ট্য, নাম, তারিখ, আকার এবং পড়ার / লেখার অনুমতি সহ ফাইলের অবস্থানের জন্য একটি পয়েন্টার রয়েছে। এটি ডস / উইন্ডোজ বিশ্বের FAT টেবিলের প্রতিচ্ছবি counter

প্রোগ্রাম, পরিষেবা, পাঠ্য, চিত্র এবং আরও অনেকগুলি সমস্ত ফাইল । সিস্টেম অনুসারে ইনপুট এবং আউটপুট ডিভাইস এবং সাধারণত সমস্ত ডিভাইসই ফাইল হিসাবে বিবেচিত হয় ।

Superblock- র একটি ফাইল সিস্টেম সম্পর্কে উচ্চ পর্যায়ের মেটাডাটা জন্য ধারক হয়। সুপারব্লক এমন একটি কাঠামো যা ডিস্কে বিদ্যমান (আসলে, রিডান্ডেন্সির জন্য ডিস্কের একাধিক স্থান) এবং মেমরির ক্ষেত্রেও। এটি অন ডিস্ক ফাইল সিস্টেমের সাথে কাজ করার জন্য ভিত্তি সরবরাহ করে, কারণ এটি ফাইল সিস্টেমের পরিচালনা পরামিতিগুলি (উদাহরণস্বরূপ, মোট ব্লক, ফ্রি ব্লক, রুট ইনডেক্স নোড) সংজ্ঞায়িত করে।

ডেন্ট্রি ফাইল এবং ইনোডের মধ্যে ইন্টারফেস is ডেন্টরিগুলি ডিরেক্টরি ক্যাচিংয়েও ভূমিকা রাখে যা আদর্শভাবে, দ্রুত অ্যাক্সেসের জন্য সবচেয়ে ঘন ঘন ব্যবহৃত ফাইলগুলিকে হাতে রাখে।

উৎস


5

সরলতার মধ্যে, ডেন্ট্রি এবং ইনোড একই জিনিস, ফাইল বা ডিরেক্টরি একটি বিমূর্ততা। ডেন্ট্রি এবং আইনোডের মধ্যে পার্থক্যগুলি হ'ল ডেন্টি ডিরেক্টরি-নির্দিষ্ট ক্রিয়াকলাপ সুবিধার্থে ব্যবহৃত হয়, ইনোড ফাইল বা ডিরেক্টরি সম্পর্কে মেটাডেটার একটি সংগ্রহ মাত্র। সুপারব্লক হ'ল ফাইল সিস্টেমের বিমূর্ততা।

struct fileলিনাক্স কার্নেল-এ, প্রচুর অন্য হিসাবে চিহ্নিত করা হয় (উদাঃ struct address_space) এবং আসল "ফাইল" (যেমন / ইত্যাদি / পাসডাব্লু) এর বিমূর্ততা নয়। এটি একটি খোলা "ফাইল" বা ডিরেক্টরি বোঝায়। কার্নেল struct fileদ্বারা তৈরি করা sys_openহয়, যাতে কোনও প্রক্রিয়া struct fileএকই ফাইলের জন্য প্রচুর পরিমাণে থাকতে পারে ।

আমাদের ডেন্ট্রি দরকার কেন? এটি পথের নাম (যেমন / ইত্যাদি / পাসডাব্লু) থেকে ইনোডে অনুবাদ করার গতি বাড়াতে ব্যবহৃত হয়। লিনাক্স কার্নেল তাদের ফাইল নয়, "ফাইল" বা ডিরেক্টরি পরিচালনা করতে ইনোড ব্যবহার করে।


4

মনে রাখবেন যে এই পদগুলি লিনাক্স নির্দিষ্ট নয় তবে ফাইল সিস্টেম নির্দিষ্ট। সিস্টেমগুলির মতো বর্তমান ইউনিক্স এবং ইউনিক্স দ্বারা ব্যবহৃত বেশিরভাগ ফাইল সিস্টেমগুলি হয় মূল ইউনিক্স ফাইল সিস্টেম দ্বারা উত্পন্ন বা অনুপ্রাণিত যা সুপারব্লক এবং ইনোড আইডিয়ামগুলিকে সংজ্ঞায়িত করে। লিনাক্স বেশ কয়েকটি ফাইল সিস্টেমগুলি মাউন্ট করতে পারে যার সাথে সুপারব্লক এবং / অথবা ইনোডের ধারণা নেই, সবচেয়ে সাধারণ FAT। আর একটি, জেডএফএস, সুপারব্লকগুলি ব্যবহার করে না তবে überblocks।


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

1
@ করিয়াস কিমচি এখানে তাদের একই নাম থাকা সত্ত্বেও, আপনার কোনও ফাইল সিস্টেম এবং এর ফাইলগুলি অ্যাক্সেস করার জন্য কার্নেলের দ্বারা ব্যবহৃত ডিস্ক (সুপারব্লক / ইনোডস) এবং সজ্জিত তথ্যগুলিকে বিভ্রান্ত করা উচিত নয়। প্রতিটি ফাইল সিস্টেমে ডিস্কে কিছু মেটাডেটা থাকে যা ফাইল সিস্টেমের বৈশিষ্ট্যগুলি বর্ণনা করে, এই মেটাডেটা লিনাক্স ভিএফএস সুপারব্লক কাঠামোকে জনপ্রিয় করতে ব্যবহৃত হয়। একইভাবে, ভিএফএসের অধীনে ফাইলগুলির একটি ইন কার্নেল ইনোড কাঠামো রয়েছে। অন্তর্নিহিত ফাইল সিস্টেমে যখন ইনোডের ধারণার অভাব রয়েছে, তখন এই কাঠামোটিতে ওএস দ্বারা ফ্লাইতে তৈরি করা একটি জাল ইনোড নম্বর থাকে।
jlliagre
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.