Dosya sistemi

Dosya sistemi terimi ( Dosya Sistemi  için kısaltılmış "  FS " , bazen İngilizce dosya sistemi ) belirsiz bir şekilde şunları belirtir:

Genel olarak konuşursak, bir dosya sistemi veya dosya yönetim sistemi (FMS) bilginin depolanması ve düzenlediğinizden bir yoludur dosyaları içinde, ne denir üzerinde yazılım mühendisliği , ikincil anılar (için donanım bilgisayara , öyle yığın hafıza gibi a sabit disk , bir SSD disk , bir CD-ROM , bir USB anahtarı , bir disket vb.). Bu tür bir dosya yönetimi, büyük miktarlarda verinin işlenmesini ve depolanmasını ve bunların birkaç bilgisayar programı arasında paylaşılmasını mümkün kılar . Tesis, kullanıcıya kendi veri soyut manzarası ve yoldan bulmak için izin verir.

Verileri düzenlemenin başka yolları da vardır, örneğin veritabanları (özellikle ilişkisel veritabanı ) ve dizine alınmış dosyalar .

Tarih

Delikli kart , "8 inç" formatındaki manyetik bantlı ve disketli I / O üniteleri ve daha verimli yığın hafızaları ortaya çıktığında 1970 yılından itibaren yavaş yavaş ortadan kalktı .

1964'te, DEC şirketinin DECtape sistemi , verileri delikli kartlar yerine manyetik bantlara kaydetmeyi mümkün kıldı .

1968'de GEORGE 3 , Multics fikrinde dosyaları ağaç yapısında kaydeden bir dosya deposu ( dosya deposu ) ile donatıldı . Sistemin her kullanıcısı, gerektiği kadar alt klasör içeren bir kullanıcı ( ev ) klasörüne sahipti . Kullanıcı klasörlerine doğrudan veya :: MASTER.USERS.COMPSCI, JOHN gibi bir yoldan erişilebilir . Kullanıcıya ve gruba göre erişimi yapılandırmaya izin veren güvenlik için bir Erişim kontrol listeleri sistemi kullanıldı. Dosya sistemi iki düzeyde organize edildi: biri diskte, diğeri manyetik bantta.

1972'de ODS-1 düz bir dosya sistemiydi (RSX-11 OS tarafından kullanıldı). Daha sonra ODS-2 ve ODS-5 ile değiştirilecektir.

1974'te CP / M dosya sistemi ortaya çıktı. Bu işletim sistemi kaydeder dosyaları için disket (MS-DOS tarafından devralınan değil) Belirli mantıksal organizasyonda ve bunlar tamamen dolu olana kadar disketleri doldurabilir.

CP / M aynı zamanda sabit diskleri de yönetebilir (gerçekte, BIOS "açık" olduğundan ve Dijital Araştırma'nın bazı yazılımlarıyla birlikte sağladığı belgelerde açıkça tanımlandığından , bu nedenle herhangi bir belirli CP / M sistemini mevcut herhangi bir sisteme uyarlamak mümkündür. yığın bellek - ve mevcut çevre birimleri).

Her dosyanın bir adı ve uzantısı vardır (daha doğrusu sözdizimi şöyledir: <dosya adı (maksimum 8 bayt)>. <Uzantı (maksimum 3 bayt)>).

1978'de Apple'ın ilk dosya sistemi ortaya çıktı.

1980'de FAT12 sistemi ortaya çıktı. 1984'te FAT16 sistemi.

BIOS parametre bloğu (BPB) PC DOS 2.0 ile tanıtıldı. Bu sürüm ayrıca, klasör önceliklendirmesi için salt okunur, arşiv , birim etiketi ve klasör öznitelikleri bitlerini de sunar.

1988'de ISO 9660 (bir ISO standardı), CD-ROM'larda kullanılan dosya sistemini tanımladı.

1993 yılında, Windows tarafından kullanılan NTFS Sürüm 1.0 sistemi ortaya çıktı.

1994 ve 1995'te, CD-ROM'lar için dosya sistemleri tamamlandı: Rock Ridge ve Joliet .

Dosya sistemi Mucit Yıl
giriş
İlk işletim sistemi Lisans
Dectape ARALIK 1964 PDP-6 Monitör
Seviye-D ARALIK 1968 TOPS-10
George3 ICT (daha sonra ICL) 1968 George 3
ODS-1 ARALIK 1972 RSX-11
RT-11 dosya sistemi ARALIK 1973 RT-11
DOS ( GEC ) GEC 1973 Çekirdek İşletim Sistemi
CP / M dosya sistemi Gary Kildall 1974 CP / M
V6FS Bell Laboratuvarları 1975 Unix sürüm 6
OS4000 GEC 1977 OS4000
FAT (8 bit) Marc McDonald , Microsoft 1977 Microsoft Bağımsız Disk BASIC-80
DOS 3.x Apple Bilgisayar 1978 Apple DOS
Pascal Apple Bilgisayar 1978 Apple Pascal
CBM DOS Commodore 1978 TEMEL Microsoft (CBM PET için)
V7FS Bell Laboratuvarları 1979 Sürüm 7 Unix
ODS-2 ARALIK 1979 OpenVMS
FAT12 Tim Paterson , Seattle Bilgisayar Ürünleri 1980 QDOS , 86-DOS
AFS Carnegie Mellon Üniversitesi 1982 Multiplatform MultoOS
DFS Acorn Computers Ltd 1982 Meşe palamudu BBC Mikro MOS
ADFS Acorn Computers Ltd 1983 Acorn Electron (daha sonra Arthur RISC OS )
FFS Kirk McKusick 1983 4.2 BSD
ProDOS Apple Bilgisayar 1983 ProDOS 8
MFS Apple Bilgisayar 1984 Mac os işletim sistemi
FAT16 Microsoft , IBM 1984 PC DOS 3.0 / MS-DOS 3.0
Elektronika BK bant biçimi NPO "Bilimsel merkez" (şimdi Sitronics ) 1985 Vilnius Basic , BK monitör programı
HFS Apple Bilgisayar 1985 Mac os işletim sistemi
Amiga OFS Commodore için Metacomco 1985 AmigaOS
Yüksek Sierra Ecma Uluslararası 1985 MS-DOS , Mac OS
NWFS Novell 1985 NetWare 286
FAT16B Compaq 1987 Compaq MS-DOS 3.31, DR DOS 3.31
MINIX V1 FS Andrew S. Tanenbaum 1987 MINIX 1.0
Amiga FFS Commodore 1988 AmigaOS 1.3
HPFS IBM ve Microsoft 1988 OS / 2
ISO 9660: 1988 Ecma Uluslararası , Microsoft 1988 MS-DOS , Mac OS ve AmigaOS
JFS1 IBM 1990 AIX
VxFS VERITAS (şimdi Symantec ) 1991 Unix Sistem Laboratuvarları için geliştirilmiştir , HP-UX
ext Remy Kartı 1992 Linux
WAFL NetApp 1992 Veri ONTAP
MINIX V2 FS Andrew S. Tanenbaum 1992 MINIX 1.6 ve 2.0
AdvFS ARALIK 1993 Dijital Unix
NTFS Sürüm 1.0 Microsoft , Tom Miller , Gary Kimura 1993 Windows NT 3.1 Sahip
LFS Margo seltzer 1993 Berkeley Sprite
ext2 Remy Kartı 1993 Linux , Hurd
UFS1 Kirk McKusick 1994 4.4 BSD
XFS SGI 1994 IRIX
HFS (Hiyerarşik Dosya Sistemi) IBM 1994 MVS / ESA (şimdi z / OS )
Kaya sırtı Young Minds Inc. 1994 Linux , Mac OS , AmigaOS ve FreeBSD
Joliet ("CDFS") Microsoft 1995 Microsoft Windows , Linux , Mac OS ve FreeBSD
PFS Michiel Pelt 1996 AmigaOS
Romeo Adaptec 1996 Microsoft Windows
UDF ISO / ECMA / OSTA 1995 -
FAT32 Microsoft 1996 Windows 95b
QFS LSC Inc, Sun Microsystems 1996 Solaris
GPFS IBM 1996 AIX , Linux , Windows
Dosya Sistemi Olun Be Inc. , D. Giampaolo , C. Meurillon 1996 BeOS , HaikuOS
HFS Plus Apple Bilgisayar 1998 Mac OS 8.1
NSS Novell 1998 NetWare 5
PolyServe Dosya Sistemi (PSFS) PolyServe 1998 Windows , Linux
ODS-5 ARALIK 1998 OpenVMS 7.2
SFS John Hendrikx 1998 AmigaOS , AROS , MorphOS
ext3 Stephen tweedie 1999 Linux
ISO 9660: 1999 Ecma Uluslararası , Microsoft 1999 Microsoft Windows , Linux , Mac OS X , FreeBSD ve AmigaOS
JFS IBM 1999 E-ticaret için OS / 2 Warp Sunucusu
GFS Sistina ( Kırmızı Şapka ) 2000 Linux
Melio FS Sanbolik 2001 pencereler
NTFS Sürüm 3.1 Microsoft 2001 Windows XP Sahip
ReiserFS Namesys 2001 Linux
zFS IBM 2001 z / OS ( OS / 390'a geri yüklenmiştir )
FATX Microsoft 2002 Xbox
UFS2 Kirk McKusick 2002 FreeBSD 5.0
Avize Küme Dosya Sistemleri (daha sonra Oracle Corporation ) 2002 Linux
OCFS Oracle Corporation 2002 Linux
VMFS2 VMware 2002 VMware ESX Sunucusu 2.0
ext3cow Zachary Peterson 2003 Linux
Fosil Bell Laboratuvarları 2003 Bell Labs 4'ten Plan 9
Google Dosya Sistemi Google 2003 Linux
PramFS MontaVista 2003 Linux
Güven Datalight 2003 Windows CE , VxWorks , özel bağlantı noktaları
VxCFS VERITAS (şimdi Symantec ) 2004 AIX , HP-UX , Solaris , Linux
ZFS Sun Microsystems 2004 Solaris CDDL
Reiser4 Namesys 2004 Linux
Geçici Olmayan Dosya Sistemi Palm, Inc. 2004 Palm OS Garnet
MINIX V3 FS Andrew S. Tanenbaum 2005 MINIX 3
OCFS2 Oracle Corporation 2005 Linux
NILFS NTT 2005 Linux
VMFS3 VMware 2005 VMware ESX Sunucusu 3.0
GFS2 Kırmızı şapka 2006 Linux
ext4 Çeşitli 2006 Linux
exFAT Microsoft 2006, 2009 Windows CE 6.0 , Windows XP SP3 , Windows Vista SP1 Sahip
TexFAT / TFAT Microsoft 2006 Windows CE 6.0
Btrfs Oracle Corporation 2007 Linux LPG
Ceph Sage Weil , Inktank Depolama , Red Hat 2007, 2012 Linux
WBFS kwiirk ve Waninkoko (Wii homebrew) 2008 Wii
ÇEKİÇ Matthew Dillon 2008 DragonFly BSD
Tux3 Çeşitli 2008 Linux
UBIFS Nokia , Szeged Üniversitesi'nin yardımıyla 2008 Linux
Oracle ACFS Oracle Corporation 2009 Yalnızca Linux - Red Hat Enterprise Linux 5 ve Oracle Enterprise Linux 5
Reliance Nitro Datalight 2009 Windows CE , Windows Mobile , VxWorks , Linux , özel bağlantı noktaları
LTFS IBM 2010 Linux , Mac OS X , planlanan Microsoft Windows , LGPL
IlesfayFS Ilesfay Teknoloji Grubu 2011 Microsoft Windows , Red Hat Enterprise Linux'u planladı
VMFS5 VMware 2011 VMware ESXi 5.0tux 3 istatistikleri
ReFS Microsoft 2012, 2013 Windows Sunucusu 2012
Lanyard Dosya Sistemi Dan Luedtke 2012 Linux
F2FS Samsung 2012 Linux GPLv2
APFS elma 2016 Mac os işletim sistemi
Dosya sistemi Yaratıcı Giriş yılı İlk işletim sistemi Lisans

Genel

Bilgisayar uygulamaları tarafından işlenen veri hacmi genellikle birkaç yüz gigabayta ulaşır ve belirli endüstriyel uygulamalar için birkaç terabayta kadar çıkar. Bu tür veri hacimleri ana bellekte saklanamaz . Ek olarak, işlenen veya işlenecek verilerin ileride kullanılmak üzere saklanmasına izin veren uzun vadeli kalıcı depolama da gereklidir. Bu soruna yanıt vermek için kullanılan ilke, bu verilerin ikincil belleklerde dosyalar biçiminde, yani blok dizileri (depolama aygıtının yönetebildiği en küçük birim) biçiminde depolanmasından oluşur. Basit bir ikili veri dizisi olan bu blokların içeriği, karakterler, tam veya kayan noktalı sayılar, makine işlem kodları, bellek adresleri vb. Gibi dosya formatına göre yorumlanabilir. İki bellek türü arasındaki değişim daha sonra blok aktarımı ile yapılır.

Dosya sisteminin amacı, saklanan dosyaların içeriğine (dosyanın açılması, kaydedilmesi, ikinci bir konuma kopyalanması veya taşınması veya silinmesi) yollarından, bir listeden önce gelen bir adla oluşturulmuş erişime izin vermektir. iç içe dizinler .

Kullanıcı için temsil

Kullanıcı için, bir dosya sistemi bir ağaç yapısı olarak görülür: dosyalar, dizinler halinde gruplandırılır (çoğu işletim sistemi tarafından kullanılan bir kavram). Bu dizinler ya dosyaları ya da yinelemeli olarak diğer dizinleri içerir. Yani bir kök dizin ve alt dizinler var. Böyle bir organizasyon, bir ağaçta düzenlenmiş bir dizin ve dosya hiyerarşisi oluşturur.

Bir dosya adını içeriğiyle ilişkilendirmenin farklı yöntemleri vardır. FAT dosya sistemi , eski bir MS-DOS ve Windows dosya sistemi söz konusu olduğunda , USB sürücüler gibi çıkarılabilir medyada hala yaygın olarak kullanılmaktadır, her dizin, dosya adlarını boyutlarıyla ilişkilendiren bir tablo ve dosya ayırma tablosunu gösteren bir indeks içerir, her veri bloğu için aynı dosyanın sonraki bloğunun indeksini gösteren diskin ayrılmış bir alanı.

Durumunda Unix (veya Linux / Minix ) dosya sistemleri, dosya ve dizinleri benzersiz bir sayı, tanımlanır inode numarası . Bu numara, bir dosya hakkındaki tüm bilgileri, özellikle okuma, yazma veya tarih listelerine erişimin korunması ve ayrıca 'içeriği bulma' araçları dışında bir dosya hakkındaki tüm bilgileri bir arada gruplayan bir veri yapısına ( inode ) erişime izin verir . Ad, bir inode numarasıyla ilişkilendirilmiş dizinde saklanır. Bu organizasyon, diskteki tek bir dosyanın sistem tarafından birkaç adla bilinebilmesi avantajına sahiptir.

NTFS dosya sisteminin organizasyonu daha da karmaşıktır ve bir veritabanı gibi işlev görür.

Dosya adı

Bir dosyanın adı, genellikle sınırlı boyutta olan bir karakter dizisidir. Bugün, Unicode dizinindeki hemen hemen tüm karakterler genellikle kullanılabilir, ancak işletim sistemi için anlamı olan bazı belirli karakterler yasaklanabilir veya kullanımdan kaldırılabilir. Bu, örneğin Windows'ta ":", "/" veya "\" karakterleri için geçerlidir.

Unix dosya sistemleri, bir bayt dizisine göre dosya adlarını kullanır. Yazılımın alt katmanları (çekirdek, dosya sistemleri), kullanılan karakter setini bilmeden dosya adlarını işler. Kullanıcı düzeyinde, kullanılan karakter seti genellikle dosya sistemi tarafından sağlanmamaktadır, ancak kullanıcının yerel ayarına bağlıdır. Global düzeyde birlikte çalışabilirliğin istendiği bir bağlamda, Unicode uyumluluğu arzu edilir ve bu nedenle UTF-8 , özellikle Linux dağıtımlarında giderek daha fazla kullanılmaktadır. Daha eski sistemler, kullanıcılar farklı yerel ayarlara sahip olduğunda dosya adlarını bozabilen bölgesel kodlama sistemleri kullanıyordu. Modern sistemlerde, Unicode sistemleriyle birlikte çalışabilirlik sorunlarını azaltmak için Unicode dışında adlandırılan dosya adlarının kullanımından kaçınılır.

NTFS , Virtual FAT ve Joliet , ReFS , dosya adları için UTF-16 karakter setini kullanır.

Windows altında ve grafik ortamlarında, bir dosyanın adı genellikle dosyanın içeriğine bağlı olarak bir noktayla ayrılmış bir sonek (uzantı) içerir: örneğin metin için .txt. Bu uzantı, bu dosyayı destekleyen uygulama seçimine bağlı olacaktır. Bununla birlikte, Linux / Unix'te, komut satırı sistemlerinde ve programlama dillerinde, uzantı dosya adının sadece bir parçasıdır, formatı, başlık dosyalarında şeffaf bir şekilde yazılan MIME türü tarafından algılanır .

Meta veriler

Her dosya meta verilerle ( Unix altında inode'da tutulur ) tanımlanırken, dosyanın içeriği dosyanın boyutuna bağlı olarak depolama ortamının bir veya daha fazla bloğuna yazılır.

En yaygın meta üzerinde UNIX şunlardır:

Çoğu Unix sisteminde, stat komutu , inode'un tüm içeriğini görüntüler .

SGF'nin işlevleri

Dosya yönetim sistemi birkaç işlevi yerine getirir:

Dosya organizasyonu

Kullanılan ortamın (bloklar, doğrusal) ve düşük seviyeli giriş / çıkış mekanizmalarının altında yatan fiziksel organizasyon maskelenir. Kullanıcı bu nedenle kalıcı verilerini farklı dosyalara dağıtarak düzenleyebilir. Dosyaların içeriği, kullanılan uygulamaya bağlı olarak formatlarına göre belirlenir .

Bu soyut organizasyona ek olarak, dosya sistemleri otomatik veri sıkıştırma veya şifreleme, dosya erişim haklarının az çok hassas yönetimi ve yazma günlüğü (bir arıza durumunda sağlamlık için) içerebilir . Ek olarak, bazı dosya sistemleri NFS gibi tüm bir ağa yayılabilir. Bu ağ dosya sistemlerinden bazıları, PVFS2 gibi dağıtılabilir veya dağıtılabilir.

İlişkili veya uyumlu dosya sistemleri ve işletim sistemleri

Dosya yönetim sistemi seçimi esas olarak işletim sistemine dayanmaktadır. Genellikle, daha yeni işletim sistemleri çok sayıda dosya sistemini destekler.

MS-DOS (ve uyumlu) ve Windows 95'in ilk sürümleri, FAT16 ve FAT12 dosya sistemlerini (16 MB'den küçük ortamlar için  ) kullanıyordu. Windows 95 OSR2 ile başlayarak, dosya sistemleri arasındaki seçim genişlemeye başladı. Hem FAT16 hem de FAT32 kullanılabilir ve belirli bir bölüm boyutundan itibaren FAT32 sistemi seçimi daha mantıklıydı.

Windows NT'nin ilk sürümlerinde (NT3.x ve NT4), FAT16 ve NTFS sistemi arasında seçim vardır . Bu işletim sistemi FAT32'yi desteklemiyor . Genel olarak, NTFS , FAT ile karşılaştırıldığında daha fazla güvenlik ve daha iyi performans sağladığı için önerilir . Windows NT'nin önceki sürümlerinden farklı olarak, Windows NT5 ( Windows 2000 ) FAT16 , FAT32 ve NTFS tipi bölümleri kabul eder . Bu nedenle, en yeni dosya sistemi (NTFS 5), FAT sistemlerinden daha fazla işlevsellik sunduğu için önerilir .

Vista SP1 için teklifler formatında içinde exFAT daha iyi bir güvenilirlik, uzun isimlerin "gerçek" bir yönetim ve öneren FAT büyük bir evrimi, ACL . Windows CE 6 (gelecekteki Windows Mobile 7) de bu yeni FS'yi yönetir. Microsoft'un amacı, çoğunlukla bellek kartları gibi çıkarılabilir medyada kullanılan FAT'ın yerini almaktır.

Unix dünyası (Unix, Linux, BSD, Mac OS X) çok sayıda dosya sistemini destekler. Bunun nedeni, sayılarına rağmen, desteklenen sistemlerin genellikle standartları ve özellikle POSIX'i takip etmeleridir .

Günlüğe kaydedilmedi

Günlüklü

Günlüklü dosya sistemleri değişiklikleri dosyalarda yapmadan önce bir günlükte yazar . Bu mekanizma, zamansız bir kapatma (elektrik kesintisi, sistem çökmesi, harici diskin bağlantısının kesilmesi, vb.) Durumunda "devam eden" değişikliklerin kurtarılmasına izin vererek daha fazla güvenilirlik sağlar.

için Anlık

Anlık görüntü dosya sistemleri veya Fransızca anlık görüntüler , dosya sisteminin durumunu belirli bir zamanda kaydetme yeteneği sağlar.

Ağ (NAS: ağa bağlı sistem)

Küme

Uzmanlaşmış

Geçici

Meta dosya sistemleri

Sözde dosya sistemleri

Bu dosya sistemlerinin gerçek dosyalara erişim sağlaması amaçlanmamıştır. Aslında, klasik bir dosya ve dizin hiyerarşisi görünümü altında, çeşitli nitelikteki bilgileri (bilgisayarın, çevre birimlerinin durumunda veya veritabanlarına erişime izin vererek) sunarlar. Bu nedenle bunlar , genellikle işletim sistemi olmak üzere belirli yazılımlar için özel arabirimlerdir .

Sınıflandırmak…

Notlar ve referanslar

  1. (in) "  FS-dosya sistemi  " üzerinde ibm.com , IBM (erişilen 2017 26 Haziran )
  2. "  Geliştirici sözlüğü: İkincil belleğin tanımı  " , developmentpez.com , Developpez.com'da ( 26 Haziran 2017'de erişildi )
  3. IBM , 1990 yılında AIX Sürüm 3.1'in ilk yayımıyla birlikte JFS'yi piyasaya sürdü. Bu dosya sistemi artık JFS1 olarak adlandırılıyordu. OS / 2'den AIX ve Linux'a taşınan yeni JFS, ilk olarak 1999'da e-Business için OS / 2 Warp Sunucusunda gönderildi. AIX 5L'de ​​JFS2 olarak piyasaya sürüldü.
  4. OEM sözleşmesi yoluyla
  5. Tru64 Unix yöneticileri , ORNL ( çevrimiçi okuyun ) , "Polycenter Dosya Sistemi - YARDIM"
  6. Microsoft , FAT32'yi önce Windows 95 OSR2'de (OEM Service Release 2) ve daha sonra Windows 98'de tanıttı . NT tabanlı Windows yoktu herhangi Windows NT4 için FAT32 up için destek; Windows 2000, onunla çalışma yeteneğine sahip olan ilk NT tabanlı Windows işletim sistemiydi.
  7. Reliance dosya sistemleri için spesifikasyonlar burada [1] mevcuttur .
  8. ve dolayısıyla inode'un çünkü verilerin modifikasyonu, inode'daki verilerin modifikasyon tarihinin değişmesi anlamına gelir ve bu nedenle inode'un kendisinde bir değişiklik anlamına gelir !
  9. dosya boyutundan farklıdır çünkü bloklar sabit boyuttadır, bu nedenle 4KiB blokları kullanan bir sistemdeki  5KiB dosyası  2 tam blok alacaktır. Büyük dosyalar için bu daha da karmaşık hale gelir çünkü ilk bloklar aşağıdakileri ele almak için kullanılır.
  10. http://allmydata.org/trac/tahoe
  11. https://technet.microsoft.com/fr-fr/library/cc721923%28v=ws.10%29.aspx

Ayrıca görün

Dış bağlantılar