Linux'un desteklediği dosya sistemlerinin tüm özelliklerine erişmek için sistem çağrıları var mı?


12

Linux birçok dosya sistemini destekler (örneğin: ext3, NTFS, FAT32, vb.).

Aşağıdaki şema Linux'un bir işlemin dosyalara nasıl erişmesine izin verdiğini göstermektedir:

resim açıklamasını buraya girin

Bu nedenle read(), bir dosyayı okumak için sistem çağrısı adı verilen bir işlemin , VFS katmanına erişileceği ve VFS katmanının dosyanın hangi bölümün dosya sistemine bağlı olarak hangi dosya sistemi sürücüsüne erişeceğine karar vereceğini varsayalım okunacak yer.

Linux (örneğin: erişim dosyalarına birçok sistem çağrıları sağlar read(), write(), rename()vb.)

Şimdi read()ve write()ve rename()Linux desteklerin tüm dosya sistemleri üzerinde çalışır.

Ancak, yalnızca bazı dosya sistemlerinde, bazılarında bulunmayan belirli özellikler vardır. Örneğin: bir NTFS dosya sisteminde, bir dosya için Arşiv bitini ayarlayabilirsiniz , ancak bu bir ext3 dosya sisteminde gerçekleştirilemez.

Şimdi sorum şu: Linux'un desteklediği dosya sistemlerinin tüm özelliklerine erişmek için sistem çağrıları var mı? örneğin: Linux'ta NTFS dosya sistemindeki bir dosyanın Arşiv bitini ayarlamak için sistem çağrısı var mı?

Yanıtlar:


10

Linux bir NTFS dosya sistemindeki bir dosya için Arşiv biti ayarlamak için sistem çağrısı var mı?

Bu özel durumda, ntfs-3gsürücü dosya özniteliklerini genişletilmiş öznitelikler aracılığıyla dışa aktarır , bkz . Linux'ta NTFS'deki bir dosyada "Arşiv" bitini ayarlayabilir miyim?

(V) FAT dosya sistemi benzer dosya özniteliklerine sahiptir, ancak ioctl()bunlara erişmek için bir işlev kullanır , bkz ioctl_fat(2). ( ioctl()gerçek bir sistem çağrısı gerektirmeyen cihaza özgü her tür şey için kullanılan bir çeşit çok amaçlı sistem çağrısıdır.)

Şimdi sorum şu: Linux'un desteklediği dosya sistemlerinin tüm özelliklerine erişmek için sistem çağrıları var mı?

Bu cevap vermek zor kesin ama karşısındaki en az bir örnek olmuştur. ext4 dahili olarak dosyalar için "doğum zamanı" zaman damgasını destekler ( ctimeinode modifikasyonundaki değişikliklerin aksine , gerçek bir oluşturma zamanı gibi ). Ancak ext4 "standart" dosya sistemi olmasına rağmen, uzun bir süre doğum zamanına erişmek için sistem çağrısı yoktu.

Şimdi desteklenmeli , Nisan 2017'de Linux 4.11'de statx()sistem çağrısı eklendi .

İlişkili:


3
ntfs! = yağ. En azından ntfs'in çekirdek sürümünün, arşiv bayrağını ayarlamak veya almak için herhangi bir yolu YOKTUR; Sadece sigorta tabanlı ntfs-3g bunu destekliyor gibi görünüyor (özel ioctls değil, genişletilmiş özniteliklerle).
Billy Amca

Bu doğrudan soru ile ilgili değildir, ancak bahsettiğiniz bir tamamlayıcı olarak, statxşimdi C kütüphanesinde ve birkaç gün önce yayınlanan coreutils'in en son sürümünde desteklenmektedir.
Stephen Kitt

@UncleBilly, d'oh, görünüşe göre okuyamıyorum, ama sadece otomatik olarak (v) yağ düşündüm. Bunu fark ettiğiniz için teşekkürler, daha uygun bir referans bulabilir miyim göreceğim.
ilkkachu
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.