Meta Verilerde Karışıklık | İsimli Çatallar | Genişletilmiş Özellikler | Kaynak Çatalı - HFS +


10

Web'de dağılmış olan bu öğelerin dördü arasındaki ilişki hakkında genel bir karışıklık olduğunu düşünüyorum. Bunu düzeltmek istedim.

  1. Are çatallar adında aynı uzantı nitelikleri ? Değilse, genişletilmiş özellikler nelerdir?
  2. Is kaynak çatalı yine bir çatal veya bir olarak uygulanır uzatılmış öznitelik ? Başka bir şekilde uygulanırsa, nasıl?
  3. Meta bir dosya ile saklanır (yaratıcısı, değiştirildiği tarih ...) orada bahsedilen diğer üçü arasında terminolojisinde herhangi bir ilişki veya örtüşme olduğunu. Bir örnek, genişletilmiş özellikler sadece bir dosyada depolanan ekstra meta veri çiftleri (anahtar + değer) olabilir .

Bunların dördünün birbiriyle nasıl ilişkili olduğunu açıklığa kavuşturabilecek her türlü cevap, özellikle üç soru ile ilgili olarak büyük beğeni toplayacak ve farklı kaynaklarda meydana geldiğini gördüğüm uyuşmazlıkların çözümüne katkıda bulunacaktır.


HFS Plus hakkında bilgi edinmek için : fileXray Kullanıcı Kılavuzu ve Referans (PDF, 1.8 MB, 173 sayfa) çok kullanışlıdır. Ben fileXray kullanıcısıyım . Ayrıca: Teknik Not TN1150: HFS Plus Birim Biçimi , Apple tarafından kullanımdan kaldırılmıştır, ancak yine de birçok amaç için yararlıdır.
Graham Perrin

Yanıtlar:


5

Karışıklık, bu kavramlar arasındaki ilişkinin karmaşık olması ve zamanla değişmesinden kaynaklanmaktadır. Mevcut sistemlerde, adlandırılmış bir çatal ile genişletilmiş bir öznitelik arasındaki fark büyük ölçüde akademiktir.

Genişletilmiş bir öznitelik için, gerçek veriler öznitelik veri kaydında saklanır.

Bir çatal için depolanan, verileri içeren disk ayırma bloklarının listesidir. Bir kaynak çatalı hala bir çataldır.

Temel dosya sistemi meta verileri, özniteliklerden ve adlandırılan çatal referanslarından bağımsız olarak, dosya sistemi kaydının kendisinin ayrılmış öğelerinde saklanır.


1
Ancak genişletilmiş bir öznitelik aslında kendi çatalı olarak mı saklanır yoksa genişletilmiş öznitelikler için bir çatal var mı? OSX'in en son sürümünde nasıl bir ilişki var?
rubixibuc

1
Anlamıyorum, öznitelik dediğinde u "genişletilmiş öznitelik" demek. Öyleyse öznitelik kaydı nerede tutulur. HFS + dosya sistemi yapısının bir parçası olarak mı yoksa bir çeşit veritabanında mı depolanıyor? Lütfen ilk yoruma olabildiğince yanıt verin.
rubixibuc

2
Afedersiniz. Burada sık sık bulunmuyorum ve buraya gelene kadar takip sorularınızı görmedim. Genişletilmiş öznitelik adlandırılmış bir çataldır. Özniteliği "genişletilmiş öznitelik" için kısayol olarak kullanıyordum. Öznitelik kayıtları , dosya sisteminin öznitelik ağacı adı verilen özel bir bölümünde tutulur. Bunu bir veritabanı biçimi olarak düşünebilirsiniz. Her bir özelliğe ilişkin veriler , ne kadar büyük olduğuna bağlı olarak o ağaçta olabilir veya olmayabilir.
GregW

"... dosya sistemi meta adanmış unsurları depolanan dosya sistemi ... kaydının" - yerine, muhtemelen derdim "... dosya meta için kaydın özel unsurları saklanır dosyası ..."
Graham Perrin

Belki iken bu değer bir şey com.apple.FinderInfouzatılmış öznitelik olarak görünebilir Genişletilmiş Bulucu Bilgisi (tipik date_added, extended_flagsartı üç ayrılmış alanlar) 'dir değil genişletilmiş özellik.
Graham Perrin

2

Bu konuda uzman değilim, ama neler olduğunu anlamaya çalışmak için biraz okudum.

"Karışıklık şu gerçeği doğurur:

  • bu kavramlar arasındaki ilişki karmaşıktır ve
  • zaman içinde değişti ve
  • Apple hem program düzeyinde API'ler uyguladı ve ls veya cp gibi araçlar kavramlar arasındaki farkların çoğunu gizleyecek bir yol. "

AIUI, HFS + Katalog dosyası Katalog Dosya Kayıtlarını içerir (diğer şeylerin yanı sıra). Katalog Dosya Kaydı, dosya oluşturma tarihi, erişim tarihi vb. Gibi normal bilgi türlerini içerir. Katalog Dosya Kaydı ayrıca veri çatalı ve kaynak çatalı konumu ve boyutu hakkında bilgi veren iki yapı içerir.

AIUI, HFS + 'da (Wikipedia HFS +' dan kopyalanmıştır) HFS Plus'ta HFS'de karşılık gelen bir yapıya sahip olmayan yeni bir B-ağacı olan “Öznitelikler Dosyası [vardır] Öznitelikler Dosyasında üç farklı 4 KB kaydı depolanabilir: Satır İçi Veri Özniteliği kayıtları, Çatal Veri Özniteliği kayıtları ve Uzantı Özniteliği kayıtları: Satır İçi Veri Özniteliği kayıtları kaydın kendisine sığabilecek küçük öznitelikleri depolar Çatal Veri Özniteliği kayıtları, daha büyük özniteliklere sahip olabilecek en fazla sekiz uzantıya başvurular içerir. sekiz derecelik kayıtları zaten kullanıldığında bir Fork Data Attribute kaydını genişletmek için kullanılır. "

AIUI, Öznitelikler Dosyasında (satır içi, Çatal Verileri veya Uzantı Öznitelikleri) depolanan (veya bunlardan referans alınan) veriler Genişletilmiş Öznitelikler olarak bilinir.

Bunlar veri yapıları, peki nasıl kullanılıyor?

AIUI, işletim sisteminin ilk sürümleri (muhtemelen John Siracusa'nın bu alanda bazı büyük değişiklikler olduğunu belirttiği 10.4 Tiger'dan önceki sürümler ), veri çatalı ve Katalog dosyasından kaynak çatalı işaret etti.

AIUI, 10.4 Tiger'a ulaştığımızda, Nitelikler Dosyası her türlü veriyi depolamak için yaygın olarak kullanılır.

10.4 ve sonrasında herhangi bir Kaynak Çatalı Öznitelikler Dosyasından işaret etmek mümkündür (ama bilmiyorum). Yani ilk sorunuza yanıt olarak, Kaynak Çatal olmadıkça ve Kaynak Çatal'a Katalog dosyasından referans verilmediği sürece adlandırılmış çatalların Genişletilmiş Özellikler olduğunu söyleyebilirim.

İşlerin nasıl uygulandığını bilmedeki sorun, geriye dönük uyumluluğu korumak ve muhtemelen özellikle Mac OS'un bir sürümü tarafından başka bir sürümden yazılan dosya sistemlerine erişimi desteklemek için, farklı şeylerin ve karışımların şeffaf bir şekilde desteklenmesi gerektiğidir.

Verilerin gerçekte nerede tutulduğunu normal Terminal komut satırı araçlarından anlatamayız.

Bu nedenle, erişim rsrc, Katalog dosyasındaki Kaynak Çatal'a erişildiğini gösterebilir.

$ ls -l Icon^M/rsrc
-rwxr-xr-x  1 root  admin  486 23 Jul  2004 Icon?/rsrc

Ancak, sözdiziminin Icon^Mdizinin altındaki bir dosyaya erişilmesine rağmen, durumun gerçekte böyle olmadığını biliyoruz , çünkü

$ ls -lR Icon^M
-rwxr-xr-x@ 1 root  admin  0 23 Jul  2004 Icon?

Apple, Kaynak Çatalları için özel bir durum uyguladı.

Eğer yerine

$ ls -l@
-rwxr-xr-x@ 1 root  admin   0 23 Jul  2004 Icon?
    com.apple.FinderInfo    32 
    com.apple.ResourceFork  486 

Bu, Nitelikler Dosyasına eriştiğimizi gösterir. Ancak yine, lsKaynak Çatalları için özel bir durum söz konusu olabilir.

John Siracusa işaret buraya ACL listeler 'Genişletilmiş Özellikler' olarak saklanır, ancak bunlar gösterilmez böylece özel olarak dışarı maskeli olduğunu xattr. Yani yine xattr uygulamasında özel durum işleme var.

(Bu özel durum işlemenin, aracın kodunda veya araçların eriştiği temel API'lerin kodunda olabileceğini unutmayın.)

GregW, bunu görürseniz, doğru çizgide olup olmadığım veya sadece umutsuzca karıştığım konusunda daha uzman bir fikir edinmek güzel olurdu.


Burada da bir tartışma var , ama 'jonsview'ın çok yardımcı olduğunu düşünmüyorum.
Tim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.