পাঠ্য ফাইল 4kB কেন?


47

কোনও কারণে, আমি যখন ওএস এক্সে একটি পাঠ্য ফাইল করি, এটি সর্বদা কমপক্ষে 4 কেবি থাকে, যদি না এটি ফাঁকা থাকে। কেন? প্লেইন টেক্সটের প্রায় 1 বাইট মেটাডেটা কি 4,000 বাইট থাকতে পারে?

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


16
4096 বাইট, 4000 নয়
যান্ত্রিক শামুক

8
@ মেকানিক্যালসনেল ৪০৯৯. আপনি প্রকৃত তথ্যগুলির একটি বাইটটি ভুলে গেছেন
টোবিয়াস কেইনজলার

5
@ মেকানিক্যালসনেইল এটি একটি লিপ বছর, তাই না? xkcd.com/394 :P
tkbx

উত্তর:


52

ফাইল সিস্টেমের ব্লকের আকার অবশ্যই 4 কেবি হতে হবে। যখন একটি ফাইল সিস্টেমে থাকা কোনও ফাইলে ডেটা লেখা হয় তখন অপারেটিং সিস্টেমটিকে অবশ্যই ফাইলটিতে লিখিত হবে এমন ডেটা ধারণ করতে স্টোরেজের ব্লক বরাদ্দ করতে হবে।

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

এই ফাইলটির জন্য ফাইল সিস্টেমের অন্তর্নিহিত ব্লকের আকারের অবশ্যই 4K বাইট ব্লকের আকার থাকতে হবে। এই ফাইলটি 1 4K ব্লক ব্যবহার করছে এবং সেই ব্লকের মধ্যে কেবল একটি বাইটই আসল ডেটা রয়েছে।


10
একটি মন্তব্য: উইন্ডোজে, প্রকৃত ফাইলের আকারটি ডিফল্টরূপে প্রদর্শিত হয় এবং ডিস্কের আকার বিকল্প প্যানে প্রদর্শিত হয়।
জো জেড।

সুতরাং একটি ব্লক বিভিন্ন ফাইল সমন্বিত করতে পারেন?
suDPdino008

@ সুদীপদিনো 800 নং, প্রতিটি ফাইলের জন্য একটি ব্লক (কমপক্ষে) (লিনাক্সের এক্সট্রোল ফাইল সিস্টেমে একটি ব্লকে একাধিক ফাইল রাখার বিকল্প রয়েছে / ছিল (?) তবে এটি নিয়মের ব্যতিক্রম)
রো-ই

13

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

যদি এতে শূন্য বাইট থাকে, যেমন গিলস উল্লেখ করেছেন , এটি শূন্য ব্লক / ক্লাস্টার ব্যবহার করে তবে টিপিক্যাল * নিক্স ফাইল সিস্টেমে একটি ইনোড ব্যবহার করা হয়, যা উত্তেজনাপূর্ণভাবে উত্তর দেয়, "যদি এটি ফাঁকা না হয়।"


6
"এমনকি যদি কোনও ফাইলের আকার শূন্য বাইট হয় তবে এটি একটি ক্লাস্টার গ্রাস করবে” "আসলে, না: সাধারণ ইউনিক্স ফাইল সিস্টেমে একটি খালি ফাইল একটি ইনোড এবং শূন্য ব্লক গ্রহণ করে এবং ব্লকগুলির থেকে পৃথক ক্লাস্টারের কোনও ধারণা নেই।
গিলস 22'6

8

এটি চিত্রিত করতে সাহায্য করার জন্য একটি সামান্য পরীক্ষা:

প্রথমে আসুন দেখুন যে আমার রুট এক্সট 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

দুটি বিষয় এখানে উল্লেখ করা যেতে পারে:

  • শূন্য বাইট ফাইলটি ফাইল সিস্টেমে শূন্য ব্লক নেয়, যা গাইলসের বক্তব্য নিশ্চিত করে ।
  • যদিও অন্য দুটি ফাইলের ফাইলের আকার ভিন্ন, তারা উভয়ই 4 * 1024 = এক 4KiB এক্সট 4 ব্লক নেয় take

স্পার্স ফাইল

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

ইনলাইন ডেটা

নোট করুন যে কিছু ফাইল সিস্টেমগুলি খুব ছোট ফাইলগুলিকে ইনডে নিজেই সংরক্ষণ করতে দেয়। দেখুন ইউনিক্স / লিনাক্স ফাইল সিস্টেমে কোনও ইনোডের মধ্যে সরাসরি ডেটা সংরক্ষণ করা সম্ভব?


হ্যাঁ আপনি পুরোপুরি সঠিক বলেছেন 4k ফাইল ফাইল সিস্টেমের মধ্যে ফাইল স্টোরেজ সম্পর্কিত তথ্য সংরক্ষণ করতে ফাইল সিস্টেম ব্যবহার করে uses ব্লকের শুরু থেকে ফাইলের সূচী, ব্লকের সূচি এবং ফাইলটি মেমরির আকারে ফাইল ব্যবহার করে যা 4k খায়। এই তথ্যটি ফাইল সিস্টেম থেকে পাঠ্য ফাইলটি উল্লেখ করতে ব্যবহৃত হয়।
pvn

2
এটি ভুল। আপনার উল্লেখ করা ফাইলের মেটাডেটা 4KiB এর কোনওটিই "খাওয়া" করবেন না। এই কাঠামোগুলি ওভারহেড ফাইল সিস্টেমের বিন্যাসের অংশ। প্রমাণের জন্য আমার উত্তর উপরে দেখুন। আপনি যা বলেছেন তা যদি সত্য হয় তবে আমার 4096-বাইট ফাইলটির একাধিক ব্লকের প্রয়োজন হবে।
জনাথন রাইনহার্ট

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

2
আমি বলছি যে কেউ 4 KiB ব্লক আকারের মেটাডাটা জন্য ব্যবহৃত হয়। আমি মনে করি আমার উদাহরণটি এটি প্রমাণ করে।
জনাথন রাইনহার্ট

2
@ পিভিএন: জনাথন ঠিক বলেছেন। মেটাডেটা ফাইলের জন্য ইনোডে সংরক্ষণ করা হয়, যা ফাইল ডেটা সঞ্চয় করার জন্য ব্যবহৃত ব্লক থেকে পৃথক।
যান্ত্রিক শামুক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.