লিনাক্স (এবং অন্যান্য UNIXes) মধ্যে একটি পার্থক্য স্বপক্ষে নাম একটি ফাইল (এর লিংক ), ফাইল নিজেই (প্রায়ই সঙ্গে চিহ্নিত inode ), এবং খোলা হ্যান্ডলগুলি ফাইলে। আপনি যখন কোনও ফাইল মুছতে যান, আপনি কলটি unlink()
কল করেন - এটি ফাইলটির লিঙ্কটি মুছে ফেলে (আপনি rename()
এটি অন্য একটি ইনোড দিয়ে ওভাররাইট করতেও ব্যবহার করতে পারেন )। যাইহোক, ফাইল খোলা হ্যান্ডলগুলি যদি (অথবা অন্যান্য লিঙ্ক - ফাইল একাধিক থাকতে পারে hardlinks ) থাকা, inode দেহাবশেষ, এবং তাই, ফাইল বিষয়বস্তু নেই যতক্ষণ না সমস্ত লিঙ্কের এবং হ্যান্ডলগুলি দূরে যান।
সুতরাং লাইব্রেরি ব্যবহার করে প্রোগ্রামগুলি চালনা করা বা যা কিছু পুরানো সংস্করণে হ্যান্ডেল রাখে (প্রায়শই স্পষ্টভাবে মেমরি ম্যাপিংয়ের মাধ্যমে), তাই এটি ডিস্কে থেকে যায়। এটির এখন আর কোনও ফাইল নাম নেই এবং সমস্ত প্রোগ্রাম যখন এটি ব্যবহার করে এটি বন্ধ হয়ে যায় তখন (বা ফাইল সিস্টেম চেক বা জার্নাল রিপ্লে চলাকালীন পরবর্তী পুনরায় বুট করার সময়) পরিষ্কার হয়ে যাবে।
আরও মনে রাখবেন, 'পুরাতন গ্রন্থাগার' প্রত্যাশা করা প্রোগ্রামগুলি লাইব্রেরির নতুন সংস্করণগুলির সাথে ঠিকঠাক করবে। লিনাক্স লাইব্রেরিগুলিকে একটি ফাইল নাম ('সোনাম') বরাদ্দ করা হয় যা লাইব্রেরির দেওয়া এবিআই (অ্যাপ্লিকেশন বাইনারি ইন্টারফেস) এর সংস্করণ প্রতিফলিত করে। উদাহরণস্বরূপ, আমার সিস্টেমে সি লাইব্রেরিটি libc.so.6
। যে কোনও প্রোগ্রাম libc এর পুরানো সংস্করণের বিরুদ্ধে সংকলিত হয়েছে, তবে এখনও LBC সংস্করণ 6 এবিআই সংস্করণটি বাস্তবায়ন করে, এটি দিয়ে কাজ করবে। সত্যিই পুরাতন প্রোগ্রাম একটি জন্য চেহারা হবে libc.so.5
বা libc.so.4
বা কিছু পরিবর্তে; এই ক্ষেত্রে, আপনার পাশাপাশি পুরানো সংস্করণও রাখা উচিত - তবে যেহেতু ফাইলের নামটি আলাদা, এটি কোনও সমস্যা নয়।