Birlik montajı - Union mount

İçinde bilgisayar işletim sistemleri, sendika montajı birden çok dizini, birleşik içeriklerini içeriyor gibi görünen bir dizinde birleştirmenin bir yoludur.[1] Birlik montajı desteklenir Linux, BSD ve haleflerinden birkaçı ve Plan 9, benzer ama ince bir şekilde farklı davranışlarla.

Birleştirme montajının örnek bir uygulaması olarak, bir CD-ROM veya DVD. Bir CD-ROM yazılabilir değilken, CD'lerin üzerine bindirilebilir bağlama noktası bir birleşim yerinde yazılabilir bir dizin ile. Daha sonra, birleşim dizinindeki dosyaların güncellenmesi, CD-ROM'un içeriğinin güncellendiği yanılsamasına neden olarak, bunların yazılabilir dizinde yer almasına neden olur.[1][2]

Uygulamalar

Plan 9

Plan 9 işletim sisteminde Bell Laboratuvarları (1980'lerin ortalarından itibaren), sendika montajı merkezi bir kavramdır ve birkaç eski Unix sendika dizinleriyle yapılan sözleşmeler; örneğin, içeren birkaç dizin çalıştırılabilir dosyalar, tek bir /çöp Kutusu dizini değiştirin PATH kabukta komut araması için değişken.[3]

Plan 9 sendika semantiği için uygulamalara kıyasla büyük ölçüde basitleştirilmiştir. POSIX -tipi işletim sistemleri: iki dizinin birleşimi basitçe içeriklerinin birleştirilmesidir, bu nedenle birleşimin bir dizin listesi yinelenen isimleri gösterebilir. Ayrıca, alt dizinleri yinelemeli olarak birleştirmek için hiçbir çaba gösterilmez, bu da son derece basit bir uygulamaya yol açar.[4] Dizinler, kontrol edilebilir bir sırayla birleştirilir; Adın, nerede sen bir birleşim dizini olup, adı verilen dosyayı belirtir isim Böyle bir dosyayı içeren ilk kurucu dizinde.[4]

Unix ve BSD

Sendikaların Unix / POSIX uygulamaları, geleneksel Unix dosya sistemi davranışındaki kısıtlamalar nedeniyle Plan 9 uygulamasından farklı gereksinimlere sahiptir, bu da uygulamalarını büyük ölçüde karmaşıklaştırır ve çoğu zaman uzlaşmaya yol açar.[5] Unix benzeri işletim sistemlerinde birleşim kurmanın karşılaştığı sorunlar şunları içerir:

  • Bir dizinde yinelenen dosya adları kabul edilemez çünkü bu, uygulamaların Unix dosya sisteminin nasıl çalıştığına ilişkin beklentilerini kırabilir. Mantıklı koymak, yığın - Birliğin bileşenlerine benzer öncelik sıralaması bu sorunu kısmen çözer, ancak bir dizin listesi sırasında hangi dosyaların atlanması gerektiğini kaydetmek için bellek gerektirir (aksi takdirde neredeyse durumsuz bir işlemdir).[5]
  • Silme özel destek gerektirir: Sendika müdürü kurucularının birçoğunda aynı adı taşıyan dosyalar mevcutsa, basitçe onu kurucuların birinden silmek, onun yerine diğerlerinden bir dosyanın yeniden görünmesine neden olur.[5]
  • Yığına bir dizinin eklenmesi, dosyada tutarsızlığa neden olabilir. çekirdek dosya adı önbelleği.[5]
  • Tek bağlı dosya sistemi içindeki bir dosyayı yeniden adlandırma ( Adını değiştirmek sistem çağrısı) bir atomik operasyon, ancak bir birleşim bağlantısı içinde yeniden adlandırma, sendikanın birden çok kurucu dizininde değişiklik yapılmasını gerektirebilir. Olası bir çözüm, izin vermemek Adını değiştirmek bu gibi durumlarda ve bunun yerine uygulamaların kopyalayıp silmelerini gerektirir.[2]
  • Kararlı dosya numarası dosyalar için numaralar, sabit bağlantılar ve bellek eşlemeli G / Ç (mmap) doğru şekilde uygulamak zordur.[2]

Unix dosya sistemlerine birleşim eklemeye yönelik erken girişimler 3 boyutlu dosya sistemini içeriyordu (Bell Laboratuvarları ) ve Yarı Saydam Dosya Hizmeti SunOS (Sun Microsystems, 1988[2]). Sürümde Unix'in BSD sürümüne birleşim montajı uygulaması eklendi 4.4 (1994), bu önceki girişimlerden ilham alarak Plan 9 ve istiflenebilir dosya sistemleri İlkbahar (Güneş, 1994).[1] 4.4 BSD, yukarıda özetlenen dizin yığını yaklaşımını uygular. Plan 9'da olduğu gibi, işlemler adları çözümlemek için bu yığını yukarıdan aşağıya hareket ettirir, ancak Plan 9'dan farklı olarak, BSD birleşim bağlantıları yinelemelidir, böylece alt dizinlerin içerikleri birleşim dizininde birleştirilmiş görünür. Ayrıca Plan 9 sürümünden farklı olarak, üst kısım hariç tüm katmanlar salt okunurdur: birleşimdeki dosyaları değiştirmek, içeriklerinin önce değişikliklerin uygulandığı yığının en üst katmanına kopyalanmasına neden olur. Dosyaların silinmesi, bir özel dosya türü deniliyor beyazlaşma dosya adını var olmayan olarak işaretleme ve yığının alt katmanlarında aynı ada sahip dosyaları gizleme etkisine sahip olan üst dizine.[1] Whiteout, temeldeki dosya sisteminden destek gerektirir.[4]

Linux

Birlik bağlama 1993'te Linux 0.99 için uygulandı; bu ilk uygulamaya Devralan Dosya Sistemi adı verildi, ancak karmaşıklığı nedeniyle geliştiricisi tarafından terk edildi.[2] Bir sonraki büyük uygulama UnionFS, ortaya çıkan Yumruk proje Stony Brook Üniversitesi.[6][5] UnionFS'yi değiştirme girişimi, aufs 2006'da piyasaya sürüldü, ardından 2009'da OverlayFS.[2] 2014 yılında OverlayFS standarda birleşim montajı uygulaması eklendi Linux çekirdeği kaynak kodu.[7]

Benzer şekilde, GlusterFS aynı makineye yerleştirilmek yerine bir ağ üzerinden dağıtılan farklı dosya sistemlerini bağlama yeteneği sunar.[8]

Referanslar

  1. ^ a b c d Pendry Jan-Simon; Marshall Kirk McKusick (Aralık 1995). "4.4BSD-Lite'ta Union Mounts". USENIX Teknik Konferansı UNIX ve Gelişmiş Hesaplama Sistemleri Bildirileri: 25–33. Alındı 25 Kasım 2007.
  2. ^ a b c d e f Aurora, Valerie; Henson (Mart 2009). "Dosya sistemlerini birleştirmek: Mimari, özellikler ve tasarım seçenekleri". lwn.net. Alındı 21 Aralık 2009.
  3. ^ Pike, R.; Presotto, D .; Thompson, K .; Trickey, H .; Winterbottom, P. "Plan 9'da İsim Alanlarının Kullanımı". Rastgele Muhalif İsyan Örgütü web sitesi cat-v.org. Bell Laboratuvarları. Alındı 27 Ekim 2016.
  4. ^ a b c Aurora, Valerie; Henson (Mart 2009). "Union dosya sistemleri: Uygulamalar, bölüm I". lwn.net. Alındı 21 Aralık 2009.
  5. ^ a b c d e Wright, Charles P .; Jay Dave; Puja Gupta; Harikesavan Krishnan; Erez Zadok; Mohammad Nayyer Zubair. "Fan-Out Birleştirme Dosya Sisteminde Çok Yönlülük ve Unix Semantiği". Stony Brook Üniversitesi Teknik Raporu FSL-04-01b. Alındı 25 Kasım 2007.
  6. ^ Aurora, Valerie; Henson (Nisan 2009). "Dosya sistemlerini birleştirmek: Uygulamalar, bölüm 2". lwn.net. Alındı 21 Aralık 2009.
  7. ^ Larabel, Michael (29 Eylül 2014). "Linux 3.18 Çekirdeği İçin Önerilen OverlayFS". Phoronix.com. Alındı 12 Ekim 2015.
  8. ^ "GlusterFS Hakkında". Kasım 2009. Alındı 4 Mart 2013. Alıntı dergisi gerektirir | günlük = (Yardım)