.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.
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 a adopté les concepts du CTSS comme base de ses propres expériences de temps partagé au Centre scientifique de Cambridge, dans le même bâtiment du MIT où le CTSS était développé. Ce projet a donné naissance au Conversational Monitor System (initialement appelé Cambridge ) pour le System/360 . Le concept a également été adopté très tôt par DEC lors de ses expériences de temps partagé sur le PDP-6 et son successeur, le PDP-10 . Ce dernier est devenu TOPS-10 , l'un des produits phares de DEC jusque dans les années 1980, suivi par RT-11 . Ce sont les versions de DEC qui ont inspiré les systèmes d'exploitation pour micro-ordinateurs ultérieurs à adopter le même concept, d'abord avec CP/M , puis avec DOS .
Le système de fichiers Multics a poussé ce concept plus loin en intégrant l'extension au nom de fichier lui-même, au lieu d'utiliser un indicateur de type dédié. Cette évolution s'inscrivait dans un développement plus large du système de fichiers, prenant en charge les noms de fichiers de longueur variable jusqu'à 255 caractères. Avec des noms aussi longs, il n'était plus nécessaire de réserver de l'espace de stockage au seul type, et le point (« . ») était considéré comme un caractère parmi d'autres. Certains composants de Multics, ainsi que les applications s'exécutant sur ce système, utilisent des suffixes pour indiquer les types de fichiers, mais tous les fichiers n'ont pas besoin d'en avoir un ; par exemple, les exécutables et les fichiers texte ordinaires n'en possèdent généralement pas. Ce sont généralement les utilitaires destinés à l'utilisateur qui, le cas échéant, examinaient la dernière partie du nom, suivie de points, pour en extraire le type. Multics a inspiré UNIX , qui a adopté le même modèle.
Prise en charge du système d'exploitation et du système de fichiers
Les systèmes de fichiers des systèmes d'exploitation de type UNIX stockent également le nom de fichier sous forme d'une seule chaîne de caractères, le point (« . ») étant considéré comme un caractère parmi d'autres. Un fichier possédant plusieurs suffixes est parfois qualifié d'« extension », bien que la terminologie varie à ce sujet. La plupart des auteurs définissent l'extension de manière à n'autoriser qu'une seule extension par nom de fichier. La présence de plusieurs extensions représente généralement des transformations imbriquées, comme par exemple `tar` (l' extension `tar` indique que le fichier est une archive tar contenant un ou plusieurs fichiers, et l' extension `tar` indique que l'archive tar est compressée avec `gzip` ). Les programmes transformant ou créant des fichiers peuvent ajouter l'extension appropriée aux noms déduits des noms de fichiers d'entrée (sauf si un nom de fichier de sortie est explicitement fourni), mais les programmes lisant des fichiers ignorent généralement cette information ; elle est principalement destinée à l'utilisateur. Il est plus courant, notamment pour les fichiers binaires, que le fichier contienne des métadonnées internes ou externes décrivant son contenu. Ce modèle exige généralement que le nom de fichier complet soit fourni dans les commandes, tandis que l'approche par métadonnées permet souvent d'omettre l'extension..gz
Sous DOS et Windows 16 bits , les noms de fichiers comportent au maximum 8 caractères, un point et une extension de trois lettres. Le système de fichiers FAT, également pour DOS et Windows, stocke les noms de fichiers sous la forme d'un nom de 8 caractères et d'une extension de trois caractères. Le point n'est pas enregistré.
Le système de fichiers haute performance (HPFS), utilisé dans les systèmes d' exploitation OS/2 de Microsoft et d' IBM , stocke le nom de fichier sous forme d'une seule chaîne de caractères, le point étant considéré comme un caractère parmi d'autres. La convention d'utilisation des suffixes a perduré, même si HPFS prend en charge les attributs étendus, permettant ainsi de stocker le type d'un fichier comme attribut étendu.
Le système de fichiers natif de Windows NT, NTFS , et son successeur ReFS , stockent également le nom de fichier sous forme d'une seule chaîne de caractères ; là encore, la convention d'utiliser des suffixes pour simuler les extensions a été maintenue, afin d'assurer la compatibilité avec les versions existantes de Windows. Dans Windows NT 3.5 , une variante du système de fichiers FAT, appelée VFAT, est apparue ; elle prend en charge les noms de fichiers plus longs, le nom de fichier étant traité comme une seule chaîne de caractères.
Windows 95 , avec VFAT, a introduit la prise en charge des noms de fichiers longs et a supprimé la séparation nom/extension de 8.3 dans les noms de fichiers des systèmes Windows non NT.
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
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.
Sur les systèmes dotés de directives d'interprétation , notamment la quasi-totalité des versions d'Unix, les extensions de nom de commande n'ont aucune signification particulière et ne sont généralement pas utilisées, car la méthode principale pour spécifier l'interpréteur d'un script consiste à le lancer avec une seule ligne indiquant l'interpréteur à utiliser. Dans ces environnements, inclure l'extension dans un nom de commande expose inutilement un détail d'implémentation, ce qui rendrait invalides toutes les références à ces commandes depuis d'autres programmes en cas de modification de l'implémentation. Par exemple, il serait tout à fait normal qu'un script shell soit réimplémenté en Python ou Ruby, puis en C ou C++, langages dans lesquels le nom de la commande serait modifié si des extensions étaient utilisées. Sans extensions, un programme conserve toujours le même nom sans extension, seule la directive d'interprétation ou le nombre magique changeant, et les références au programme depuis d'autres programmes restent valides.
Problèmes de sécurité
L'extension d'un fichier ne constitue pas à elle seule un indicateur fiable de son type, car elle peut être modifiée sans altérer son contenu, par exemple pour dissimuler un contenu malveillant . Par conséquent, notamment en matière de cybersécurité , pour un fichier dont le format comporte un « nombre magique » (une séquence d'octets unique ajoutée à son en-tête), la nature du fichier doit être déterminée en vérifiant ce nombre. Ceci s'effectue à l'aide d'un logiciel d'identification de fichiers ou d'un éditeur hexadécimal , qui fournit un dump hexadécimal du contenu du fichier. Par exemple, sur les systèmes de type UNIX , il n'est pas rare de trouver des fichiers sans extension, car des commandes telles que `ls` filesont conçues à cet effet et lisent l'en-tête du fichier pour en déterminer le contenu.les chevaux de Troie, se présentent généralement sous la forme d'un fichier exécutable , mais tout type de fichier effectuant des opérations d'entrée/sortie peut contenir du code malveillant. Certains types de fichiers de données, comme les PDF, se sont révélés vulnérables à des failles de sécurité provoquant des dépassements de tampon . Des cas de logiciels malveillants conçus pour exploiter de telles vulnérabilités dans certaines applications Windows ont été recensés, notamment lors de l'ouverture d'un fichier dont l'extension était excessivement longue et non gérée.
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.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