স্ট্যালিং ইন-মেমোরি ইনোড টেবিল বা ফাইল সিস্টেমে থাকা টেবিলগুলির বিষয়ে কথা বলছেন কিনা তা নির্ধারণের জন্য এটি আরও স্পষ্ট নয়। আমি বইয়ের অনেক আগের সংস্করণ কারও কাছে ধার দিয়েছি, তবে তা আর পাইনি; সুতরাং আমি নিজেই প্রসঙ্গটি দেখতে পারি না।
এখানে তিনটি "ফাইল সারণী" রয়েছে তবে এখানে যেটি নিয়ে আলোচনা করা হচ্ছে তাকে সাধারণত " ইন-মেমরি ইনোড টেবিল " বলা হয়; দ্বিতীয়টিকে সাধারণত " ওপেন ফাইল টেবিল " বলা হয় , এবং প্রতিটি প্রক্রিয়া অনুযায়ী বিদ্যমান। উভয় সারণী কার্নেল মেমরিতে রয়েছে এবং কোনও প্রোগ্রামে অ্যাক্সেসযোগ্য নয়। তৃতীয় "টেবিল" হ'ল ফাইল সিস্টেমের মধ্যে দুটি টেবিলে (ডিস্কে), প্রথমটি হ'ল অন-ডিস্ক ইনোড টেবিল এবং দ্বিতীয়টি হ'ল ডেটা ব্লকগুলি (নোট: এই আলোচনাটি ইউএনআইএক্সের traditionalতিহ্যবাহী ফাইল সিস্টেম পরিচালনা নিয়ে উদ্বেগ প্রকাশ করে, নতুন সিস্টেমগুলি পারে বিভিন্ন সংস্থা আছে)। ইনোড সারণীতে প্রবেশকারীগুলিতে ডেটা ব্লকগুলিতে রেফারেন্সের ক্রম রয়েছে যা হয় পরোক্ষ রেফারেন্স ব্লক বা প্রকৃত ডেটা। একটি ফাইলের চাবিফাইল সিস্টেমে হ'ল ইনোড, ডেটাগুলি তাদের ব্লক করে না। স্টলিং যখন একটি অন ডিস্ক "ফাইল সারণী" সম্পর্কে কথা বলছে, তখন এটি সাধারণত ডিস্কের "ছোট" টেবিল হতে পারে যা ফাইলগুলি বোঝায় যেমন আইএওড টেবিল বা এফএটি সিস্টেমের ব্লক সংজ্ঞা টেবিল।
ইন-মেমোরি ইনোড টেবিলের ক্ষেত্রে, ফাইল সিস্টেম থেকে ইনোডটি লোড করা হয়, এর st_nlink মান বাড়ানো হয় এবং তারপরে বাকী সিস্টেমে অ্যাক্সেসযোগ্য করা হয়, যখন ইনোড ডেটা ডিস্কে লেখা হয়, st_cটাইম আপডেট হয়। যদি মেমোডিতে আর ইনোডের প্রয়োজন না হয়, st_nlink মান হ্রাস করা হয় এবং সারণীতে প্রবেশটি নিখরচায় চিহ্নিত করা হয়। প্রতিটি প্রক্রিয়ায় মেমরি inode টেবিলের মধ্যে তিনটি সম্পর্কে বা পাঁচ এন্ট্রি রেফারেন্স সঙ্গে শুরু হবে: এর inodes stdin
, stdout
, stderr
- এই প্রায়ই একটি ডিভাইস ফাইল (TTY) - এবং তারপর বর্তমান ডিরেক্টরি ও রুট ডিরেক্টরি উল্লেখ। একটি ইনোড কেবল একবার টেবিলের মধ্যে থাকবে, তাই সারণীতে একক ইনোডের একাধিক উল্লেখ থাকতে পারে।
ওপেন ফাইল টেবিলটি প্রতিটি প্রক্রিয়া অনুযায়ী রাখা হয় এবং এতে ইন-মেমরি ইনড টেবিলের পাশাপাশি বাফারগুলিতে পয়েন্টার এবং রাষ্ট্রের তথ্য (যেমন থেকে fseek(2)
মান এবং পতাকাগুলি পাওয়া যায় open(2)
। ফাইলে বর্ণনাকারী আক্ষরিক অর্থে খোলার ফাইল টেবিলের একটি সূচক; তবে বেশিরভাগই থাকে) লোকেরা "ফাইল বর্ণনাকারী" সম্পর্কে কথা বলার সময় উন্মুক্ত ফাইল সারণিতে প্রবেশের কথা উল্লেখ করে।
যখন কোনও ফাইল ব্যবহার open(2)
করে খোলা হয়, উন্মুক্ত ফাইল সারণীতে একটি উপলব্ধ এন্ট্রি পাওয়া যায়, পথের নাম দ্বারা ফাইলের রেফারেন্সের ইনোডটি নির্ধারিত হয়, ইনোডটি ইন-মেমরি ইনোড টেবিলটিতে লোড করা হয়, যদি ইতিমধ্যে লোড না করা হয়, তবে st_nlink গণনা ইনোড এন্ট্রি বৃদ্ধি করা হয় এবং ফাইল বিবরণীতে রেফারেন্স দেওয়া হয়, পতাকা সেট করা হয় এবং বাফারগুলি বরাদ্দ করা হয়। বন্ধ হয়ে গেলে বিপরীত ঘটে।
কার্নেল মধ্যে রুটিন "বলা হয় ফাইল ম্যানেজমেন্ট সিস্টেম " এবং " ফাইল সিস্টেম " ডিস্কে সংস্থা। এই দিনগুলিতে বেশ কয়েকটি 'প্লাগেবল' মডিউল রয়েছে যা modprobe(8)
ডিস্কের বিভিন্ন সংস্থার জন্য ফাইল ম্যানেজমেন্ট সিস্টেমে লোড করা যায় ( )। উদাহরণস্বরূপ, এখানে ext2 / ext3 / ext4 ফাইল-সিস্টেমের ধরণ রয়েছে এবং কার্নেলের ফাইল ম্যানেজমেন্ট সিস্টেমে তাদের প্রত্যেকের আলাদা আলাদা মডিউল রয়েছে; এনটিএফএস, এসবিএফএস, এনএফএস, ভিফ্যাট, জেএফএস ইত্যাদির সাথে একই
আমি মূলত যা চেয়েছিলাম তার চেয়ে কিছুটা বেশি দীর্ঘায়িত, সুতরাং আমি এখানেই থামব।