ABC des ordinateurs pour informaticiens en herbe
Les octets
Vous avez souvent entendu que les ordinateurs utilisent des "octets"
(en anglais on dit "bytes") pour mémoriser les informations.
Qu'est-ce que cela veut dire au juste ? Un octet est une petite mémoire
qui peut retenir un nombre
entre 0 et 255. En d'autres termes : si vous mettez le nombre 47 dans
un octet d'ordinateur, deux heures après il contient toujours 47.
Vous auriez aussi pu mettre 0 dedans, ou 255, ou 79, ou 139... tout ce
que vous voulez tant que c'est un entier dans l'interval [0, 255].
Un PC moderne dispose d'un nombre astronomique d'octets. La
mémoire RAM des modèles actuellement en vente est souvent
faite de 1 milliard d'octets. Les disques durs contiennent entre 100
milliards et 500 milliards d'octets.
A quoi utilise-t-on ces octets ? Comment les utilise-t-on ? Un aspect
très important de la réponse est qu'à la base les
octets se suivent dans un ordre précis. Ils sont tous soigneusement
numérotés. Par exemple le premier octet de la mémoire RAM porte le
numéro 21.783, le deuxième octet porte le numéro 21.784, le troisième
porte le numéro 21.785 et ainsi de suite. Donc, si on prend quatre
octets
consécutifs de mémoire et que l'on met 78, 6, 200 et 32
dedans, deux ans après on y trouve toujours 78, 6, 200 et 32. Et
certainement pas 200, 78, 32 et 6. Ni d'avantage 32, 78, 6 et 200.
Mais comment s'en sert-on ? Et bien en fait, vous vous en servez comme
vous voulez. Imaginez qu'il existe une race d'oiseaux capables de
retenir deux nombres entre 0 et 255. Ces oiseaux sont dressés
pour faire la navette entre deux personnes. Quand une personne veut
transmettre un message à l'autre, elle dit deux nombres à
l'oiseau, qui s'envole aussitôt pour les répéter
à l'autre personne. Libres à ces deux personnes de
convenir d'un code. Voici par exemple un table pour le premier nombre :
1
|
apporter |
2
|
détruire |
3
|
préparer |
4
|
manger |
5
|
découper |
6
|
décorer |
7
|
planter |
8
|
dresser |
9
|
lancer |
10
|
chanter |
11
|
louer |
12
|
boire |
13
|
lire |
Voici une table pour le deuxième nombre :
1
|
pomme |
2
|
cerise
|
3
|
fleur |
4
|
table |
5
|
rue
|
6
|
repas |
7
|
livre |
Si l'oiseau arrive à vous et dit "4, 6", vous comprenez que
votre correspondant vous dit "manger repas" donc de passer à
table. Si l'oiseau vous dit "12, 7", donc de boire un livre, vous vous
demanderez si votre correspondant vous fait une blague ou si l'oiseau a
fait une erreur. L'oiseau ne comprend rien aux deux nombres qu'il
transporte. Il ne fait que les répéter. A vous d'en faire
bon usage.
De même, si deux amis utilisent une paire de tables et deux
autres amis utilisent une paire de table complètement
différente, il peut y avoir des confusions. Supposons que vous
êtes chez un ami pendant son absence et qu'un oiseau arrive et
dit deux nombres... Si vous interprétez les deux nombres
d'après votre propre table vous risquez de faire n'importe quoi,
en croyant lui rendre service. Dans un pays bien organisé, on
essaye de faire en sorte que tout le monde utilise les mêmes
tables.
Une des tables les plus simples et les plus importantes
utilisées par les ordinateurs est la table ASCII. Elle sert
à encoder des textes :
| |
|
|
32 |
espace
|
|
64 |
@ |
|
96 |
` |
| |
|
|
33 |
! |
|
65 |
A |
|
97 |
a |
| |
|
|
34 |
" |
|
66 |
B |
|
98 |
b |
| |
|
|
35 |
# |
|
67 |
C |
|
99 |
c |
| |
|
|
36 |
$ |
|
68 |
D |
|
100 |
d |
| |
|
|
37 |
% |
|
69 |
E |
|
101 |
e |
| |
|
|
38 |
& |
|
70 |
F |
|
102 |
f |
| |
|
|
39 |
' |
|
71 |
G |
|
103 |
g |
| |
|
|
40 |
( |
|
72 |
H |
|
104 |
h |
| 9 |
tabulation |
|
41 |
) |
|
73 |
I |
|
105 |
i |
| 10 |
descendre d'une ligne |
|
42 |
* |
|
74 |
J |
|
106 |
j |
| |
|
|
43 |
+ |
|
75 |
K |
|
107 |
k |
| |
|
|
44 |
, |
|
76 |
L |
|
108 |
l |
| 13 |
retour début de ligne |
|
45 |
- |
|
77 |
M |
|
109 |
m |
| |
|
|
46 |
. |
|
78 |
N |
|
110 |
n |
| |
|
|
47 |
/ |
|
79 |
O |
|
111 |
o |
| |
|
|
48 |
0 |
|
80 |
P |
|
112 |
p |
| |
|
|
49 |
1 |
|
81 |
Q |
|
113 |
q |
| |
|
|
50 |
2 |
|
82 |
R |
|
114 |
r |
| |
|
|
51 |
3 |
|
83 |
S |
|
115 |
s |
| |
|
|
52 |
4 |
|
84 |
T |
|
116 |
t |
| |
|
|
53 |
5 |
|
85 |
U |
|
117 |
u |
| |
|
|
54 |
6 |
|
86 |
V |
|
118 |
v |
| |
|
|
55 |
7 |
|
87 |
W |
|
119 |
w |
| |
|
|
56 |
8 |
|
88 |
X |
|
120 |
x |
| |
|
|
57 |
9 |
|
89 |
Y |
|
121 |
y |
| |
|
|
58 |
: |
|
90 |
Z |
|
122 |
z |
| |
|
|
59 |
; |
|
91 |
[ |
|
123 |
{ |
| |
|
|
60 |
< |
|
92 |
\ |
|
124 |
| |
| |
|
|
61 |
= |
|
93 |
] |
|
125 |
} |
| |
|
|
62 |
> |
|
94 |
^ |
|
126 |
~ |
| |
|
|
63 |
? |
|
95 |
_ |
|
127 |
|
Donc si 7 octets consécutifs d'une mémoire
d'ordinateur contiennent 66,
111, 110, 106, 111, 117, 114, et bien ils
contiennent le texte "Bonjour". Enfin, à condition qu'il
avait été décidé que c'était du texte... Sinon, ces nombres sont
peut-être le code de lancement des missiles, allez savoir... Dans un
ordinateur bien tenu on garde la trace d'à quoi sert chaque zone de
mémoire. Sinon... les conséquences peuvent être totalement
psychédéliques.
Les octets des ordinateurs peuvent aussi contenir des images. Prenons
par exemple la minuscule image suivante :
Je vous la montre agrandie :
Voici comment elle est mémorisée :
71
73 70 56 55 97 8 0 8 0 128 2 0 0 0 0 255 0 0 44 0 0
0 0 8 0 8 0 0 2 12 132 143 137 17 217 240 204 139 146 170 107 10 0 59
59
Il est inutile que vous compreniez cette suite de 45 nombres. Remarquez
toutefois deux choses :
- L'image est constituée de 8 x 8 points. Constatez que
le septième et le neuvième nombre sont 8. Il n'y a pas de hasard, ils
veulent
bien dire que l'image a une taille de 8 x 8.
- Cette image est encodée suivant le format "GIF". Constatez
que les trois premiers nombres sont 71, 73 et 70, ce qui donne bien G, I et F dans
la table ASCII.
Certains nombres de l'image utilisent la table ASCII (comme "GIF"), d'autres
doivent êtres pris littéralement (8
et 8)... C'est un peu
le souk. Peu importe, tant que les informaticiens s'y retrouvent.
Faisons-leur confiance même s'ils ne le méritent pas
toujours.
Ne me faites pas aveuglément confiance. Mettez mes dires
à l'épreuve, au moins un minimum. Par exemple enregistrez
la petite image ci-dessus dans votre ordinateur (cliquez dessus avec le
bouton de droite de votre souris et faites pour un mieux). Cela stocke
dans votre ordinateur un petit fichier nommé "programmation_01.gif".
Demandez à votre ordinateur la taille de ce fichier (cliquez
dessus avec le bouton de gauche ou cliquez dessus avec le bouton de
droite et demandez les propriétés du fichier). Il vous
répondra que la taille est de 45 octets. Cela ne vous
prouve pas que l'image est bien constituée d'exactement les
45 nombres mentionnés ci-dessus. Mais au moins vous vérifiez
que le nombre d'octets utilisés est bien celui que je
prétends. C'est toujours ça.
Vous avez sans doute déjà utilisé un "traitement
de texte" pour écrire une lettre ou un document quelconque (par
exemple les traitements de texte Word, Wordpad, Works, Abiword,
OpenOffice, Star Office...). Démarrez un tel traitement de texte
et faites l'expérience d'écrire un minuscule petit texte
et par exemple d'en agrandir une lettre, comme ceci :
Bonjour ordinateur
!
Ensuite enregistrez ce texte (Menu Fichier -> Enregister) sous un
nom de fichier quelconque et demandez à votre ordinateur de vous
donnez la taille du fichier. Il vous répondra un taille
incroyable. Peut-être 16.000 octets, voire beaucoup plus (s'il
vous répond 16k, le "k" veut dire 1.000) (s'il répond 16
ko, le "o" veut dire "octets"). Pour bêtement mémoriser ces
quelques mots et le fait que la onzième lettre est agrandie,
votre traitement de texte utilise 16.000 octets ! C'est grotesque. Il
n'y
a pas d'excuse à cela. N'y voyez que la
décrépitude de l'informatique actuelle. Versons une larme
sur notre dignité perdue et continuons.
Nous ne sommes que de modestes informaticiens en herbe, nous allons
nous contenter de choses simples. Démarrez un "éditeur de
texte". J'ai bien dit éditeur
et pas "traitement". Sous
Windows, vous trouverez aisément l'éditeur "Bloc-notes"
(Notepad en anglais). Sous Linux, vous trouverez GEdit, KWrite,
Leafpad, Mousepad, KEdit... Une fois l'éditeur ouvert, tapez
à nouveau un petit texte court. Par exemple ceci :
Ceci
est un texte.
Enregistrez-le en lui donnant
un nom de fichier de votre choix. Un conseil :
si votre éditeur ne le fait pas automatiquement, veillez
à ce que nom du fichier se termine par les quatre caractères ".txt".
Demandez la taille du fichier. Vous constaterez qu'elle est de 18
octets. Ou un peu plus si vous avez tapé des blancs
supplémentaires ou des passages à la ligne.
Un éditeur de texte
lit et enregistre des textes de façon
très sobre, en se contenant d'utiliser la table ASCII.
Langage de description
Le travail des informaticiens est de faire obéir les
ordinateurs. Mais comment leur donne-t-on des ordres ? Pour cela on
utilise des langages. Un langage très simple et fort utile est
le HTML. (Quand je dis simple, je veux dire avant que certains
informaticiens ne compliquent tout par incompétence et par
malhonnêteté. Mais bon, il est toujours possible d'utiliser les
bases du HTML de façon simple.) A quoi sert le HTML ? Il sert
à décrire les pages sur Internet. Regardez l'adresse du
présent document ;
http://www.4p8.com/eric.brasseur/programmation.html, le fait que
l'adresse se termine par html ne veut rien dire d'autre : la page est
programmée en langage HTML. Alors, démarrez un
éditeur de texte et
tapez le texte suivant :
<html>
<body>
Bonjour, vous allez <font
color="red">bien</font> ?
</body>
</html>
Enregistrez ce texte dans un fichier. Cette-fois-ci veillez à ce
que le nom du fichier se termine par .html
et non par .txt. Sur Windows
il faudra sans doute vous battre pour obtenir que le nom du fichier se
termine réellement par .html...
Double-cliquez sur le fichier. Il doit s'ouvrir dans votre navigateur
et vous afficher ceci :
Bonjour, vous allez bien ?
L'ordinateur vous a obéi ! Le code HTML stipule que le mot
"bien" doit être écrit en rouge ("red" en anglais). Le
navigateur l'a effectivement écrit en rouge ! Ou alors vous avez
fait une erreur...
Libre à vous maintenant d'apprendre les autres "balises" HTML.
Celle pour passer à la ligne (<br>), celles pour mettre un
titre (mettez le titre entre <h1> et </h1>), celles pour
mettre en gras (entre <b> et </b>), celle pour souligner
(entre <u> et </u>), etc...
Le code HTML a de nombreux avantages. Par exemple voici comment encoder
l'exemple donné ci-dessus (j'ai
mis moi-même les balises HTML en vert pour que vous distinguiez
mieux la structure) :
<html>
<body>
Bonjour or<font
size=+4>d</font>inateur !
</body>
</html>
Si vous tapez cet exemple avec un éditeur de texte et vous
l'enregistrez dans un fichier .html, vous constaterez
qu'il ne prend que quelques dizaines d'octets. C'est tout de même
plus rationnel que 16.000 octets ! Cela dit, on ne peut pas faire en
simple HTML tout ce qu'on peut faire avec un traitement de texte. Rien
n'est parfait...
Notez que quand votre navigateur affiche une page HTML, vous pouvez lui
demander
de vous montrer le "code source" HTML de la page. Vous pouvez le faire
pour cette page-ci, par exemple. Cherchez dans les menus du navigateur.
Vous pouvez faire l'essai suivant : tapez un court texte dans un
traitement de texte, éventuellement mettez un mot en gras ou en
couleur, ensuite enregistrez ce texte en format HTML. Pour qu'il soit
enregistré en HTML, vous devrez le préciser dans la boîte de dialogue
lors de l'enregistrement (celle qui vous permet de taper le nom du
fichier). Ensuite, ouvrez ce fichier avec un éditeur de texte. Ce que
vous verrez sera probablement assez long et tortueux mais vous pourrez
retrouver le texte au milieu. Vous devriez également pouvoir
reconnaître certaines balises HTML.