Article de reference

extension du nom de fichier

Une extension de nom de fichier , également appelée extension de fichier , est un suffixe ajouté au nom d'un fichier informatique (par exemple, .txt .cpp, .mp3 .txt, .cpp .exe )...

Une extension de nom de fichier , également appelée extension de fichier , est un suffixe ajouté au nom d'un fichier informatique (par exemple, .txt.cpp, .mp3.txt, .cpp .exe) et qui indique une caractéristique de son contenu ou de son utilisation prévue. L'extension de nom de fichier est généralement séparée du reste du nom par un point , mais dans certains systèmes elle est séparée par des espaces.

Certains systèmes de fichiers , comme le système de fichiers FAT utilisé sous DOS , intègrent les extensions de nom de fichier comme une caractéristique du système de fichiers lui-même et peuvent limiter la longueur et le format de l'extension, tandis que d'autres, comme les systèmes de fichiers Unix , le système de fichiers VFAT et NTFS , traitent les extensions de nom de fichier comme faisant partie intégrante du nom de fichier sans distinction particulière.

Histoire

Le concept de base des extensions pour indiquer le type de fichier a été introduit pour la première fois au CTSS du MIT en 1961. Ce système stockait deux noms distincts pour chaque fichier : le nom du fichier et le nom de sa classe, correspondant aux noms et extensions actuels. En interne, ces informations étaient stockées dans des champs différents du système de fichiers, mais pour simplifier la saisie, l’utilisateur spécifiait le type à l’aide d’un point, qui était ensuite supprimé lors de l’enregistrement du fichier. Sur l’ IBM 7090 , chaque entrée de fichier disposait de quatre mots informatiques de 36 bits pour stocker l’information, les deux premiers mots contenant jusqu’à six caractères pour le nom et la classe, respectivement.

IBM adopted CTSS concepts as the basis for their own time-sharing experiments at the Cambridge Scientific Center in the same MIT building where CTSS was being written. This developed into the Conversational Monitor System (originally Cambridge) for the System/360. The concept was also adopted early on by DEC's experiments in time-sharing on the PDP-6 and it's follow-on, the PDP-10. The later became TOPS-10, one of DEC's main offerings into the 1980s, followed by RT-11. It was DEC's versions that inspired later microcomputer operating systems to adopt the same concept, first with CP/M and then DOS.

The Multics file system took this concept further by adopting the concept of making the extension part of the filename itself, as opposed to a separated dedicated type flag. This was part of a broader expansion of the file system which included variable-length names up to 255 characters long. With names this long, there was no need to dedicate storage just to the type, and the "." was just another character in the name. Some components of Multics, and applications running on it, use suffixes to indicate file types, but not all files are required to have a suffix — for example, executables and ordinary text files usually have no suffixes in their names. It was normally the user-facing utilities that examined the name for the last dotted portion to retrieve the type, if desired. Multics was the impetus for UNIX, which followed the same pattern.

Operating system and file system support

File systems for UNIX-like operating systems also store the file name as a single string, with "." as just another character in the file name. A file with more than one suffix is sometimes said to have more than one extension, although terminology varies in this regard, and most authors define extension in a way that does not allow more than one in the same file name. More than one extension usually represents nested transformations, such as files.tar.gz (the .tar indicates that the file is a tar archive of one or more files, and the .gz indicates that the tar archive file is compressed with gzip). Programs transforming or creating files may add the appropriate extension to names inferred from input file names (unless explicitly given an output file name), but programs reading files usually ignore the information; it is mostly intended for the human user. It is more common, especially in binary files, for the file to contain internal or external metadata describing its contents. This model generally requires the full filename to be provided in commands, whereas the metadata approach often allows the extension to be omitted.

In DOS and 16-bit Windows, file names have a maximum of 8 characters, a period, and an extension of up to three letters. The FAT file system for DOS and Windows stores file names as an 8-character name and a three-character extension. The period character is not stored.

The High Performance File System (HPFS), used in Microsoft and IBM's OS/2 stores the file name as a single string, with the "." character as just another character in the file name. The convention of using suffixes continued, even though HPFS supports extended attributes for files, allowing a file's type to be stored in the file as an extended attribute.

Microsoft's Windows NT's native file system, NTFS, and the later ReFS, also store the file name as a single string; again, the convention of using suffixes to simulate extensions continued, for compatibility with existing versions of Windows. In Windows NT 3.5, a variant of the FAT file system, called VFAT appeared; it supports longer file names, with the file name being treated as a single string.

Windows 95, with VFAT, introduced support for long file names, and removed the 8.3 name/extension split in file names from non-NT Windows.

Les applications macOS ont complètement abandonné les métadonnées d'extension de nom de fichier ; elles utilisaient à la place un code de type de fichier distinct pour identifier le format du fichier. De plus, un code de créateur était spécifié pour déterminer quelle application serait lancée lorsqu'on double-cliquait sur l' icône du fichier . macOS , cependant, utilise des suffixes de nom de fichier, étant dérivé du système d'exploitation de type UNIX de la NASA , en plus d'utiliser les codes de type et de créateur.

Sur les systèmes Commodore, les fichiers ne peuvent avoir que quatre extensions : PRG, SEQ, USR et REL. Cependant, ces extensions servent à différencier les types de données utilisés par un programme et sont sans importance pour identifier leur contenu.

Avec l'avènement des interfaces graphiques , la question de la gestion des fichiers et du comportement de ces interfaces s'est posée. Microsoft Windows permettait d' associer plusieurs applications à une même extension, et différentes actions étaient disponibles pour sélectionner l'application souhaitée, comme un menu contextuel proposant d'afficher, de modifier ou d'imprimer le fichier. On supposait encore que chaque extension représentait un seul type de fichier ; il existait une correspondance univoque entre l'extension et son icône.

À l' aube d'Internet , les utilisateurs de systèmes Windows, encore limités au format de nom de fichier 8.3, devaient créer des pages web dont le nom se terminait par .json .HTM, tandis que ceux utilisant des ordinateurs Macintosh ou UNIX pouvaient employer l'extension recommandée .html. Cela posait également problème aux programmeurs expérimentant avec le langage Java , car celui-ci exige le suffixe de quatre lettres .javapour les fichiers de code source et celui de cinq lettres .classpour les fichiers de code objet générés par le compilateur Java .

Type de contenu

Les extensions de nom de fichier peuvent être considérées comme un type de métadonnées . Elles sont couramment utilisées pour indiquer la manière dont les données sont stockées dans le fichier. La définition exacte, précisant les critères permettant de déterminer quelle partie du nom de fichier constitue son extension, dépend des règles du système de chiffrement utilisé ; généralement, l'extension est la sous-chaîne qui suit la dernière occurrence, le cas échéant, du point ( par exemple : `.cs`txt est l'extension du nom de fichier ` readme.txt.cs`, et html`.cs` celle de `.cs` index.html). Sur les systèmes de fichiers de certains systèmes mainframe tels que CMS dans VM et VMS , ainsi que sur les systèmes PC tels que CP/M et les systèmes dérivés tels que MS-DOS , l'extension constitue un espace de noms distinct du nom de fichier. Sous DOS et Windows de Microsoft , les extensions telles que EXE`.cs` COMou ` BAT.cs` indiquent qu'un fichier est un exécutable . Dans OS/360 et ses successeurs , la partie du nom du jeu de données qui suit le dernier point, appelée qualificateur de bas niveau, est traitée comme une extension par certains logiciels, par exemple TSO EDIT, mais elle n'a aucune signification particulière pour le système d'exploitation lui-même ; il en va de même pour les fichiers Unix dans MVS.

À l'origine, l'extension de nom de fichier servait à déterminer le type générique du fichier. La nécessité de condenser le type d'un fichier en trois caractères a souvent conduit à des extensions abrégées. On utilise par exemple `.c` pour les fichiers graphiques, `.c` pour le texte brut et `.c` pour la musique. Cependant, la multitude de logiciels gérant ces types de données (et d'autres) de diverses manières a conduit à l'association étroite des extensions de nom de fichier avec certains produits, voire des versions spécifiques. Par exemple, les premiers fichiers WordStar utilisaient ` .c` ou ` .c`, où `n` correspondait au numéro de version du programme. De plus, des usages contradictoires de certaines extensions de nom de fichier sont apparus. On peut citer `.c` , utilisé à la fois pour les packages ManagePro et les fichiers RealPlayer Media. D'autres extensions existent , comme `.c`, partagée par les polices DESQview , les registres financiers Quicken et les images QuickTime ; , partagée par les scripts GrabIt et les images ROM Game Boy Advance ; .c`, utilisée pour SmallBasic et Scratch ; et `.c`, utilisée pour Dynamix Three Space et DTS ..GFX.TXT.MUS.WS.WSn.rpm.qif.gba.sb.dts

Comparé au type MIME

Dans de nombreux protocoles Internet , tels que HTTP et le courrier électronique MIME , le type d'un flux binaire est indiqué par son type de média (ou type MIME), plutôt que par une extension de fichier. Cette information figure sur une ligne de texte précédant le flux, par exemple : Content-type: text/plain .

Il n'existe pas de correspondance standard entre les extensions de fichiers et les types de médias, ce qui peut entraîner des incompatibilités d'interprétation entre les auteurs, les serveurs web et les logiciels clients lors du transfert de fichiers sur Internet. Par exemple, un auteur peut spécifier l'extension svgz pour un fichier SVG compressé , mais un serveur web ne reconnaissant pas cette extension risque de ne pas envoyer le type de contenu approprié (application/svg+xml) ni son en-tête de compression requis, empêchant ainsi les navigateurs web d'interpréter et d'afficher correctement l'image.

BeOS , dont le système de fichiers BFS prend en charge les attributs étendus, associe le type de média d'un fichier à un attribut étendu. Certains environnements de bureau , tels que KDE Plasma et GNOME , associent un type de média à un fichier en examinant à la fois l'extension du nom de fichier et son contenu, à la manière de la commande `file` , par une approche heuristique . Ils choisissent l'application à lancer à l'ouverture d'un fichier en fonction de ce type de média, réduisant ainsi la dépendance aux extensions de nom de fichier. macOS utilise à la fois les extensions de nom de fichier, les types de média et les codes de type de fichier pour sélectionner un identificateur de type uniforme (UTI) permettant d'identifier le type de fichier en interne.

Programmes exécutables

L'utilisation d'une extension de nom de fichier dans un nom de commande apparaît occasionnellement, généralement comme un effet secondaire de la commande ayant été implémentée comme un script, par exemple pour le shell Bourne ou pour Python , et le nom de l'interpréteur étant suffixé au nom de la commande, une pratique courante sur les systèmes qui s'appuient sur des associations entre l'extension de nom de fichier et l'interpréteur, mais fortement dépréciée dans les systèmes de type Unix , tels que Linux , Oracle Solaris , les systèmes basés sur BSD et macOS d'Apple , où l'interpréteur est normalement spécifié comme un en-tête dans le script (« shebang »).

Sur les systèmes à association, l'extension de fichier est généralement associée à un interpréteur unique, défini à l'échelle du système, pour cette extension (par exemple, « .py » pour Python). La commande elle-même est exécutable en ligne de commande même sans extension (sous réserve d'une configuration appropriée). Si le langage d'implémentation est modifié, l'extension de la commande l'est également, et le système d'exploitation garantit une API cohérente en autorisant l'utilisation de la même version sans extension dans les deux cas. Cette méthode souffre du caractère quasi global de l'association, ainsi que du fait que les développeurs évitent parfois les extensions lors de l'appel de programmes, et qu'ils ne peuvent pas imposer cette pratique. Windows est le seul système d'exploitation à utiliser encore largement ce mécanisme.

On systems with interpreter directives, including virtually all versions of Unix, command name extensions have no special significance, and are by standard practice not used, since the primary method to set interpreters for scripts is to start them with a single line specifying the interpreter to use. In these environments, including the extension in a command name unnecessarily exposes an implementation detail which puts all references to the commands from other programs at future risk if the implementation changes. For example, it would be perfectly normal for a shell script to be reimplemented in Python or Ruby, and later in C or C++, all of which would change the name of the command were extensions used. Without extensions, a program always has the same extension-less name, with only the interpreter directive or magic number changing, and references to the program from other programs remain valid.

Security issues

File extensions alone are not a reliable indicator of a file's type, as the extension can be modified without changing the file's contents, such as to disguise malicious content. Therefore, especially in the context of cybersecurity, for a file in a file format that has a magic number, which is a distinctive sequence of bytes affixed to a file's header, the file's true nature should be determined by checking the magic number. This is accomplished using file identification software or a hex editor, which provides a hex dump of a file's contents. For example, on UNIX-like systems, it is not uncommon to find files with no extensions at all, as commands such as file are meant to be used instead, and will read the file's header to determine its content.

Malware such as Trojan horses typically takes the form of an executable, but any file type that performs input/output operations may contain malicious code. A few data file types such as PDFs have been found to be vulnerable to exploits that cause buffer overflows. There have been instances of malware crafted to exploit such vulnerabilities in some Windows applications when opening a file with an overly long, unhandled filename extension.

Les gestionnaires de fichiers peuvent proposer une option pour masquer les extensions de fichiers. C'est le cas de l'Explorateur de fichiers , le navigateur de fichiers fourni avec Microsoft Windows , qui, par défaut, n'affiche pas les extensions. Des utilisateurs malveillants ont tenté de propager des virus et des vers informatiques en utilisant des noms de fichiers de la forme `.vm` LOVE-LETTER-FOR-YOU.TXT.vbs. L'idée est de faire apparaître le fichier comme LOVE-LETTER-FOR-YOU.TXTun simple fichier texte inoffensif, sans alerter l'utilisateur qu'il s'agit en réalité d'un programme malveillant, ici écrit en VBScript . ReactOS affiche par défaut les extensions de fichiers dans son explorateur . Les versions ultérieures de Windows (à partir de Windows XP Service Pack 2 et Windows Server 2003 ) intègrent des listes personnalisables d'extensions de fichiers considérées comme « dangereuses » dans certains contextes, notamment lors de téléchargements depuis Internet ou de réceptions en pièce jointe d'un courriel. Les systèmes antivirus modernes contribuent également à protéger les utilisateurs contre ces tentatives d'attaque.

Un virus peut s'associer à un fichier exécutable sans le modifier. Ces virus, appelés virus compagnons , s'attachent de manière à être exécutés lors de la requête du fichier original. Une méthode employée consiste à donner au virus le même nom que le fichier cible, mais avec une extension différente à laquelle le système d'exploitation accorde la priorité, et souvent à lui attribuer l' attribut « caché » pour dissimuler la présence du logiciel malveillant. L'efficacité de cette approche dépend de la tentative de l'utilisateur d'ouvrir le fichier souhaité en saisissant une commande et de la présence ou non de l'extension. Les versions récentes de DOS et de Windows vérifient et tentent d'exécuter les .COMfichiers .cs par défaut en premier, suivis des fichiers .ds .EXEet enfin .BATdes fichiers .gitignore. Dans ce cas, le fichier infecté est celui qui possède l' .COMextension .gitignore, que l'utilisateur exécute à son insu.

Certains virus exploitent la similarité entre le domaine de premier niveau « .com » et l' extension de nom de fichier en envoyant par courriel des pièces jointes malveillantes contenant des fichiers de commandes exécutables, sous des noms superficiellement similaires à des URL ( par exemple , « myparty.yahoo.com »), de sorte que les utilisateurs non avertis cliquent sur des liens intégrés au courriel qu'ils pensent mener à des sites Web, mais qui téléchargent et exécutent en réalité les pièces jointes malveillantes..COM

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index