Enseignement scientifique ∼ Les fichiers en informatique Type de fichiers Les divers éléments d'un ordinateur (microprocesseur, mémoire, carte graphique, écran, etc.) fonctionnent ensembles grâce à un système d'exploitation (OS pour Operating System). Les systèmes d'exploitation les plus utilisés sont : Windows, OSX, Ubuntu, Debian, Android, iOS etc.
Sur chaque système d'exploitation il existe des fichiers exécutables, c'est-à-dire des fichiers capables de créer un processus par le système d'exploitation. Un fichier de données (texte, image etc.) n'est par exemple pas un fichier exécutable.
OS Extension les plus courantes des fichiers exécutables
Windows .exe .dll .sys
OSX .app .exec
Ubuntu/Debian .sh .bin .bat
Android .apk
Il peut être ainsi dangereux de télécharger et lancer un fichier exécutable dont on ne connaît pas la provenance. Les virus informatiques sont tous des fichiers exécutables. Taille des fichiers Les unités de mémoire en informatique L'unité de base de la mémoire d'un ordinateur est le bit (0 ou 1). Cette information est stockée dans une des cases de la mémoire. Cependant les ordinateurs possèdent une nombre trop important de cases mémoires, de l'ordre de plusieurs milliards à l'heure actuelle, pour que le bit soit une unité pratique. On regroupe ainsi les bits par $8$ pour obtenir un octet. Puis les octets par $1\,000$ pour obtenir des kilo octets ou par $1\,024$ pour obtenir des kibioctets, etc.
On rappelle ici les informations du cours précédents :
Préfixe Capacité mémoire en octets Puissance de deux
Kio 1024 $2^{10}$ octets
Mio 1 048 576 $2^{20}$ octets
Gio 1 073 741 824 $2^{30}$ octets
Par convention, on utilise souvent des puissances de 1024, qui est la puissance de deux la plus proche de 1000. Or, dans le langage courant, kilo, méga et giga sont des multiples de 1000.
Autrefois, on utilisait les termes kilo, méga et giga à la place de kibi, mebi et gibi, par abus de langage. Mais peu de personnes sont au courant de l'existence de ces nouvelles unités, et celles-ci sont rarement utilisées. Cette confusion permet aux fabricants de disques durs de nous « arnaquer » : Ceux-ci donnent la capacité des disques durs qu'ils vendent en kilo, mega ou giga octets : l’acheteur croit implicitement avoir une capacité exprimée en kibi, mebi ou gibi octets, et se retrouve avec un disque dur qui contient moins de mémoire que prévu.
Ainsi : Une clé usb de 16Go représente en fait $\dfrac{16}{1,073741824}$ $\simeq$ $14,90$ Gio. Ou encore un disque dur d'un To contient, à peu près, 931 Gio. Types de fichiers les plus utilisés Les types de fichiers les plus utilisés en informatique sont les fichiers images (jpg, gif, png, bmp, etc.), musicaux (mp3, wav, ogg, etc.), vidéos (mp4, mpeg, mkv, avi, etc. ) et de documents (pdf, doc, odt, html, etc.).
Voici quelques exemples de taille de fichiers :
Exemple de fichiers Taille
Image bmp 1920×1080 pixels 6,2 Mio
Image gif 1920×1080 pixels 2,6 Kio
Image png 1920×1080 pixels (90 % de taux de compressions) 9,0 kio
Image jpg 1920×1080 pixels (90 % de taux de compressions) 25,5 kio
Fichier wav de 38 min 398,8 Mio
Fichier mp3 de 38 min 37,1 Mio

Les formats vidéos sont assez variés (SD, HD, 4K) et les types de fichiers également. Une vidéo de deux heures en format dvd a une taille généralement d'un peu moins de $800$ Mio, mais en format HD ou full HD de $2$ à $4$ Gio et encore plus en 4K. Le cas particulier des fichiers textes Les fichiers textes contiennent simplement des caractères (lettres majuscules et minuscules, chiffre et caractères spéciaux du clavier). Ceux-ci doivent être codés puisqu'un ordinateur ne fonctionne qu'avec des bits. On utilise pour cela le codage ASCII (American Standard Code for Information Interchange) étendu où à chaque caractère correspond un code en binaire. Pour des raisons de lisibilité nous donnons également le code décimal (ainsi que l'octal et hexadécimal) dans le tableau ci-dessous :
       Décimal   Octal   Hex  Binaire   Caractère
       -------   -----   ---  --------    ------
         000      000    00   00000000      NUL    (Null char.)
         001      001    01   00000001      SOH    (Start of Header)
         002      002    02   00000010      STX    (Start of Text)
         003      003    03   00000011      ETX    (End of Text)
         004      004    04   00000100      EOT    (End of Transmission)
         005      005    05   00000101      ENQ    (Enquiry)
         006      006    06   00000110      ACK    (Acknowledgment)
         007      007    07   00000111      BEL    (Bell)
         008      010    08   00001000       BS    (Backspace)
         009      011    09   00001001       HT    (Horizontal Tab)
         010      012    0A   00001010       LF    (Line Feed)
         011      013    0B   00001011       VT    (Vertical Tab)
         012      014    0C   00001100       FF    (Form Feed)
         013      015    0D   00001101       CR    (Carriage Return)
         014      016    0E   00001110       SO    (Shift Out)
         015      017    0F   00001111       SI    (Shift In)
         016      020    10   00010000      DLE    (Data Link Escape)
         017      021    11   00010001      DC1    (XON)(Device Control 1)
         018      022    12   00010010      DC2    (Device Control 2)
         019      023    13   00010011      DC3    (XOFF)(Device Control 3)
         020      024    14   00010100      DC4    (Device Control 4)
         021      025    15   00010101      NAK    (Negative Acknowledgement)
         022      026    16   00010110      SYN    (Synchronous Idle)
         023      027    17   00010111      ETB    (End of Trans. Block)
         024      030    18   00011000      CAN    (Cancel)
         025      031    19   00011001       EM    (End of Medium)
         026      032    1A   00011010      SUB    (Substitute)
         027      033    1B   00011011      ESC    (Escape)
         028      034    1C   00011100       FS    (File Separator)
         029      035    1D   00011101       GS    (Group Separator)
         030      036    1E   00011110       RS    (Request to Send)(Record Separator)
         031      037    1F   00011111       US    (Unit Separator)
         032      040    20   00100000       SP    (Space)
         033      041    21   00100001        !    (exclamation mark)
         034      042    22   00100010        "    (double quote)
         035      043    23   00100011        #    (number sign)
         036      044    24   00100100        $    (dollar sign)
         037      045    25   00100101        %    (percent)
         038      046    26   00100110        &    (ampersand)
         039      047    27   00100111        '    (single quote)
         040      050    28   00101000        (    (left opening parenthesis)
         041      051    29   00101001        )    (right closing parenthesis)
         042      052    2A   00101010        *    (asterisk)
         043      053    2B   00101011        +    (plus)
         044      054    2C   00101100        ,    (comma)
         045      055    2D   00101101        -    (minus or dash)
         046      056    2E   00101110        .    (dot)
         047      057    2F   00101111        /    (forward slash)
         048      060    30   00110000        0
         049      061    31   00110001        1
         050      062    32   00110010        2
         051      063    33   00110011        3
         052      064    34   00110100        4
         053      065    35   00110101        5
         054      066    36   00110110        6
         055      067    37   00110111        7
         056      070    38   00111000        8
         057      071    39   00111001        9
         058      072    3A   00111010        :    (colon)
         059      073    3B   00111011        ;    (semi-colon)
         060      074    3C   00111100        <    (less than sign)
         061      075    3D   00111101        =    (equal sign)
         062      076    3E   00111110        >    (greater than sign)
         063      077    3F   00111111        ?    (question mark)
         064      100    40   01000000        @    (AT symbol)
         065      101    41   01000001        A
         066      102    42   01000010        B
         067      103    43   01000011        C
         068      104    44   01000100        D
         069      105    45   01000101        E
         070      106    46   01000110        F
         071      107    47   01000111        G
         072      110    48   01001000        H
         073      111    49   01001001        I
         074      112    4A   01001010        J
         075      113    4B   01001011        K
         076      114    4C   01001100        L
         077      115    4D   01001101        M
         078      116    4E   01001110        N
         079      117    4F   01001111        O
         080      120    50   01010000        P
         081      121    51   01010001        Q
         082      122    52   01010010        R
         083      123    53   01010011        S
         084      124    54   01010100        T
         085      125    55   01010101        U
         086      126    56   01010110        V
         087      127    57   01010111        W
         088      130    58   01011000        X
         089      131    59   01011001        Y
         090      132    5A   01011010        Z
         091      133    5B   01011011        [    (left opening bracket)
         092      134    5C   01011100        \    (back slash)
         093      135    5D   01011101        ]    (right closing bracket)
         094      136    5E   01011110        ^    (caret cirumflex)
         095      137    5F   01011111        _    (underscore)
         096      140    60   01100000        `
         097      141    61   01100001        a
         098      142    62   01100010        b
         099      143    63   01100011        c
         100      144    64   01100100        d
         101      145    65   01100101        e
         102      146    66   01100110        f
         103      147    67   01100111        g
         104      150    68   01101000        h
         105      151    69   01101001        i
         106      152    6A   01101010        j
         107      153    6B   01101011        k
         108      154    6C   01101100        l
         109      155    6D   01101101        m
         110      156    6E   01101110        n
         111      157    6F   01101111        o
         112      160    70   01110000        p
         113      161    71   01110001        q
         114      162    72   01110010        r
         115      163    73   01110011        s
         116      164    74   01110100        t
         117      165    75   01110101        u
         118      166    76   01110110        v
         119      167    77   01110111        w
         120      170    78   01111000        x
         121      171    79   01111001        y
         122      172    7A   01111010        z
         123      173    7B   01111011        {    (left opening brace)
         124      174    7C   01111100        |    (vertical bar)
         125      175    7D   01111101        }    (right closing brace)
         126      176    7E   01111110        ~    (tilde)
         127      177    7F   01111111      DEL    (delete)

Nous voyons ainsi que chaque caractère d'un fichier texte occupe un octet en mémoire (soit huit bits). Ainsi un texte de 2 000 caractères aura une taille de 2 000 octets soit 16 000 bits. Un fichier de 100 caractères sous Office 2010 a une taille de 12,8 kio (soit 13 107 octets alors que 100 octets sont seulement nécessaires pour les caractères). Avec un logiciel tel que Gedit sous Ubuntu un même fichier de 100 caractères a une taille de 101 octets.