6 puan yazan GN⁺ 2024-01-09 | 1 yorum | WhatsApp'ta paylaş

ext4 dosya sisteminin görünümü nasıldır?

  • Boş bir sürücüde mkfs.ext4 komutu çalıştırıldığında, sürücü üzerinde ext4 dosya sistemi oluşturulur.
  • Bu süreçte, 0x00’dan oluşan "hiçbir şey yok" durumu, ext4 dosya sisteminin amaçlı bayt dizilerine dönüşür.
  • Küçük bir ek sürücüyü sanal makineye ekleyerek ya da loop aygıtı olarak yapılandırılmış sıradan bir dosya kullanarak çalışma basitleştirilir.

Loop aygıtı kullanarak deney

  • Loop aygıtı kullanımı basitleştirilmiştir; losetup olmadan yalnızca mount -o loop <foo_file> <bar_dir> ve umount <bar_dir> ile bağlama ve ayırma yapılabilir.
  • dd komutu kullanılarak /dev/zero üzerinden veri okunur ve 64x1024 bayt boyutunda 8 blok içeren bir dosya oluşturulur.

ext4 dosya sistemi oluşturulduktan sonraki değişiklikler

  • mkfs.ext4 çalıştırıldıktan sonra blok dosyasının yapısı od komutunun çıktısı üzerinden incelenebilir.
  • Bu çıktıda ext4 dosya sisteminin yapısal özellikleri görülebilir.

Görselleştirme ile ext4 yapısını anlama

  • Her blok 1024x64 piksel olacak şekilde ve her pikselin bir baytı temsil ettiği görselleştirme görüntüleri hazırlanır.
  • ext4 dosya sistemi oluşturulduktan sonraki görüntüde, mkfs.ext4 tarafından eklenen yapıların ve verilerin konumu görülebilir.
  • ext4 verisi ile "kullanıcı" verisini ayırmak için /dev/urandom ile üretilen 1024 baytlık bir dosya loop aygıtına kopyalanır ve görselleştirme kodunda bunlar farklı renklerle gösterilir.

Kullanıcı verisi eklendikten sonraki görselleştirme

  • Kullanıcı verisi sürücüye kopyalandıktan sonraki görüntüde ext4 verisi ile kullanıcı verisi ayırt edilebilir.
  • Ayrıca kullanıcı verisi dosyası sürücüye üç kez kopyalanarak animasyonlu bir GIF oluşturulur.

ext4 ve ext2 karşılaştırması

  • ext4 dosya sisteminin animasyonuna ek olarak ext2 dosya sisteminin animasyonu da hazırlanır.

GN⁺ görüşü

  • Bu yazı, ext4 dosya sisteminin gerçekte sürücü üzerinde nasıl düzenlendiğini görsel olarak anlamaya yardımcı olur.
  • Kullanıcı verisi ile sistem verisini ayıran görselleştirme yöntemi, dosya sisteminin çalışma prensibini öğrenmek açısından oldukça faydalıdır.
  • ext4 ile ext2 karşılaştırması, dosya sistemleri arasındaki farkları sezgisel olarak anlamak için bir fırsat sunar.

1 yorum

 
GN⁺ 2024-01-09
Hacker News görüşleri
  • Birkaç yıl önce FOSDEM'de ext4 dosya sisteminin gerçek bir grafiksel görselleştirmesi yapılmıştı. Görselleştirme, videonun yaklaşık 20. dakikasında başlıyor. Projektörün kullandığı açık maviyi doğru gösterememesi kafa karıştırıcı olabilir, ancak blogda doğru şekilde işlenmiş video var.

  • Bilgisayar kullanımını basitleştirmeye çalışan birçok kişinin hedefi, eğitsel değeri olabilecek şeyler üretmek. Örneğin, sabit disk etkinliğini gösteren kırmızı ışık gibi şeyler kullanıcının merakını uyandırır ve bilgi verir. Gelişmiş görünümleri gizleyip meraklı kişiler için erişilebilir bırakmak iyi bir orta yol olabilir.

  • pixd adlı bir komut satırı yardımcı programı benzer veri görselleştirmesi sunuyor, ancak zaman içindeki dosya sistemi değişimlerini gösteren animasyonlu GIF kadar etkileyici değil. Pikselleri satır satır çizmek yerine Hilbert eğrisi kullanarak yerleştirmek daha faydalı olabilir.

  • Dosya sistemi IO'sunu görselleştiren nbdkit demosunu ilgi çekici buldum.

  • Dosya sistemini görselleştirmek için bir deney yaptım. Ortaya çıkan a.png tersine dönüştürülebiliyor, böylece yeniden geçerli bir .ext4 dosyası elde edilebiliyor.

  • Veri görselleştirme, disk formatlarının veriyi diske gerçekte nasıl yerleştirdiğine dair karmaşıklığı anlamaya yardımcı olabilir. Örneğin, çok az kullanım için bile önceden ayrılmış metadata gibi şeyler var. Alanın tükenmeye başladığı bir durumda ne olacağını merak ediyorum, ancak animasyon o noktaya gelmeden duruyor.

  • Yazar bu yorumu görürse, GIF'i videoya dönüştürerek aktarılan bayt miktarını azaltabilir ve kullanıcıya video kontrolleri (duraklatma, sarma, hız ayarı vb.) sunabilir.

    • Örnek komut: ffmpeg -i ext4.gif -pix_fmt yuv420p -c:v libx264 ext4.mp4
  • innodb_ruby adlı araç seti, InnoDB yapısını görselleştirmek ve öğrenmek için çok faydalı.

  • Kaitai IDE kullanarak çeşitli ikili formatları her bayt (veya bit) düzeyinde görselleştirebilirsiniz. ext4 için bir tanım dosyası olduğunu hatırlıyorum.

  • Bu diyagrama bakınca, metadata'yı ayrı bir aygıtta saklayabilen bir dosya sistemi olup olmadığını merak ediyorum. Örneğin, veri HDD'de, metadata ise ilişkili bir SSD sürücüde tutulabilir. Metadata'yı bellekte önbelleğe almak kolay olduğundan, bunun faydası ek karmaşıklığı haklı çıkaracak kadar büyük olmayabilir.