Enseignement scientifique ∼ Les fichiers en informatiqueType 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 fichiersLes 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 :
1 Ko = 1000 octets et 1kio = 1024 octets,
1 Mo = 1000 Ko = $10^6$ octets et 1 Mio = 1024 Kio = 1024×1024 octets = 1 048 576 octets,
8 Go = 8000 Mo = $8\times 10^{9}$ octets et 8 Gio = $8\times1024^3$ octets $\simeq$ $8,59\times10^9$ octets.
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.