Inotify - Inotify

Inotify (dosya numarası bildirmek) bir Linux çekirdeği genişletmek için hareket eden alt sistem dosya sistemleri dosya sistemindeki değişiklikleri fark etmek ve bu değişiklikleri uygulamalara bildirmek için. Daha önceki bir tesisin yerini alır, bildirmek, benzer hedefleri olan.

Inotify, tarafından oluşturuldu John McCutchan,[1] ve birleştirildi Linux çekirdek ana hattı 29 Ağustos 2005 tarihinde piyasaya sürülen 2.6.13 çekirdek sürümünde;[2] sonraki çekirdek sürümleri daha fazla iyileştirme içeriyordu. Gerekli kütüphane arayüzleri, GNU C Kitaplığı (glibc), Mart 2006'da yayınlanan 2.4 sürümünde, inotify desteği ise Eylül 2006'da yayınlanan glibc sürüm 2.5'te tamamlandı.[3]

Inotify, dizin görünümlerini otomatik olarak güncellemek, yapılandırma dosyalarını yeniden yüklemek, değişiklikleri günlüğe kaydetmek, yedeklemek, senkronize etmek ve karşıya yüklemek için kullanılabilir. Inotifywait ve inotifywatch komutları, komut satırından inotify alt sisteminin kullanılmasına izin verir. [4]

Önemli bir kullanım masaüstü araması gibi araçlar Beagle, işlevselliğinin izin verdiği yerlerde yeniden dizin oluşturma Dosya sistemini birkaç dakikada bir taramadan değiştirilen dosyaları değiştirir, ki bu çok verimsiz olur.

Sınırlamalar

İnotify tarafından uygulanan sınırlamalar şunları içerir:

  • Inotify, dizinlerin yinelemeli olarak izlenmesini desteklemez; bu, her alt dizin için ayrı bir inotify saatinin oluşturulması gerektiği anlamına gelir.[5]
  • Inotify, içindeki olayların tümünü değil bazılarını rapor ediyor sysfs ve procfs.
  • İnotify yoluyla bildirim, çekirdeğin tüm ilgili dosya sistemi olaylarından haberdar olmasını gerektirir; bu, ağa bağlı dosya sistemleri için her zaman mümkün değildir. NFS bir müşteri tarafından yapılan değişikliklerin diğer istemcilere hemen yayınlanmadığı durumlarda.
  • Yeniden adlandırma olayları doğrudan işlenmez; yani, potansiyel yarış koşulları bağlamında incelenmesi ve eşleştirilmesi gereken iki ayrı olayı bildiriniz.

Tarih

  • Temmuz 2004: ilk sürüm duyurusu[1]
  • 29 Ağustos 2005: Birleştirilmiş inotify kodunu içeren 2.6.13 Linux çekirdeği sürümü yayınlandı[2]
  • Mart 2006: GNU C Library (glibc) 2.4 sürümü yayınlandı ve ilk inotify desteğini getirdi[3]
  • Eylül 2006: Glibc sürüm 2.5 yayınlandı ve eksiksiz inotify desteği getiriyor[3]

Dnotify'a göre avantajları

Eski modele kıyasla inotify kullanmanın bir takım avantajları vardır. bildirmek Değiştirildiği API.[6][7][8] Dnotify ile, bir programın bir dosya tanımlayıcı izlediği her dizin için. İşlem başına dosya tanımlayıcı sınırına ulaşılabildiğinden, bu bir darboğaz haline gelebilir. Daha sonra bu sorunun üstesinden gelmek için fanotify oluşturuldu. Dnotify ile birlikte dosya tanımlayıcılarının kullanılması da çıkarılabilir medya kullanırken bir sorun olduğunu kanıtladı. Dosya tanımlayıcıları kaynağı meşgul tuttuğu için cihazların bağlantısı kesilemedi.

Dnotify'ın diğer bir dezavantajı, programcılar değişiklikleri yalnızca dizin düzeyinde izleyebildikleri için, ayrıntı düzeyidir. Bir bildirim mesajı gönderildiğinde meydana gelen çevresel değişiklikler hakkında ayrıntılı bilgiye erişmek için bir stat yapısı kullanılmalıdır; Bu, oluşturulan her yeni istatistik yapısı için, önbelleğe alınmış olanla bir karşılaştırma çalıştırıldığı için, stat yapılarının bir önbelleğinin muhafaza edilmesi gerektiğinden, gerekli bir kötülük olarak kabul edilir.

İnotify API, daha az dosya tanımlayıcısı kullanır ve programcıların, tarafından kullanılan sinyal bildirim sistemi yerine yerleşik seçme ve anket arayüzünü kullanmalarına olanak tanır. bildirmek. Bu aynı zamanda mevcut seçme veya anket tabanlı kitaplıklarla (ör. GLib ) Daha kolay.

Ayrıca bakınız

Referanslar

  1. ^ a b "fa.linux.kernel post [RFC] [PATCH] inotify 0.8". 2004-07-29. Alındı 2013-08-19.
  2. ^ a b Linux 2.6.13, kernelnewbies.org
  3. ^ a b c man sayfasını inotify
  4. ^ inotify-tools wiki
  5. ^ Robert Love, Linux sistem programlama. O'Reilly, s. 236
  6. ^ Michael Kerrisk (14 Temmuz 2014). "Dosya sistemi bildirimi, 2. bölüm: Daha ayrıntılı bir inotify incelemesi". LWN.net.
  7. ^ Neden inotify? Arşivlendi 2010-01-16'da Wayback Makinesi
  8. ^ README dosyasını inotify

Dış bağlantılar