2010-01-14 17 views
10

Programımın ayarlarını ve istatistiklerini 'her şey bir dosya' biçiminde açığa çıkarmak istiyorum - nasıl/proc/ve/sys/works. Örnek olarak, bir an için apache2'nin bu tip bir araca sahip olduğunu hayal edin. Ardından (varsayımsal) böyle bir şey yapmak mümkün olacaktır: ArtıkKendi 'her şey bir dosya' arabirimine yaz

cd /apache2/virtual_hosts 
mkdir 172.20.30.50 
cd 172.20.30.50 
echo '/www/example1' > DocumentRoot 
echo 'www.example1.com' > ServerName 
echo 1 > control/enabled 
cat control/status 
    enabled true 
    uptime 4080 
    hits 0 

, herhangi öğreticiler veya bunun nasıl yapılacağı üzerinde benzer vardır? Temel olarak 'bir dosya ya da dirmiş gibi davranmak' için teknikler arıyorum. Linux'tayım, POSIX veya diğer daha taşınabilir yöntemler tercih edilir, ancak gerekli değildir.

+3

Linux'ta muhtemelen Fuse'a bakmanız gerekiyor (http://fuse.sourceforge.net/) – jldupont

cevap

10

Linux'ta, Fuse'a bir göz atın: bir kullanıcı programı programında tam işlevli bir dosya sistemini uygulayın.

  • Basit kütüphane API
  • Basit kurulum
  • Güvenli uygulama
  • Kullanıcı Alanı (yama veya yeniden derleme çekirdek gerek) - çekirdek arayüzü olmayan ayrıcalıklı kullanıcılar tarafından
  • Kullanılabilir çok verimli
  • Linux çekirdeklerinde çalışır 2.4.X ve 2.6.X
  • Zaman içinde çok kararlı olduğu kanıtlanmıştır

Uyumlu platformlara bakın here. Öğretici açısından, karşılaştığım iyi olanlardan biri here.

+0

Teşekkürler, iyi görünüyor. –

4

FUSE'ye ek olarak, başka bir çözüm de bir 9p dosya sistemini dışa aktarmaktır. Örneğin, wmii bunu yapar.

+2

Bu harika bir fikir. Plan9'da okumak gerçekten de bu fikrin niye başladığının sebebiydi. –

+0

Eğer 9p güzergahına gitmek istiyorsanız, http://kyuba.org/libduat - 9p dosya sistemlerini uygulamak için bir kütüphaneye bakınız. – camh

+0

Teşekkürler. Ayrıca debian'ın v9fs'yi takmak için 9'lu bir paketi olduğunu öğrendim. –

1

Belki de bunu yapmanın yolu "gerçek" dosyaları kullanmanız ve davranışlarınızı değiştirip güncellemelerini belirlemek için bir değişiklik bildirim kitaplığı (tercihte bulunun) kullanmanızdır.

/proc ve/sys çekirdek kullanıcı iletişimi içindir ve gerçekten kullanıcı alanı programlarının IPC'si için değil, bunun için adlandırılmış yöneltme, soket, paylaşılan bellek vb. Kullanmanız beklenir. Bu durumda FUSE'nin gerçekten iyi bir fikir olmadığını düşünüyorum.

+0

Diğer programlarla çok fazla etkileşim bekliyorum ve bu durumda faturaya iyi uyuyor. Ben de merak ediyorum ve bunu nasıl yapacağımı öğrenmek isterim. –

+0

Ve bunu yapmak istememin bir başka nedeni de, farklı programlar için pek çok farklı izleme arayüzüne sahip olduğumdan bıktım ve bunun gerçekten de FS'ye ait olduğunu göstermeye başladım. –