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 .
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 | 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 |
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, 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.
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 .
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 .
Dosya yönetim sistemi birkaç işlevi yerine getirir:
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.
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ü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.
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.
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 .