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 :


Vous auriez du voir un rond rouge sur fond noir


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 :
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.



Eric Brasseur  -  2 mai 2007       [ Accueil | eric.brasseur@gmail.com ]