Loading AI tools
organiser et stocker les informations De Wikipédia, l'encyclopédie libre
Le terme système de fichiers (abrégé « FS » pour File System[1], parfois filesystem en anglais) désigne de façon ambigüe :
De façon générale, un système de fichiers ou système de gestion de fichiers (SGF) est une façon de stocker les informations et de les organiser dans des fichiers sur ce que l'on appelle, en génie logiciel, des mémoires secondaires[2] (pour le matériel informatique, il s'agit de mémoire de masse comme un disque dur, un disque SSD, un CD-ROM, une clé USB, une disquette, etc.). Une telle gestion des fichiers permet de traiter, de conserver des quantités importantes de données ainsi que de les partager entre plusieurs programmes informatiques. Il offre à l'utilisateur une vue abstraite sur ses données et permet de les localiser à partir d'un chemin d'accès.
Il existe d'autres façons d'organiser les données, par exemple les bases de données (notamment base de données relationnelle) et les fichiers indexés.
La carte perforée a progressivement disparu à partir de 1970 lorsque sont apparues les unités d'entrée-sortie à bande magnétique et à disquettes souples de format « 8 pouces » et des mémoires de masse plus performantes.
En 1964, le système DECtape de la société DEC permet d'enregistrer les données sur bandes magnétiques plutôt que sur cartes perforées.
En 1968, GEORGE 3 était doté d'un magasin de fichier (file store) enregistrant les fichiers dans une arborescence dans l'idée de Multics. Chaque utilisateur du système disposait d'un dossier utilisateur (home) avec autant de sous-dossiers que nécessaire. Les dossiers utilisateurs pouvaient être accédés directement ou à travers un chemin, comme : :MASTER.USERS.COMPSCI,JOHN. Un système d'Access control lists était utilisé pour la sécurité permettant de configurer l'accès par utilisateur et par groupe. Le système de fichier était organisé sur deux niveaux : l'un sur disque, et l'autre sur bande magnétique.
En 1972, ODS-1 est un système de fichier à plat (utilisé par RSX-11 OS). Il sera remplacé par la suite par ODS-2 et ODS-5.
En 1974, le système de fichier CP/M apparaît. Ce système d'exploitation, enregistre les fichiers sur disquettes suivant une organisation logique spécifique (qui n'a pas été reprise par MS-DOS), et peut remplir les disquettes jusqu'à ce qu'elles soient complètement remplies.
CP/M peut aussi gérer des disques durs (en réalité, comme le BIOS est « ouvert » et décrit clairement dans la documentation que Digital Research fournissait avec certains de ses logiciels, il est donc possible d'adapter tout système particulier CP/M à toute mémoire de masse disponible - et aux périphériques dont on dispose).
Chaque fichier a un nom et une extension. Plus précisément, la syntaxe est : <nom du fichier (8 octets maximum)>.<extension (3 octets maximum)>.
En 1978 apparaît le premier système de fichier d'Apple.
En 1980, le système FAT12 apparaît. Le système FAT16 en 1984.
Le BIOS parameter block (BPB) est introduit avec le PC DOS 2.0 . Cette version introduit également les bits attributs lecture seule, archive, étiquette de volume, et dossier pour une hiérarchisation des dossiers.
En 1988, ISO 9660 (une norme de l'ISO) définit le système de fichiers utilisé sur les CD-ROM.
En 1993, apparaît le système NTFS Version 1.0, utilisé par Windows.
En 1994 et 1995, les systèmes de fichiers pour CD-ROMs sont complétés : Rock Ridge et Joliet.
Système de fichiers | Inventeur | Année d'introduction |
Système d’exploitation initial | Licence |
---|---|---|---|---|
DECtape | DEC | 1964 | PDP-6 Monitor | |
Level-D | DEC | 1968 | TOPS-10 | |
George3 | ICT (later ICL) | 1968 | George 3 | |
ODS-1 | DEC | 1972 | RSX-11 | |
RT-11 file system | DEC | 1973 | RT-11 | |
DOS (GEC) | GEC | 1973 | Core Operating System | |
CP/M file system | Gary Kildall | 1974 | CP/M | |
V6FS | Bell Labs | 1975 | Unix version 6 | |
OS4000 | GEC | 1977 | OS4000 | |
FAT (8-bit) | Marc McDonald, Microsoft | 1977 | Microsoft Standalone Disk BASIC-80 | |
DOS 3.x | Apple Computer | 1978 | Apple DOS | |
Pascal | Apple Computer | 1978 | Apple Pascal | |
CBM DOS | Commodore | 1978 | BASIC Microsoft (for CBM PET) | |
V7FS | Bell Labs | 1979 | Version 7 Unix | |
ODS-2 | DEC | 1979 | OpenVMS | |
FAT12 | Tim Paterson, Seattle Computer Products | 1980 | QDOS, 86-DOS | |
AFS | Carnegie Mellon University | 1982 | Multiplatform MultoOS | |
DFS | Acorn Computers Ltd | 1982 | Acorn BBC Micro MOS | |
ADFS | Acorn Computers Ltd | 1983 | Acorn Electron (plus tard Arthur RISC OS) | |
FFS | Kirk McKusick | 1983 | 4.2BSD | |
ProDOS | Apple Computer | 1983 | ProDOS 8 | |
MFS | Apple Computer | 1984 | Mac OS | |
FAT16 | Microsoft, IBM | 1984 | PC DOS 3.0/MS-DOS 3.0 | |
Elektronika BK tape format | NPO "Scientific centre" (maintenant Sitronics) | 1985 | Vilnius Basic, BK monitor program | |
HFS | Apple Computer | 1985 | Mac OS | |
Amiga OFS | Metacomco pour Commodore | 1985 | AmigaOS | |
High Sierra | Ecma International | 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 et Microsoft | 1988 | OS/2 | |
ISO 9660:1988 | Ecma International, Microsoft | 1988 | MS-DOS, Mac OS, et AmigaOS | |
JFS1 | IBM | 1990 | AIX[3] | |
VxFS | VERITAS (maintenant Symantec) | 1991 | développé pour Unix System Laboratories, HP-UX[4] | |
ext | Rémy Card | 1992 | Linux | |
WAFL | NetApp | 1992 | Data ONTAP | |
MINIX V2 FS | Andrew S. Tanenbaum | 1992 | MINIX 1.6 et 2.0 | |
AdvFS | DEC | 1993[5] | Digital Unix | |
NTFS Version 1.0 | Microsoft, Tom Miller, Gary Kimura | 1993 | Windows NT 3.1 | Propriétaire |
LFS | Margo Seltzer | 1993 | Berkeley Sprite | |
ext2 | Rémy Card | 1993 | Linux, Hurd | |
UFS1 | Kirk McKusick | 1994 | 4.4BSD | |
XFS | SGI | 1994 | IRIX | |
HFS (Hierarchical File System) | IBM | 1994 | MVS/ESA (maintenant z/OS) | |
Rock Ridge | Young Minds Inc. | 1994 | Linux, Mac OS, AmigaOS, et FreeBSD | |
Joliet ("CDFS") | Microsoft | 1995 | Microsoft Windows, Linux, Mac OS, et FreeBSD | |
PFS | Michiel Pelt | 1996 | AmigaOS | |
Romeo | Adaptec | 1996 | Microsoft Windows | |
UDF | ISO/ECMA/OSTA | 1995 | - | |
FAT32 | Microsoft | 1996 | Windows 95b[6] | |
QFS | LSC Inc, Sun Microsystems | 1996 | Solaris | |
GPFS | IBM | 1996 | AIX, Linux, Windows | |
Be File System | Be Inc., D. Giampaolo, C. Meurillon | 1996 | BeOS, HaikuOS | |
HFS Plus | Apple Computer | 1998 | Mac OS 8.1 | |
NSS | Novell | 1998 | NetWare 5 | |
PolyServe File System (PSFS) | PolyServe | 1998 | Windows, Linux | |
ODS-5 | DEC | 1998 | OpenVMS 7.2 | |
SFS | John Hendrikx | 1998 | AmigaOS, AROS, MorphOS | |
ext3 | Stephen Tweedie (en) | 1999 | Linux | |
ISO 9660:1999 | Ecma International, Microsoft | 1999 | Microsoft Windows, Linux, Mac OS X, FreeBSD, et AmigaOS | |
JFS | IBM | 1999 | OS/2 Warp Server for e-business | |
GFS | Sistina (Red Hat) | 2000 | Linux | |
Melio FS | Sanbolic | 2001 | Windows | |
NTFS Version 3.1 | Microsoft | 2001 | Windows XP | Propriétaire |
ReiserFS | Namesys | 2001 | Linux | |
zFS | IBM | 2001 | z/OS (backported to OS/390) | |
FATX | Microsoft | 2002 | Xbox | |
UFS2 | Kirk McKusick | 2002 | FreeBSD 5.0 | |
Lustre | Cluster File Systems (plus tard Oracle Corporation) | 2002 | Linux | |
OCFS | Oracle Corporation | 2002 | Linux | |
VMFS2 | VMware | 2002 | VMware ESX Server 2.0 | |
ext3cow | Zachary Peterson | 2003 | Linux | |
Fossil | Bell Labs | 2003 | Plan 9 from Bell Labs 4 | |
Google File System | 2003 | Linux | ||
PramFS | MontaVista | 2003 | Linux | |
Reliance[7] | Datalight | 2003 | Windows CE, VxWorks, custom ports | |
VxCFS | VERITAS (maintenant Symantec) | 2004 | AIX, HP-UX, Solaris, Linux | |
ZFS | Sun Microsystems | 2004 | Solaris | CDDL |
Reiser4 | Namesys | 2004 | Linux | |
Non-Volatile File System | 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 Server 3.0 | |
GFS2 | Red Hat | 2006 | Linux | |
ext4 | Various | 2006 | Linux | |
exFAT | Microsoft | 2006, 2009 | Windows CE 6.0, Windows XP SP3, Windows Vista SP1 | Propriétaire |
TexFAT/TFAT | Microsoft | 2006 | Windows CE 6.0 | |
Btrfs | Oracle Corporation | 2007 | Linux | GPL |
Ceph | Sage Weil, Inktank Storage, Red Hat | 2007, 2012 | Linux | |
WBFS | kwiirk and Waninkoko (Wii homebrew) | 2008 | Wii | |
HAMMER | Matthew Dillon | 2008 | DragonFly BSD | |
Tux3 | Various | 2008 | Linux | |
UBIFS | Nokia avec l'aide de l'Université de Szeged | 2008 | Linux | |
Oracle ACFS | Oracle Corporation | 2009 | Seulement Linux - Red Hat Enterprise Linux 5 et Oracle Enterprise Linux 5 | |
Reliance Nitro[7] | Datalight | 2009 | Windows CE, Windows Mobile, VxWorks, Linux, custom ports | |
LTFS | IBM | 2010 | Linux, Mac OS X, planned Microsoft Windows, | LGPL |
IlesfayFS | Ilesfay Technology Group | 2011 | Microsoft Windows, planned Red Hat Enterprise Linux | |
VMFS5 | VMware | 2011 | VMware ESXi 5.0tux 3 stats | |
ReFS | Microsoft | 2012, 2013 | Windows Server 2012 | |
Lanyard Filesystem | Dan Luedtke | 2012 | Linux | |
F2FS | Samsung | 2012 | Linux | GPLv2 |
APFS | Apple | 2016 | macOS | |
Système de fichiers | Créateur | Année d'introduction | Système d’exploitation initial | License |
Le volume des données traitées par les applications informatiques atteint couramment plusieurs centaines de gigaoctets et va jusqu'à plusieurs téraoctets pour certaines applications industrielles. De tels volumes de données ne peuvent pas être stockées dans la mémoire centrale. De plus, un stockage persistant à long terme, permettant de sauvegarder les données traitées ou à traiter pour une utilisation future, est également nécessaire. Le principe employé pour répondre à ce problème consiste à stocker ces données dans des mémoires secondaires sous forme de fichiers, c'est-à-dire de suites de blocs (la plus petite unité que le périphérique de stockage est capable de gérer). Le contenu de ces blocs, simple suite de données binaires, peut être interprété selon le format de fichier comme des caractères, des nombres entiers ou flottants, des codes d'opérations machines, des adresses mémoires, etc. L’échange entre les deux types de mémoire se fait ensuite par transfert de blocs.
L'objectif du système de fichiers est de permettre l'accès au contenu des fichiers stockés (l'ouverture du fichier, son enregistrement sa copie ou son déplacement dans un second emplacement, ou sa suppression) à partir de leur chemin d'accès, formé d'un nom précédé d'une liste de répertoires imbriqués.
Pour l'utilisateur, un système de fichiers est vu comme une arborescence : les fichiers sont regroupés dans des répertoires (concept utilisé par la plupart des systèmes d’exploitation). Ces répertoires contiennent soit des fichiers, soit récursivement d'autres répertoires. Il y a donc un répertoire racine et des sous-répertoires. Une telle organisation génère une hiérarchie de répertoires et de fichiers organisés en arbre.
Différentes méthodes permettent d'associer un nom de fichier à son contenu. Dans le cas du système de fichiers FAT, ancien système de fichiers de MS-DOS et de Windows encore largement utilisé sur les supports amovibles comme les clés USB, chaque répertoire contient une table associant les noms de fichiers à leur taille et un index pointant vers la table d'allocation de fichiers, une zone réservée du disque indiquant pour chaque bloc de données l'index du bloc suivant du même fichier.
Dans le cas des systèmes de fichier d'Unix (ou de Linux/Minix), les fichiers et les répertoires sont identifiés par un numéro unique, le numéro d'inode. Ce numéro permet d'accéder à une structure de données (inode) regroupant toutes les informations sur un fichier à l'exception du nom, notamment la protection d'accès en lecture, en écriture ou des listes de dates, ainsi que le moyen d'en retrouver le contenu. Le nom est stocké dans le répertoire associé à un numéro d'inode. Cette organisation présente l'avantage qu'un fichier unique sur disque peut être connu du système sous plusieurs noms.
L'organisation du système de fichiers NTFS est encore plus complexe, fonctionnant un peu à la façon d'une base de données.
Le nom d'un fichier est une chaîne de caractères, souvent de taille limitée. Aujourd'hui, quasiment l'ensemble des caractères du répertoire Unicode est généralement utilisable, mais certains caractères spécifiques ayant un sens pour le système d'exploitation peuvent être interdits ou déconseillés. C'est le cas par exemple pour les caractères « : », « / » ou « \ » sous Windows.
Les systèmes de fichier Unix utilisent des noms de fichiers basés sur une suite d'octets. Les couches basses des logiciels (noyau, systèmes de fichier) manipulent les noms de fichiers sans connaître le jeu de caractère utilisé. Au niveau utilisateur, le jeu de caractère utilisé n'est généralement pas fourni par le système de fichiers, mais dépendant des paramètres régionaux de l'utilisateur. Dans un contexte où l'interopérabilité à un niveau mondial est souhaitée, une compatibilité Unicode est désirée et alors, l'UTF-8 est de plus en plus utilisé notamment dans les distributions Linux. Les systèmes plus anciens utilisaient des systèmes de codage régionaux pouvant altérer les noms de fichiers lorsque des utilisateurs ont des paramètres régionaux différents. Dans les systèmes modernes, l'utilisation de noms de fichiers nommés autrement qu'en Unicode est évité afin de réduire les problèmes d'interopérabilité avec les systèmes unicode.
NTFS, Virtual FAT et Joliet, ReFS utilisent le jeu de caractères UTF-16 pour les noms de fichiers.
Sous Windows et dans les environnements graphiques, le nom d'un fichier possède en général un suffixe (extension) séparé par un point qui est fonction du contenu du fichier : .txt pour du texte par exemple. De cette extension va dépendre le choix des applications prenant en charge ce fichier. Toutefois, sous Linux/Unix, dans les systèmes en ligne de commande et dans les langages de programmation, l'extension fait simplement partie du nom de fichier, son format est détecté par le type MIME inscrit de façon transparente dans l'en-tête des fichiers.
Chaque fichier est décrit par des métadonnées (conservées dans l'inode sous Unix), alors que le contenu du fichier est écrit dans un ou plusieurs blocs du support de stockage, selon la taille du fichier.
Les métadonnées les plus courantes sous UNIX sont :
Sur la plupart des systèmes Unix, la commande stat permet d'afficher l'intégralité du contenu de l'inode.
Le système de gestion des fichiers assure plusieurs fonctions :
L'organisation physique sous-jacente du médium utilisé (blocs, linéaire) et les mécanismes d'entrée/sortie de bas-niveau sont masqués. L'utilisateur peut donc organiser ses données permanentes en les distribuant dans différents fichiers. Le contenu des fichiers est déterminé par leur format, qui dépend de l'application utilisée.
En plus de cette organisation abstraite, les systèmes de fichiers peuvent inclure la compression ou le chiffrement automatique des données, une gestion plus ou moins fine des droits d'accès aux fichiers, et une journalisation des écritures (pour la robustesse, en cas de défaillance du système). De plus, certains systèmes de fichiers peuvent s'étendre sur un réseau entier, comme NFS. Certains de ces systèmes de fichiers en réseau peuvent être distribués ou répartis, comme PVFS2.
Le choix du système de gestion des fichiers se fait principalement en fonction du système d’exploitation. Généralement, les systèmes d’exploitation les plus récents supportent un grand nombre de systèmes de fichiers.
MS-DOS (et compatibles) et les premières versions de Windows 95 utilisaient les systèmes de fichiers FAT16 et FAT12 (pour les supports de moins de 16 Mio). À partir de Windows 95 OSR2, le choix entre les systèmes de fichiers a commencé à s'élargir. FAT16 et FAT32 pouvaient tous les deux être utilisés, et à partir d'une certaine taille de partition, le choix du système FAT32 était alors plus judicieux.
Sous les premières versions de Windows NT (NT3.x et NT4), il y a le choix entre le système FAT16 et NTFS. Ce système d'exploitation ne supporte pas le FAT32. Généralement, le système NTFS est conseillé, car il procure une sécurité plus grande ainsi que des performances accrues par rapport au FAT. Contrairement aux précédentes versions de Windows NT, Windows NT5 (Windows 2000) accepte des partitions de type FAT16, FAT32 et NTFS. Ainsi, le système de fichiers le plus récent (NTFS 5) est conseillé puisqu’il offre de plus nombreuses fonctionnalités que les systèmes FAT.
Le SP1 de Vista propose de formater en exFAT qui est une grosse évolution de la FAT, proposant une meilleure fiabilité, une « vraie » gestion des noms longs, et l'ACL. Windows CE 6 (le futur Windows Mobile 7) gère aussi ce nouveau FS. Le but de Microsoft est de remplacer la FAT, principalement utilisée sur les supports amovibles comme les cartes mémoires.
Le monde des Unix (Unix, Linux, BSD, Mac OS X) supporte un très grand nombre de systèmes de fichiers. Cela est dû au fait que malgré leur nombre, les systèmes supportés suivent généralement des standards et notamment POSIX.
Les systèmes de fichiers journalisés enregistrent les modifications dans un journal avant de les effectuer sur les fichiers eux-mêmes. Ce mécanisme apporte une plus grande fiabilité, en permettant une récupération des modifications "en cours" en cas d'arrêt intempestif (coupure de courant, plantage système, débranchement de disque externe…).
Les systèmes de fichiers à snapshot, ou, en français, instantanés, offrent la possibilité d'enregistrer l'état du système de fichiers à un instant donné.
Ces systèmes de fichiers n'ont pas pour but de permettre l'accès à des fichiers réels. Ils présentent en fait, sous l'apparence d'une hiérarchie classique de fichiers et de répertoires, des informations de nature variées (sur l'état de l'ordinateur, des périphériques, ou permettant l'accès à des bases de données). Il s'agit donc d'interfaces particulières pour certains logiciels, généralement le système d'exploitation.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.