Uncategorized

      Linux’ta FUSE ile Sanal Dosya Sististemi Yapımı

      Linux ortamında fiziksel diske veri yazmadan, yalnızca yazılım düzeyinde çalışan dosya sistemleri kurulabilir. Bu yapı genellikle deneme, eğitim ya da belirli amaçlara yönelik özel senaryolarda tercih edilir. Böyle bir sistemi oluşturmanın en pratik yolu FUSE aracını kullanmaktır.

      FUSE Nedir?

      FUSE, çekirdek düzeyine müdahale etmeden kullanıcı alanında dosya sistemi oluşturmayı mümkün kılar. Bu yaklaşım, yeni bir modül geliştirmeye gerek kalmadan özel dosya sistemleri yazılmasını sağlar. FUSE kullanarak bulut depolama klasörleri tanımlanabilir, veritabanı ya da API verileri dosya biçiminde gösterilebilir ve bellekte çalışan geçici dosya sistemleri kurulabilir.

      Sahte Dosya Sistemi Nedir?

      Sahte dosya sistemi, aslında diskte yer almayan ancak işletim sistemi tarafından gerçek bir dosya sistemi gibi algılanan yapılardır. Bu yapılar içinde dosya ve klasörler fiziksel olarak bulunmaz, yalnızca yazılım aracılığıyla görüntülenir.
      Linux’ta /proc ve /sys dizinleri bu tür sistemlere örnektir; çünkü çekirdek verilerini dosya biçiminde sunarlar. tmpfs belleği kullanarak geçici bir dosya sistemi oluştururken, sshfs uzak bir sunucudaki klasörü yerel bir dizinmiş gibi gösterir.
      Bellek yönetimiyle ilgileniyorsanız, Linux Sistemlerde Swap Alanı Eklemek rehberimizde sistem belleğini genişletmenin kolay yöntemlerini bulabilirsiniz.

      FUSE Kurulumu

      Eğer Debian ya da Ubuntu tabanlı bir sistem kullanıyorsak, önce paket listelerini güncelleyelim ve ihtiyaç duyulan bağımlılıkları yükleyelim.

      Eğer Python ile FUSE tabanlı bir proje geliştirmeyi düşünüyorsak, fusepy paketini de yükleyelim.

      Kurulum işlemleri tamamlandıktan sonra FUSE’un sisteme düzgün şekilde yüklendiğini doğrulayalım.

      Bu komutun çıktısında fuse satırını görüyorsak, kurulumun başarıyla tamamlandığını anlayabiliriz.

      Linux Sahte Dosya Oluşturma

      Şimdi basit bir örnek oluşturalım. Bu örnekte /hello adında sanal bir dosya yaratacağız.

      Kod dosyasını hello_fuse.c olarak kaydedelim ve ardından derleme işlemini gerçekleştirelim.

      Mount işlemi için bir dizin oluşturalım ve sanal dosya sistemimizi oraya bağlayalım.

      Sanal dosya sistemimiz aktif hale geldi. Şimdi oluşturduğumuz sanal dosyayı okuyarak sonucu görelim:

      İşimiz bittikten sonra sanal dosya sistemini güvenli şekilde ayırmak için şu komutu çalıştıralım:

      Eğer dosya sistemi testleri sırasında hata veya bozukluk tespit edersen, Linux fsck Komutu Nasıl Kullanılır? rehberindeki adımlar, sanal veya fiziksel disklerde güvenli şekilde onarım yapmana yardımcı olur.

      Python ile Sahte Dosya Sistemi Oluşturma

      Aynı işlemi bu kez Python kullanarak da gerçekleştirebiliriz. fusepy kütüphanesi sayesinde, birkaç satır kodla kendi sanal dosya sistemimizi oluşturalım.

      Bu örnekte /tmp/hello_py adında bir sanal dosya sistemi oluşturuyoruz. İçinde hello adlı bir dosya yer alacak ve dosya okunduğunda ekrana “Merhaba FUSE” metni yazdırılacak.

      Kodu çalıştıralım.

      Ardından oluşturulan dosyayı test edelim.

      Son olarak, işlemi tamamladıktan sonra dosya sistemini kapatabilmek için Ctrl + C tuşlarına basalım.

      Sık Sorulan Sorular

      FUSE tam olarak nasıl çalışır?

      FUSE, çekirdek modülünün dosya sistemi çağrılarını kullanıcı alanındaki bir programa yönlendirmesiyle çalışır. Yani dosya işlemleri doğrudan kernel tarafından değil, kullanıcı alanındaki bir uygulama tarafından yönetilir.

      FUSE ile oluşturulan dosya sistemleri neden kernel seviyesinde değildir?

      FUSE’un amacı, geliştiricilerin güvenli bir ortamda dosya sistemi prototipleri yazmasını sağlamaktır. Kullanıcı alanında çalıştığı için çekirdek çökmesine yol açmadan hatalar yakalanabilir.

      FUSE’un performansı hangi durumlarda sınırlı olur?

      Her dosya işlemi kullanıcı alanı ile çekirdek arasında ek bir geçiş gerektirdiğinden, FUSE tabanlı sistemler yüksek I/O yoğunluklu senaryolarda yavaşlayabilir.

      FUSE kullanımı için özel izin gerekir mi?

      Eğer sistem yöneticisi kullanıcıya /etc/fuse.conf üzerinden erişim izni verdiyse, root yetkisi gerekmeden FUSE dosya sistemleri oluşturulabilir. Aksi durumda “permission denied” hatası alınabilir.

      FUSE dosya sisteminde hata ayıklama (debug) nasıl yapılır?

      FUSE uygulamaları çalıştırılırken -d veya --debug parametresi eklenerek hata çıktıları ayrıntılı şekilde görülebilir.

      Bu sayede dosya işlemleri, erişim talepleri ve hata mesajları gerçek zamanlı olarak takip edilebilir.

      FUSE dosya sistemi nasıl kapatılır veya kaldırılır?

      Bağlı bir FUSE dosya sistemini devre dışı bırakmak için şu komutu çalıştıralım

      Bu işlem, sanal dosya sistemini güvenli şekilde ayırır ve bellekteki kaynakları serbest bırakır.

      Hi, I’m Spesifik

      Bir yanıt yazın

      E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir