কোনও কারণে, আমি যখন ওএস এক্সে একটি পাঠ্য ফাইল করি, এটি সর্বদা কমপক্ষে 4 কেবি থাকে, যদি না এটি ফাঁকা থাকে। কেন? প্লেইন টেক্সটের প্রায় 1 বাইট মেটাডেটা কি 4,000 বাইট থাকতে পারে?
:P
কোনও কারণে, আমি যখন ওএস এক্সে একটি পাঠ্য ফাইল করি, এটি সর্বদা কমপক্ষে 4 কেবি থাকে, যদি না এটি ফাঁকা থাকে। কেন? প্লেইন টেক্সটের প্রায় 1 বাইট মেটাডেটা কি 4,000 বাইট থাকতে পারে?
:P
উত্তর:
ফাইল সিস্টেমের ব্লকের আকার অবশ্যই 4 কেবি হতে হবে। যখন একটি ফাইল সিস্টেমে থাকা কোনও ফাইলে ডেটা লেখা হয় তখন অপারেটিং সিস্টেমটিকে অবশ্যই ফাইলটিতে লিখিত হবে এমন ডেটা ধারণ করতে স্টোরেজের ব্লক বরাদ্দ করতে হবে।
সাধারণত, যখন কোনও ফাইল সিস্টেম তৈরি করা হয় তখন সেই ফাইল সিস্টেমে থাকা স্টোরেজটি একটি নির্দিষ্ট আকারের ব্লকগুলিতে বিভক্ত হয়। এই উইকিপিডিয়া নিবন্ধটি সংক্ষেপে এই প্রক্রিয়াটি ব্যাখ্যা করে।
এই ফাইলটির জন্য ফাইল সিস্টেমের অন্তর্নিহিত ব্লকের আকারের অবশ্যই 4K বাইট ব্লকের আকার থাকতে হবে। এই ফাইলটি 1 4K ব্লক ব্যবহার করছে এবং সেই ব্লকের মধ্যে কেবল একটি বাইটই আসল ডেটা রয়েছে।
সমস্ত ফাইল সিস্টেমে একটি ক্লাস্টার বা ব্লক আকার থাকে, বা একটি ফাইল ধরে রাখতে বরাদ্দ করা যায় এমন স্বল্প পরিমাণে ডিস্কের স্থান। এমনকি প্রকৃত ফাইলের আকারটি ক্লাস্টার / ব্লক আকারের চেয়ে ছোট হলেও এটি আপনার ফাইল সিস্টেমে একটি ক্লাস্টার বা 4 কে গ্রাস করবে। ক্লাস্টারের আকার ফাইল সিস্টেম এবং ফাইল সিস্টেম বিকল্পগুলির উপর নির্ভর করে।
যদি এতে শূন্য বাইট থাকে, যেমন গিলস উল্লেখ করেছেন , এটি শূন্য ব্লক / ক্লাস্টার ব্যবহার করে তবে টিপিক্যাল * নিক্স ফাইল সিস্টেমে একটি ইনোড ব্যবহার করা হয়, যা উত্তেজনাপূর্ণভাবে উত্তর দেয়, "যদি এটি ফাঁকা না হয়।"
এটি চিত্রিত করতে সাহায্য করার জন্য একটি সামান্য পরীক্ষা:
প্রথমে আসুন দেখুন যে আমার রুট এক্সট 4 (এলভিএম) পার্টিশনের আসল ব্লক আকারটি কী:
[root@fedora17 blocksize]# dumpe2fs /dev/mapper/vg_fedora17-lv_root | grep -i "block size"
dumpe2fs 1.42.3 (14-May-2012)
Block size: 4096
এটি 4096 (4 কিবি) হিসাবে প্রত্যাশিত। এখন, তিনটি ফাইল তৈরি করা যাক: প্রথমটি শূন্য বাইট, দ্বিতীয়টি কেবল একটি বাইট এবং তৃতীয়টি 4 কিবি (ব্লকের আকার):
[root@fedora17 blocksize]# touch 0_bytes.bin
[root@fedora17 blocksize]# dd if=/dev/zero of=1_byte.bin bs=1 count=1
[root@fedora17 blocksize]# dd if=/dev/zero of=4096_bytes.bin bs=1 count=4096
এখন, আমরা ls
ডিরেক্টরি। 1024-বাইট "ব্লক" এর সংখ্যায় আমরা বরাদ্দ আকার (বাম-সর্বাধিক কলাম) -s
দেখতে বিকল্পটি ব্যবহার করি । (এলএসগুলি বাস্তব ব্লকের আকার 4096 হয় তা জানে না - আমরা উল্লেখ করতে পারি তবে সেই মানটি দিয়ে এটি সমস্ত কিছুকে স্কেল করে এবং আমরা আসল ফাইলের আকারটি বাইটেও দেখতে চাই ) ।--block-size
[root@fedora17 blocksize]# ls -ls
total 8
0 -rw-r--r--. 1 root root 0 Jan 21 23:56 0_bytes.bin
4 -rw-r--r--. 1 root root 1 Jan 21 23:38 1_byte.bin
4 -rw-r--r--. 1 root root 4096 Jan 21 23:38 4096_bytes.bin
দুটি বিষয় এখানে উল্লেখ করা যেতে পারে:
বিরল ফাইল হ'ল ফাইলগুলি হ'ল শূন্যের বৃহত ব্লকযুক্ত ফাইল। যেহেতু ডেটাটি সমস্ত শূন্য হিসাবে পরিচিত, এটি ডিস্কে এটি সংরক্ষণ করার কোনও মানে নেই। এইভাবে, কোনও ফাইলের আপাত আকারটি অন ডিস্ক আকারের চেয়ে বড় হতে পারে ।
নোট করুন যে কিছু ফাইল সিস্টেমগুলি খুব ছোট ফাইলগুলিকে ইনডে নিজেই সংরক্ষণ করতে দেয়। দেখুন ইউনিক্স / লিনাক্স ফাইল সিস্টেমে কোনও ইনোডের মধ্যে সরাসরি ডেটা সংরক্ষণ করা সম্ভব? ।