Sanal dosya sistemi - Virtual file system

Bir sanal dosya sistemi ( VFS ) veya sanal dosya sistemi anahtarı , daha somut bir dosya sisteminin üzerindeki soyut bir katmandır . Bir VFS'nin amacı, istemci uygulamalarının farklı türdeki somut dosya sistemlerine tek tip bir şekilde erişmesine izin vermektir. Örneğin bir VFS , istemci uygulaması farkı fark etmeden yerel ve ağ depolama aygıtlarına şeffaf bir şekilde erişmek için kullanılabilir . Windows , klasik Mac OS / macOS ve Unix dosya sistemlerindeki farklılıklar arasında köprü kurmak için kullanılabilir , böylece uygulamalar, ne tür dosya sistemine eriştiklerini bilmek zorunda kalmadan bu tür yerel dosya sistemlerindeki dosyalara erişebilir.

Bir VFS , çekirdek ile somut bir dosya sistemi arasında bir arabirim (veya bir "sözleşme") belirtir . Bu nedenle, sadece sözleşmeyi yerine getirerek çekirdeğe yeni dosya sistemi türleri için destek eklemek kolaydır. Sözleşmenin şartları, sürümden sürüme uyumsuz bir şekilde değişebilir; bu, somut dosya sistemi desteğinin yeniden derlenmesini ve muhtemelen yeniden derlemeden önce, işletim sisteminin yeni bir sürümüyle çalışmasına izin vermek için değiştirilmesini gerektirir; veya işletim sisteminin tedarikçisi, belirli bir işletim sistemi sürümü için oluşturulmuş somut dosya sistemi desteğinin işletim sisteminin gelecekteki sürümleriyle çalışabilmesi için sözleşmede yalnızca geriye dönük uyumlu değişiklikler yapabilir.

Uygulamalar

Linux çekirdeğinin depolama yığınının çeşitli bölümlerinde VFS katmanının konumu .

Unix benzeri sistemlerdeki ilk sanal dosya sistemi mekanizmalarından biri Sun Microsystems tarafından 1985 yılında SunOS 2.0'da tanıtıldı . Unix sistem çağrılarının yerel UFS dosya sistemlerine ve uzak NFS dosya sistemlerine şeffaf bir şekilde erişmesine izin verdi . Bu nedenle, NFS kodunu Sun'dan lisanslayan Unix satıcıları genellikle Sun'ın VFS'sinin tasarımını kopyaladı. Buna başka dosya sistemleri de takılabilir: Sun'da geliştirilen ve SunOS VFS'ye takılan MS-DOS FAT dosya sisteminin bir uygulaması vardı , ancak SunOS 4.1'e kadar bir ürün olarak gönderilmemişti. SunOS uygulaması, System V Sürüm 4'teki VFS mekanizmasının temeliydi .

John Heidemann , deneysel Ficus dosya sistemi için SunOS 4.0 altında bir yığınlama VFS'si geliştirdi . Bu tasarım , farklı fakat benzer semantiklere sahip dosya sistemi türleri arasında kodun yeniden kullanımı için sağlanmıştır ( örneğin , şifreleyen bir dosya sistemi, şifrelemeyen bir dosya sisteminin tüm adlandırma ve depolama yönetimi kodunu yeniden kullanabilir). Heidemann bu çalışmayı tez araştırmasının bir parçası olarak 4.4BSD'de kullanılmak üzere uyarladı ; bu kodun torunları, macOS dahil olmak üzere modern BSD türevlerindeki dosya sistemi uygulamalarının temelini oluşturur .

Diğer Unix sanal dosya sistemi Dosya Sistemi Anahtarı dahil Sistem V Release 3 , içinde Genel Dosya Sistemi Ultrix'li ve içinde VFS'nin Linux . In OS / 2 ve Microsoft Windows , sanal dosya sistemi mekanizması denir yüklenebilir dosya sistemi .

Kullanıcı Alanındaki Dosya Sistemi (FUSE) mekanizması, kullanıcı alanı kodunun Linux, NetBSD , FreeBSD , OpenSolaris ve macOS'taki sanal dosya sistemi mekanizmasına eklenmesine izin verir .

Microsoft Windows'ta sanal dosya sistemleri, kullanıcı alanı Shell ad alanı uzantıları aracılığıyla da uygulanabilir ; ancak, Windows'ta en düşük seviyeli dosya sistemi erişim uygulaması programlama arabirimlerini desteklemezler , bu nedenle tüm uygulamalar ad alanı uzantıları olarak uygulanan dosya sistemlerine erişemez. KIO ve GVfs / GIO , KDE ve GNOME masaüstü ortamlarında (sırasıyla) benzer mekanizmalar sağlar , ancak FUSE tekniklerini kullanmak için yapılabilir ve bu nedenle sisteme sorunsuz bir şekilde entegre edilebilirler.

Tek dosya sanal dosya sistemleri

Bazen Sanal Dosya Sistemi, yazılım kullanımı yoluyla somut bir dosya sisteminin işlevselliğini sağlaması gereken yönetilebilir bir kapsayıcı görevi gören bir dosyaya veya bir grup dosyaya (somut bir dosya sistemi içinde olması gerekmez) atıfta bulunur. Bu kapların örnekleri CBFS Depolama veya bir olan tek dosya sanal dosya sistemi gibi bir emülatör PCTask veya sözde WinUAE , Oracle'ın VirtualBox , Microsoft'un Virtual PC , VMware .

Bu tür dosya sisteminin birincil yararı, merkezi olması ve kaldırılmasının kolay olmasıdır. Tek dosyalı bir sanal dosya sistemi, herhangi bir dosya sisteminden (sanal veya başka türlü) beklenen tüm temel özellikleri içerebilir, ancak bu dosya sistemlerinin iç yapısına erişim, genellikle tek dosyalı sanal sistemi kullanmak için özel olarak yazılmış programlarla sınırlıdır. dosya sistemi (evrensel erişime izin veren bir sürücü aracılığıyla uygulama yerine). Diğer bir önemli dezavantaj, performansın diğer sanal dosya sistemlerine kıyasla nispeten düşük olmasıdır. Düşük performans, çoğunlukla, veriler sanal dosya sisteminden yazıldığında veya silindiğinde sanal dosyaları karıştırma maliyetinden kaynaklanır.

Tek dosyalı sanal dosya sistemlerinin uygulanması

Tek dosyalı sanal dosya sistemlerinin doğrudan örnekleri, yalnızca dosya sistemi verilerini değil, aynı zamanda öykünülmüş disk düzenini de içine alan PCTask ve WinUAE gibi öykünücüleri içerir. Bu, bir işletim sistemi kurulumunun diğer herhangi bir yazılım parçası gibi ele alınmasını kolaylaştırır - onu çıkarılabilir medyayla veya ağ üzerinden aktararak.

PCGörevi

Amiga emülatörü PCTask bir taklit Intel bilgisayar 8088 tabanlı makine 4.77 saat hızına MHz (ve daha sonra bir 80486 SX 25 MHz saat hızında). PCTask kullanıcıları, Amiga dosya sisteminde büyük boyutlu bir dosya oluşturabilir ve bu dosyaya, gerçek bir PC Sabit Diskiymiş gibi öykünücüden sanal olarak erişilebilir. Dosya, normal MS-DOS veya Windows dosyalarını depolamak için FAT16 dosya sistemiyle biçimlendirilebilir.

WinUAE

BAE için Windows'un , WinUAE Windows üzerinde büyük tek dosya Amiga dosya sistemleri gibi tedavi edilmesi için, izin verir. WinUAE'de bu dosyaya hardfile denir .

BAE ayrıca ana bilgisayar dosya sistemindeki ( Windows , Linux , macOS , AmigaOS ) bir dizini bir Amiga dosya sistemi olarak ele alabilir.

Ayrıca bakınız

  • 9P (protokol)  – doğrudan Plan 9'un VFS katmanına eşlenen ve tüm dosya sistemi erişimini ağ şeffaf hale getiren dağıtılmış bir dosya sistemi protokolü
  • Sentetik dosya sistemi  - disk tabanlı bir dosya sisteminin ağacında normal dosyalarmış gibi görünen dosya olmayan nesneler için hiyerarşik bir arayüz

Notlar

  1. ^ PCX ve PCTask arasındakiAmigaKarşılaştırmasındaÖykünme, Amiga PC öykünücüleri.
  2. ^ PCTask'ın nasıl çalıştığını açıklayanbu makaleyede bakın.
  3. ^ WinUAEHakkında Yardım(Hardfile bölümüne bakın).
  4. ^ WinUAE Hakkında Yardım(Dizin Ekle bölümüne bakın)

Referanslar

Dış bağlantılar