6 पॉइंट द्वारा GN⁺ 2024-01-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें

ext4 फ़ाइल सिस्टम वास्तव में कैसा दिखता है?

  • खाली ड्राइव पर mkfs.ext4 कमांड चलाने पर, ड्राइव पर ext4 फ़ाइल सिस्टम बनाया जाता है.
  • इस प्रक्रिया में 0x00 से भरी "कुछ भी नहीं" जैसी स्थिति, ext4 फ़ाइल सिस्टम के उद्देश्यपूर्ण byte array में बदल जाती है.
  • प्रयोग को सरल बनाने के लिए छोटी सेकेंडरी ड्राइव को virtual machine में जोड़ा जा सकता है, या loop device के रूप में कॉन्फ़िगर की गई साधारण फ़ाइल का उपयोग किया जा सकता है.

loop device का उपयोग करके प्रयोग

  • loop device का उपयोग इतना सरल है कि losetup के बिना सिर्फ mount -o loop <foo_file> <bar_dir> और umount <bar_dir> से mount और unmount किया जा सकता है.
  • dd कमांड का उपयोग करके /dev/zero से डेटा पढ़ा जाता है और 64x1024 byte आकार के 8 blocks वाली फ़ाइल बनाई जाती है.

ext4 फ़ाइल सिस्टम बनाने के बाद के बदलाव

  • mkfs.ext4 चलाने के बाद block फ़ाइल की संरचना od कमांड के आउटपुट से देखी जा सकती है.
  • इस आउटपुट में ext4 फ़ाइल सिस्टम की संरचनात्मक विशेषताएँ दिखाई देती हैं.

विज़ुअलाइज़ेशन के ज़रिए ext4 संरचना को समझना

  • हर block को 1024x64 pixels के रूप में दिखाया गया है, जहाँ हर pixel एक byte को दर्शाता है.
  • ext4 फ़ाइल सिस्टम बनने के बाद की इमेज में mkfs.ext4 द्वारा जोड़ी गई संरचनाएँ और डेटा की स्थिति देखी जा सकती है.
  • ext4 डेटा और "user" डेटा में फर्क दिखाने के लिए /dev/urandom से बनी 1024 byte फ़ाइल को loop device में कॉपी किया गया, और visualization code में इसे अलग पहचानकर color code से दिखाया गया.

user डेटा जोड़ने के बाद का विज़ुअलाइज़ेशन

  • user डेटा ड्राइव में कॉपी होने के बाद की इमेज में ext4 डेटा और user डेटा के बीच स्पष्ट अंतर देखा जा सकता है.
  • अतिरिक्त रूप से, user डेटा फ़ाइल को ड्राइव में तीन बार कॉपी करके एक animated GIF भी बनाया गया है.

ext4 और ext2 की तुलना

  • ext4 फ़ाइल सिस्टम की animation के साथ तुलना करने के लिए ext2 फ़ाइल सिस्टम की animation भी बनाई गई है.

GN⁺ की राय

  • यह लेख समझने में मदद करता है कि ext4 फ़ाइल सिस्टम वास्तव में ड्राइव पर कैसे बनाया जाता है.
  • user डेटा और system डेटा को अलग दिखाने की visualization विधि, फ़ाइल सिस्टम के काम करने के तरीके को सीखने के लिए काफ़ी उपयोगी है.
  • ext4 और ext2 की तुलना के ज़रिए फ़ाइल सिस्टमों के बीच के अंतर को सहज रूप से समझने का अवसर मिलता है.

1 टिप्पणियां

 
GN⁺ 2024-01-09
Hacker News टिप्पणियाँ
  • कुछ साल पहले FOSDEM में ext4 file system का एक असली graphical visualization किया गया था। visualization उस वीडियो में लगभग 20 मिनट से शुरू होता है। projector ने इस्तेमाल किए गए हल्के नीले रंग को ठीक से नहीं दिखाया, इसलिए थोड़ी उलझन हो सकती है, लेकिन blog पर सही rendering वाला वीडियो मौजूद है।

  • कंप्यूटर उपयोग को सरल बनाने की कोशिश करने वाले कई लोगों के लक्ष्य कभी-कभी ऐसी चीज़ें पैदा करते हैं जिनकी शैक्षणिक value होती है। उदाहरण के लिए, hard drive activity दिखाने वाली लाल बत्ती जैसी चीज़ें उपयोगकर्ता की जिज्ञासा जगाती हैं और जानकारी भी देती हैं। advanced view को छिपाकर रखना, लेकिन जिज्ञासु लोगों के लिए उसे उपलब्ध छोड़ देना, एक अच्छा समझौता हो सकता है।

  • pixd नाम की एक command-line utility इसी तरह का data visualization देती है, लेकिन समय के साथ file system में होने वाले बदलाव दिखाने वाले animated GIF जितनी शानदार नहीं लगती। pixels को line-by-line खींचने की बजाय Hilbert curve का इस्तेमाल करके arrange करना अधिक मददगार हो सकता है।

  • file system IO को visualize करने वाला nbdkit demo दिलचस्प लगा।

  • file system को visualize करने का एक प्रयोग किया गया। उसका परिणाम a.png उल्टा convert किया जा सकता है, जिससे फिर से एक वैध .ext4 file मिल सकती है।

  • data visualization यह समझने में मदद कर सकता है कि disk format वास्तव में disk पर data को कैसे arrange करता है। उदाहरण के लिए, बहुत कम उपयोग के लिए भी पहले से allocated metadata जैसी चीज़ें होती हैं। यह जानने की जिज्ञासा है कि जब space कम पड़ने लगे तो क्या होगा, लेकिन animation उससे पहले ही रुक जाती है।

  • अगर लेखक यह टिप्पणी देखे, तो GIF को video में बदलकर भेजे जाने वाले bytes बचाए जा सकते हैं और उपयोगकर्ता को video controls भी दिए जा सकते हैं, जैसे pause, scrub, speed control आदि।

    • उदाहरण कमांड: ffmpeg -i ext4.gif -pix_fmt yuv420p -c:v libx264 ext4.mp4
  • innodb_ruby नाम का toolset InnoDB structure को visualize करने और उसे सीखने में बहुत उपयोगी है।

  • Kaitai IDE का इस्तेमाल करके अलग-अलग binary formats को हर byte (या bit) के स्तर पर visualize किया जा सकता है। याद है कि ext4 के लिए एक definition file भी मौजूद है।

  • यह diagram देखते हुए जिज्ञासा हुई कि क्या ऐसे file systems हैं जो metadata को अलग device पर store कर सकें। उदाहरण के लिए, data HDD पर और metadata उससे जुड़े SSD drive पर रखा जाए। metadata को memory में cache करना आसान होता है, इसलिए हो सकता है कि इससे मिलने वाला लाभ अतिरिक्त complexity बढ़ाने जितना बड़ा न हो।