diff --git a/theorie/formats.tml b/theorie/formats.tml index 8d25ce5..43c1eef 100644 --- a/theorie/formats.tml +++ b/theorie/formats.tml @@ -11,12 +11,361 @@

Formats de fichiers

-En construction... +Un fichier informatique est une suite de nombres compris entre 0 et +255 (chacun de ces nombres est ce qu'on appelle un octet). Suivant le type +d'information que l'on veut stocker dans un fichier (texte brut, texte +formatté, image, son, programmes, ...), les logiciels organisent les +données de manière spécifique pour en faire des suites d'octets. La +manière d'organiser un type de donnée pour en faire un fichier s'appelle +un format. +

+ +

+Cette page a pour but d'expliquer ce qu'est un format de fichier (sans +entrer dans les détails techniques rébarbatifs). Pour savoir plus +concrètement comment ouvrir tel ou tel fichier, ou comment convertir mon +fichier dans un autre format, allez voir le +mémo sur les formats. +

+ +

Les deux grands types de formats

+ +

Les deux sous-sections qui suivent décrivent les deux grandes familles +de formats informatiques.

+ +

Les formats textes ou encore « lisibles par un humain »

+ +

+Quand vous prenez un stylo et un papier et que vous écrivez des +lettres, des chiffres, des symboles de ponctuation, par exemple pour +noter un numéro de téléphone, un cours, une dissertation, ou une lettre, +n'importe quel autre être humain sachant lire pourra comprendre les +informations que vous aurez écrit, au moins en supposant +qu'il parle la même langue que vous, cf. notre page +sur les encodages et les langues. +

+ +

+Des suites de caractères (plus ou moins nombreux) griffonnés sur un +papier ont donc ceci de commun qu'il s'agit de texte brut. Le +format informatique (générique) le plus simple est ainsi constitué de +suites de caractères, et de retours à la ligne. À chaque caractère +correspond un ou plusieurs octets, c'est-à-dire des nombres compris entre +0 et 255, selon une règle définie par un encodage particulier (par +exemple, dans l'encodage Latin-1 (le plus courant dans les pays +occidentaux), un « A » est codé par le nombre 65 et à chaque caractère +correspond un seul octet). +

+ +

+Lorsque vous avez une fichier sous un format « texte brut », vous +pouvez le modifier avec n'importe quel éditeur de texte, de +même que pour écrire sur un bout de papier, vous pouvez utiliser +n'importe quel stylo. +

+ +

On a vu que l'on pouvait noter tout et n'importe quoi dans un fichier +texte, mais pour certains usages, on demande néanmoins à des fichiers au +format texte de respecter certaines règles, une certaine syntaxe. Voici +quelques exemples de tâches spécifiques qui utilisent des fichiers au +format texte brut : +

+ +

Écrire des pages Web

+ +

+La page Web que vous lisez est au format HTML (plus précisément, +il s'agit d'XHTML 1.0 Strict). En plus de contenir du texte en +français « brut », certaines balises permettent de signifier à +votre navigateur Web comment il doit afficher la page : une barre de +navigation à gauche, nos choix de couleurs, etc... En voici un extrait : +

+ +
+<p>
+Quand vous prenez un stylo et un papier et que vous écrivez des
+lettres, des chiffres, des symboles de ponctuation, par exemple pour
+noter un numéro de téléphone, un cours, une dissertation, une lettre,
+n'importe quel autre être humain sachant lire (au moins en supposant
+qu'il parle la même langue que vous, cf. notre <a href="encodages.html">page
+sur les encodages et les langues</a>) pourra comprendre les informations
+que vous écrivez.
+</p> 
+
+ +

Ainsi par exemple, ce qui se trouve entre <p> et +</p> est un paraphaphe, ou encore un lien hypertexte est dans +une balise <a>.

+ +

Envoyer un courrier électronique

+ +

+Quand vous envoyez un courrier électronique avec votre logiciel préféré, +celui-ci va envoyer votre message dans un format particulier : les +premières lignes constituent ce qu'on appelle l'en-tete du message, +vient ensuite une ligne vide, et tout ce qui vient ensuite constitue le +corps du message. L'en-tete du message sert à donner des informations sur +l'expéditeur du message, la date, le sujet, l'encodage utilisé, etc... +ainsi que quelques informations techniques. Voici un exemple : +

+ +
+Return-Path: <schtroumpfette@greement.non-existent.invalid>
+Delivered-To: scoubidou@greement.non-existent.invalid
+Received: (qmail 23265 invoked by uid 1033); 17 Sep 2003 15:55:14 -0000
+From: schtroumpfette@greement.non-existent.invalid
+Date: Wed, 17 Sep 2003 17:55:14 +0200
+To: Scoubidou <scoubidou@greement.non-existent.invalid>
+Subject: Bonjour
+Message-ID: <20030917155514.GA23246@greement.non-existent.invalid>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+User-Agent: Mutt/1.5.4i
+
+Bonjour,
+
+  J'aimerais discuter avec vous.
+
+-- 
+La schtroumpfette
+
+ +

Programmer

+ +

+Les programmes que vous utilisez ont été développés dans différents +langages : C, C++, Perl, Shell, etc... +Les codes sources de ces programmes sont dans un format texte, ce qui ne +les empêche pas de respecter une syntaxe précise. Voici à quoi cela +peut ressembler : +

+
+/* bonjour.c : comment dire « Bonjour. » en C */
+#include <stdio.h>
+
+int main (int argc, char **argv) {
+  printf("Bonjour.\n");
+  return(0);
+}
+
+ +
+#!/bin/sh
+# Comment dire « Bonjour. » en Shell
+exec echo Bonjour.
+
+ +

Suivant que le langage est interprêté ou compilé, il sera ou non +nécessaire de convertir votre code source dans un format éxécutable en +utilisant un compilateur. +

+ +

Les formats binaires

+ +

À l'opposé des formats textes, se trouvent les formats binaires. +L'information que l'on stocke dans de tels fichiers ne se résume pas à +des suites de caractères.

+ +

+Avant de continuer, précisons que les noms de fichiers comportent souvent +une extension, par exemple dans Le_coucou_au_fond_des_bois.ogg, +l'extension est ogg. L'extension permet souvent de savoir +rapidement à quel format on a à faire. Attention cependant au fait que +parfois derrière un fichier d'une certaine extension peut se cacher sous +un autre (cf. le programme +file) ! +

+ +

Voici brièvement quelques exemples : +

+ +

Images bitmap

+ +

Une image peut-être stockée comme une grille de petits +points (pixels), chaque pixel ayant une certaine « couleur ». Une fois que +l'on a associé certains octets aux différentes couleurs +(par exemple 3 octets, un pour la composante rouge, un autre pour la +composante bleue, et un dernier pour la composante verte), on peut mettre +au début du fichier la largeur et la hauteur de l'image, et ensuite +parcourir l'image ligne par ligne, et écrire la séquence d'octets +qui correspond à chaque pixel de l'image. Le type de format que je viens +de décrire est extrêmement rudimentaire (dans cette famille de format, on +trouve le format bmp par exemple) ; des fichiers dans un tel +format occuperont beaucoup de place sur les disques durs, c'est pourquoi +il existe des formats qui contiennent des optimisations pour réduire +sensiblement la taille des fichiers d'images (exemples : png, +jpg). +

+ +

Son échantillonné

+ +

C'est comme pour les images : on découpe le son +en intervalles de temps très brefs (il y a +le plus souvent autour de quarante +mille intervalles par seconde) et on note la valeur du signal +électrique correspondant, ce qui donne un nombre entier (avec signe) +que l'on peut stocker. Pour un enregistrement en stereo, on note +parallèlement les valeurs gauche et droite. Comme formats de ce type, on +trouve les formats wav, au +De même que pour les images, il existe des techniques de compression qui +permettent de réduire considérablement la taille qu'occupent les fichiers +sonores. On dispose ainsi des formats ogg et mp3. +

+ +

Il existe d'autres manières de stocker de la « musique », les +fichiers midi, où ne sont enregistrées que des suites +d'indications sur les notes que les musiciens jouent sur leurs +instruments (d'une certaine manière, ces fichiers contiennent +l'information contenue sur une « partition »). Quand vous lisez ces +fichiers avec un programme convenable, un synthétiseur (logiciel ou +matériel) va convertir ces données en un véritable son. +

+ +

+Évidemment, la qualité musicale qui sort des hauts-parleurs quand vous +jouez des fichiers midi est très loin d'être à la hauteur de ce qui +parvient à vos oreilles quand vous écoutez un orchestre composé de +musiciens talentueux ! +

+ +

Programmes éxécutables

+ +

Suivant la famille du système +d'exploitation que vous utilisez (Unix, Windows, Mac), et même à +l'intérieur d'une famille suivant la variante du système ou le type de +processeur, les programmes sont stockés dans un format différent. La +partie la plus imporante d'un fichier éxécutable est la zone contenant le +« langage machine » qui grosso modo contient la liste des instructions +qui seront éxécutées par le processeur. On ne modifie pas +directement un fichier éxécutable. +

+ +

Cas particuliers

+ +

Traitements de texte

+ +

+Certains logiciels de traitement de texte utilisent un format binaire +pour stocker le texte avec son formattage (taille des fontes, caractères +gras, italiques, etc...), plus précisément, ils utilisent +plusieurs formats : d'une version à l'autre, le logiciel +Microsoft Word utilise un format plus ou moins différent de la version +précédente, ce qui pose beaucoup de problèmes, surtout si vous n'avez pas +la version « dernier cri » du logiciel en question. +

+ +

+À l'opposé, certains traitements de textes utilisent un format texte, +de façon similaire au format HTML utilisé sur le Web. C'est +par exemple le cas du programme +LaTeX. Toutes les informations +vous mettez dans un fichier LaTeX (extension tex) sont +lisibles et modifiables dans votre éditeur de texte préféré, et au moins +vous être sûr que le format ne vas pas changer significativement d'une +version à l'autre. En voici un échantillon : +

+ +
+\documentclass{article}
+\usepackage[francais]{babel}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+
+\begin{document}
+Ceci est un fichier \TeX.
+\end{document}
+
+ +

+Vous devez utiliser le programme latex pour mettre en page +votre fichier tex. Il va ainsi écrire un fichier binaire +dans un format particulier dvi qui contient essentiellement +beaucoup d'informations qui ressemblent à +« À tel endroit de la page numéro 42, afficher MU dans une fonte qui +fait 5.08 cm de hauteur. » +

+ +

Documents mis en page

+ +

Ce sont des fichiers « prêts à être imprimés », ces fichiers +contiennent toutes les instructions que l'on a pratiquement plus qu'à +envoyer à l'imprimante (ce qui nécessite parfois une conversion).

+ +

Portable Document Format (pdf)

+ +

+Mais, encore une fois, il existe plusieurs formats de ce type. Nous avons +déjà évoqué ci-desus le format dvi utilisé par LaTeX. On +dispose aussi du format pdf (Portable Document Format) développé +par Adobe, vous avez très certainement déjà rencontré de tels fichiers en +naviguant sur le Web. Les fichiers dvi et pdf sont au +format binaire. +

+ +

PostScript (ps)

+ +

+Un autre format important dans ce contexte est le format +PostScript (lui aussi développé par Adobe). Il est depuis +quelques années utilisé par la plupart des imprimates laser. Son grand +avantage est qu'il est en mode texte et qu'il ne fait pas d'hypothèse sur +la résolution de l'imprimante par exemple, contrairement aux +formats utilisés auparavant pour envoyer des instructions aux +imprimantes ! Le format PostScript est un véritable langage de +programmation (si on veut dessiner 100 fois la même chose, on a pas +besoin de réécrire 100 fois les mêmes instructions par exemple). +

+ +

Méta-formats

+ +

Archives

+ +

+Dans certaines situations, il peut être commode de mettre plusieurs +fichiers dans un seul, on appelle cela une archive. En général, +au début d'un tel fichier se trouve les noms des fichiers contenus à +l'intérieur avec leur taille (ainsi que d'autres informations +techniques), puis viennent ensuite chacun des fichiers les uns à la suite +des autres. Le format le plus courant pour les fichiers archives est le +format tar. +

+ +

+Plus généralement, on a la notion de système de fichiers : il s'agit de +déterminer comment organiser les fichiers sur un disque dur et d'inscrire +les méta-informations, à savoir d'écrire quelque part la liste des +fichiers présents sur le disque ainsi que la position sur le disque où +ils sont écrits. Là, encore, de nombreuses possibilités existent : sous +Linux, on utilise en général ext2, ext3 ou +ReiserFS, sous Windows, il y a des systèmes de fichiers +fat, NTSC, etc... +

+ +

Fichiers compressés

+ +

+Quand on a un fichier un peu long que l'on ne consulte pas +régulièrement, on peut décider de le comprimer pour qu'il prenne moins de +place sur le disque dur. Des outils sont faits pour cela. L'exemple +typique de format compressé est donné par les fichiers « gzippés » +(extension gz). Ainsi par exemple, un fichier PostScript +dea.ps, une fois comprimé s'appelle dea.ps.gz. +

+ +

+Le clou du spectacle s'obtient en combinant les deux méta-formats évoqués +ci-dessus : comprimer un fichier d'archive comprenant plusieurs +fichiers. On obtient alors un fichier .tar.gz (que certains +abrègent en .tgz) ; c'est un général sous cette forme que +l'on peut télécharger le code source de la plupart des logiciels libres.

Auteur : Joël Riou. -Dernière modification le . +Dernière modification le .