Unix dosya sistemi - Unix filesystem

Sürüm 7 Unix dosya sistemi düzeni: "/" ve "/ usr" alt dizinleri
Bir genel bakış Unix dosya sistemi düzeni

İçinde Unix ve işletim sistemleri ondan esinlenerek, dosya sistemi işletim sisteminin merkezi bir bileşeni olarak kabul edilir.[1] Aynı zamanda sistem tarafından tasarlanıp uygulanacak ilk kısımlardan biriydi. Ken Thompson Unix'in ilk deneysel sürümünde, 1969 tarihli.[2]

Diğer işletim sistemlerinde olduğu gibi, dosya sistemi bilgi depolama ve erişim sağlar ve çeşitli biçimlerden birini sağlar. arası iletişim, geleneksel olarak bir Unix sistemi oluşturan birçok küçük program, bilgileri dosyalarda saklayabilir, böylece diğer programlar bunları okuyabilir. borular ile başlayarak bu rolde tamamladı Üçüncü baskı. Ayrıca, dosya sistemi sözde aracılığıyla diğer kaynaklara erişim sağlar. cihaz dosyaları giriş noktaları olan terminaller, yazıcılar, ve fareler.

Bu makalenin geri kalanı, Unix olarak Genel isim hem orijinal Unix işletim sistemine hem de birçok Workalikes.

Prensipler

Dosya sistemi tek bir köklü ağaç dizinler.[1] Gibi ayrı ciltleri ele almak yerine disk bölümleri, çıkarılabilir medya ve ağ paylaşımları ayrı ağaçlar olarak (yapıldığı gibi DOS ve pencereler: her biri sürücü dosya sistemi ağacının kökünü belirten bir sürücü harfine sahiptir), bu tür birimler monte Bu, birimin dosya sistemi ağacının daha büyük ağaçta bu dizin olarak görünmesine neden olur.[1] Ağacın tamamının kökü gösterilir /.

Orjinalinde Bell Labs Unix ilk diskin başlangıç ​​programlarını içerdiği, ikincisi ise kullanıcıların dosyalarını ve programlarını içerdiği iki diskli bir kurulum alışılmış bir şeydi. Bu ikinci disk, adlı boş dizine monte edildi usr ilk diskte, iki diskin tek bir dosya sistemi olarak görünmesine neden olurken, ikinci diskin içeriği de görüntülenebilir / usr.

Unix dizinleri, içeren Dosyalar. Bunun yerine, sözde referanslarla eşleştirilmiş dosyaların adlarını içerirler. düğümler, hem dosyayı hem de meta veriler (sahip, izinler, son erişim zamanı, vs., ancak isim yok). Dosya sistemindeki birden fazla ad aynı dosyaya atıfta bulunabilir, bu özellik sabit bağlantı.[1] Sabit bağlantıların matematiksel özellikleri, dosya sistemini sınırlı bir tür Yönlendirilmiş döngüsüz grafiği, rağmen dizinler yine de bir ağaç oluştururlar, çünkü bunlar tipik olarak sabit bağlantılı olmayabilirler. (Başlangıçta 1969'da öngörüldüğü gibi, Unix dosya sistemi aslında yol adları yerine gezinme sağlayan dizinlere sabit bağlantılar içeren genel bir grafik olarak kullanılacaktır.[2])

Dosya türleri

Orijinal Unix dosya sistemi üç tür dosyayı destekledi: sıradan dosyalar, dizinler ve "özel dosyalar" da aygıt dosyaları olarak adlandırılır.[1] Berkeley Yazılım Dağıtımı (BSD) ve Sistem V her biri için kullanılacak bir dosya türü ekledi arası iletişim: BSD eklendi prizler,[3] System V eklenirken FIFO dosyaları.

BSD ayrıca eklendi sembolik bağlar (genellikle "sembolik bağlar" olarak adlandırılır), diğer dosyalara atıfta bulunan ve sabit bağları tamamlayan dosyalar olan dosya türleri aralığına.[3] Sembolik bağlantılar, benzer bir özellikten sonra modellenmiştir. Multics,[4] dosya sistemlerine yayılabilmeleri ve varoluşlarının hedef nesneden bağımsız olması açısından sabit bağlantılardan farklıdır. Diğer Unix sistemleri, ek dosya türlerini destekleyebilir.[5]

Geleneksel dizin düzeni

Programlar, sistem yapılandırma dosyaları ve kullanıcılar gibi bazı dosya türlerini bulmak için belirli kurallar mevcuttur. ev dizinleri. Bunlar ilk olarak hier (7) man sayfası dan beri Sürüm 7 Unix;[6] sonraki sürümler, türevler ve klonlar tipik olarak benzer bir kılavuz sayfasına sahiptir.[7][8][9][10][11][12]

Dizin düzeninin ayrıntıları zaman içinde değişmiştir. Dosya sistemi düzeni, Tek UNIX Belirtimi standartlaştırmak için (bazı kısımlarını) standartlaştırmak için çeşitli girişimler vardır, örneğin Sistem V Uygulama İkili Arayüzü, Intel İkili Uyumluluk Standardı, Ortak İşletim Sistemi Ortamı ve Linux Vakfı 's Dosya Sistemi Hiyerarşisi Standardı (FHS).[13]

Unix işletim sistemindeki dosyaların ortak konumlarına genel bir bakış:

Dizin veya dosyaAçıklama
/Eğik çizgi / karakter tek başına dosya sistemi ağacının kökünü belirtir.
/çöp Kutusu
Anlamına gelir ikili dosyalar ve aşağıdakiler gibi belirli temel yardımcı programları içerir: ls veya cp, monte etmek için gerekli / usr, bu ayrı bir dosya sistemi olduğunda veya tek kullanıcılı (yönetici) modda çalıştırıldığında / usr monte edilemez. Sistem V.4'te, bu bir sembolik bağlantıdır / usr / bin. Aksi takdirde, kök dosya sisteminde olması gerekir.
/çizme
Başarılı önyükleme işlemi için gerekli tüm dosyaları içerir. İçinde Araştırma Unix, bu bir dizin yerine bir dosyaydı.[14] Sistem, önyükleyici vb. Aksini gerektirmedikçe, günümüzde genellikle kök dosya sistemi üzerindedir.
/ dev
Anlamına gelir cihazlar. İçerir dosya sunumları çevresel cihazların ve sözde cihazlar. Ayrıca bakınız: Linux Tarafından Atanan Adlar ve Numaralar Yetkilisi. Kök dosya sisteminin kendisinde olması gerekir.
/vb
Sistem genelinde yapılandırma dosyalarını ve sistem veritabanlarını içerir; isim anlamına gelir ve benzeri.[14] Başlangıçta ayrıca "tehlikeli bakım araçları" içeriyordu. içinde,[6] ancak bunlar tipik olarak şu adrese taşınmıştır: / sbin veya başka bir yerde. Kök dosya sisteminin kendisinde olması gerekir.
/ev
Linux ve diğer bazı sistemlerde kullanıcı ana dizinlerini içerir. Unix'in orijinal sürümünde, ana dizinler / usr yerine.[15] Bazı sistemler hala farklı konumları kullanıyor veya kullanmıştır: Mac os işletim sistemi içinde ev dizinleri var /Kullanıcılar, BSD'nin eski sürümleri bunları / u, FreeBSD vardır / usr / ev.
/ lib
Aslında temel kütüphaneler: C kütüphaneler, ama değil Fortran olanlar.[14] Modern sistemlerde, programların ihtiyaç duyduğu paylaşılan kütüphaneleri içerir. /çöp Kutusuve muhtemelen yüklenebilir çekirdek modülü veya aygıt sürücüleri. Linux dağıtımlarının çeşitleri olabilir / lib32 ve / lib64 çoklu mimari desteği için.
/ media
USB bellekler, medya oynatıcılar, vb. Gibi çıkarılabilir aygıtlar için varsayılan bağlama noktası. Sağduyu ile, alt dizinleri bağlantı noktaları olan dizinin kendisi kök bölümün kendisidir.
/ mnt
Anlamına gelir binmek. Sistem yöneticileri tarafından yaygın olarak geçici bir bağlama noktası olarak kullanılan boş dizin. Sağduyu ile, alt dizinleri bağlama noktaları olan dizinin kendisi kök bölümün kendisidir.
/ opt
Yerel olarak yüklenmiş yazılımı içerir. Menşei Sistem V olan Paketleme yöneticisi yazılımı bu dizine yükler (paket başına bir alt dizin).[16]
/ proc
procfs gerçek dosya sistemi hakkında bilgi gösteriliyor süreçler dosyalar olarak.
/kök
Ana dizini süper kullanıcı kök - yani, sistem yöneticisi. Bu hesabın ana dizini genellikle ilk dosya sistemindedir ve bu nedenle, diğer dosya sistemlerinin kullanılamadığı özel bakımın gerçekleştirilmesi gerektiğinde / home içinde (başka bir dosya sistemi için bir bağlama noktası olabilir) değildir. Böyle bir durum, örneğin, bir sabit disk sürücüsü fiziksel arızalara maruz kalırsa ve doğru şekilde takılamazsa ortaya çıkabilir. Geleneksel olarak, bu dizin kök bölümün kendisidir; her durumda, öyle değil * / home / root veya benzeri bir şeye bağlantı.
/ sbin
"sistem (veya süper kullanıcı) ikili dosyaları "ve aşağıdakiler gibi temel yardımcı programları içerir: içinde, genellikle sistemi başlatmak, sürdürmek ve kurtarmak için gereklidir. Kök bölümün kendisinde olması gerekir.
/ srv
Sunucu verileri (sistem tarafından sağlanan hizmetler için veriler).
/ sys
Bazılarında Linux dağıtımları, içerir sysfs gerçek dosya sistemi, donanım ve işletim sistemiyle ilgili bilgileri içerir. BSD sistemlerinde, genellikle içindeki çekirdek kaynaklarına bir sembolik bağlantı / usr / src / sys.
/ tmp
Yeniden başlatma sırasında hayatta kalması beklenmeyen geçici dosyalar için bir yer. Birçok sistem, başlangıçta veya kullanımda bu dizini temizler tmpfs uygulamak için.
/ unix
Unix çekirdek Araştırma Unix'te ve Sistem V.[14] Eklenmesi ile sanal bellek desteklemek 3BSD, bu yeniden adlandırıldı / vmunix.
/ usr
"Kullanıcı dosya sistemi": başlangıçta kullanıcı ev dizinlerini tutan dizin,[15] ama zaten Üçüncü Sürümü tarafından Araştırma Unix, CA. 1973, işletim sisteminin programlarını iki diske (bunlardan biri 256K sabit kafalı sürücü) bölmek için yeniden kullanıldı, böylece temel komutlar ya /çöp Kutusu veya / usr / bin.[17] Artık sistem açısından kritik olmayan yürütülebilir dosyaları, kitaplıkları ve paylaşılan kaynakları barındırır. X Pencere Sistemi, KDE, Perl, vb. Eski Unix sistemlerinde, kullanıcı ana dizinleri hala / usr programları içeren dizinlerin yanı sıra, 1984 yılına kadar bu, yerel gelenekler.[14]
/Dahil etmek
Sistem genelinde kullanılan geliştirme başlıklarını depolar. Üstbilgi dosyaları çoğunlukla ... tarafından kullanılmaktadır #Dahil etmek direktif C dil, tarihsel olarak bu dizinin adı nasıl seçildi.
/ lib
İçinde depolanan programlar için gerekli kitaplıkları ve veri dosyalarını depolar / usr veya başka bir yerde.
/ libexec
Doğrudan kullanıcılar yerine başka programlar tarafından yürütülmesi amaçlanan programları tutar. Ör. Posta göndermek yürütülebilir dosya bu dizinde bulunabilir.[18] 2011 yılına kadar FHS'de mevcut değil;[19] Linux dağıtımları geleneksel olarak bu dizinin içeriğini / usr / lib4.3BSD'de de ikamet ettikleri yer.
/yerel
Benzer / usr yapısında, ancak alt dizinleri, işletim sistemi dağıtımının parçası olmayan eklemeler için kullanılır, örneğin özel programlar veya bir BSD Bağlantı noktaları koleksiyonu. Genellikle aşağıdaki gibi alt dizinlere sahiptir: / usr / local / lib veya / usr / local / bin.
/Paylaş
Mimariden bağımsız program verileri. Linux ve modern BSD türevlerinde, bu dizinin aşağıdaki gibi alt dizinleri vardır: adam için yönetme sayfaları, doğrudan altında görünen / usr eski versiyonlarda.
/ var
Anlamına gelir değişken. Özellikle boyut olarak sıkça değişebilen dosyalar için bir yer, örneğin sistemdeki kullanıcılara gönderilen e-posta veya işlem kimliği dosyaları kilitle.
/ log
Sistem günlük dosyalarını içerir.
/posta
Tüm gelen postaların depolandığı yer. Kullanıcılar (dışında kök) yalnızca kendi postalarına erişebilir. Genellikle bu dizin bir sembolik bağlantı -e / var / spool / mail.
/ biriktirmek
Biriktirme dizin. Yazdırma işlerini, posta kuyruklarını ve diğer sıraya alınmış görevleri içerir.
/ src
Bazı programların derlenmemiş kaynak kodunun bulunduğu yer.
/ tmp
/ var / tmp dizin, sistemin yeniden başlatılması arasında korunması gereken geçici dosyalar için bir yerdir.

Ayrıca bakınız

Referanslar

  • Bu makale, Citizendium makale "Unix dosya sistemi ", altında lisanslı olan Creative Commons Attribution-ShareAlike 3.0 Unported Lisansı ama altında değil GFDL.
  1. ^ a b c d e Ritchie, D.M.; Thompson, K. (Temmuz 1978). "UNIX Zaman Paylaşım Sistemi". Bell System Tech. J. 57 (6): 1905–1929. CiteSeerX  10.1.1.112.595. doi:10.1002 / j.1538-7305.1978.tb02136.x.
  2. ^ a b Ritchie, Dennis M. (1979). Unix Zaman Paylaşım Sisteminin Evrimi. Dil Tasarımı ve Programlama Metodolojisi Konf.
  3. ^ a b Leffler, Samuel J.; McKusick, Marshall Kirk; Karels, Michael J.; Çeyrek Adam, John S. (Ekim 1989). 4.3BSD UNIX İşletim Sisteminin Tasarımı ve Uygulanması. Addison-Wesley. ISBN  978-0-201-06196-3.
  4. ^ McKusick, Marshall Kirk; et al. "Unix için Hızlı Dosya Sistemi" (PDF). Freebsd.org. CSRG, UC Berkeley. Alındı 16 Kasım 2016.
  5. ^ stat (2) – Linux Programcı Manuel - Sistem Çağrıları
  6. ^ a b hier (7) – Sürüm 7 Unix Programcı Manuel
  7. ^ hier (7) – FreeBSD çeşitli bilgiler Manuel
  8. ^ hier (7) – OpenBSD çeşitli bilgiler Manuel
  9. ^ "2.9.1 BSD için hier (7) kılavuz sayfası".
  10. ^ "ULTRIX 4.2 için hier (7) kılavuz sayfası".
  11. ^ "SunOS 4.1.3 için hier (7) kılavuz sayfası".
  12. ^ hier (7) – Linux Programcı Manuel - Genel Bakış, Kurallar ve Çeşitli
  13. ^ George Kraft IV (1 Kasım 2000). "Ürünlerimi Linux'ta Nereye Yükleyebilirim?". Linux Journal. Alındı 13 Kasım 2014.
  14. ^ a b c d e Kernighan, Brian W.; Pike, Rob (1984). UNIX Programlama Ortamı. Prentice-Hall. pp.63–65. Bibcode:1984upe..kitap ..... K.
  15. ^ a b Ritchie, Dennis. "1972'den Unix Notları". Alındı 14 Ocak 2018.
  16. ^ System V Uygulama İkili Arayüzü Sürüm 4.1 (1997-03-18)
  17. ^ M. D. McIlroy (1987). Bir Araştırma Unix okuyucusu: Programcı El Kitabı, 1971–1986'dan açıklamalı alıntılar. CSTR 139, Bell Labs.
  18. ^ "Bölüm 7. sendmail". UNICOS / mp Ağ Tesisleri Yönetimi. Cray. Alındı 14 Eylül 2013.
  19. ^ "fhs-spec revizyon 44".