• {0} Easy|{1} Medium|{2} Hard

Free online content available in this course.

You can get support and mentoring from a private teacher via videoconference on this course.

Got it!

Last updated on 11/21/13

Histoire et fonctionnement de Grub

Log in or subscribe for free to enjoy all this course has to offer!

Parlons tout d'abords du bien connu projet GNU.

Sa création

Le projet GNU a été créé par Richard Stallman en 1984 alors qu'il travaillait au MIT (au laboratoire d'intelligence artificielle). Il souhaitait selon ses dires créer un système d'exploitation libre et complet pour "ramener l'esprit de coopération qui prévalait dans la communauté informatique dans les jours anciens".

La mascotte de GNU est un gnou (en raison de sa prononciation anglophone).

Image utilisateur

Le terme GNU est un acronyme récursif pour Gnu's Not Unix (Gnu N'est pas Unix).
Il faut savoir qu'au moment de la création du projet GNU, le système UNIX était déjà bien lancé et reconnu par les informaticiens. GNU fut donc créé dans le but d'être compatible avec ce système.

En 1985, Stallman fonde la Free Software Foundation, structure logistique, légale et financière du projet GNU.
La FSF finance le développement du projet GNU et ce sont pour la plupart des communautés étudiantes américaines qui ont rendu ce projet viable. Le projet GNU se développe rapidement si bien que plusieurs sociétés contribuent au projet GNU en revendant ses logiciels, ou en offrant un support technique.

En 1990, GNU dispose de son propre éditeur de texte (Emacs), de son compilateur (GCC) et de la plupart des bibliothèques dont dispose Unix. Mais il manque encore un noyau.

Les systèmes 100% GNU sont des utopies mais il existe certains systèmes s'en approchant (comme Debian).
La totalité des distributions de Linux sont plus ou moins apparentées au projet GNU au point que Richard Stallman défendait l'appellation distribution GNU/Linux.

A ce stade, il manquait encore une pièce du puzzle : le noyau, et c'est ici que Linux fait son apparition.

L'arrivée de Grub

Grub est un programme de multiboot libre et gratuit.

Ce genre de programme se nomme bootloaderouchargeur d'amorçage. Il permet de choisir entre plusieurs systèmes d'exploitation (OS) sur une seul machine.

Grub a été créé en 1995 par Erich Boleyn à l'université de l'Utah. Avec l'aide de Brian FORD, il a créé un lanceur de multiboot. Erich a compris qu'il aurait plus vite fait d'écrire son propre chargeur plutôt que d'en modifier un autre.

Erich a ajouté de nombreuses fonctions à GRUB, mais d'autres priorités l'ont empêché de suivre les demandes du nombre croissant d'utilisateurs. En 1999, Gordon Matzigkeit et Yoshinori K. Okuji ont adopté GRUB comme un projet GNU officiel.

Sa principale fonction est de pouvoir supporter la spécification multiboot.
Ses concepteurs voulait qu'il soit en même temps :

  • Simple d'utilisation ;

  • Fonctionnel pour les experts et les concepteurs de noyau ;

  • Qu'il soit compatible avec les systèmes du moment.

Grub possède une interface de commande. Elle s'affiche automatiquement si il manque un fichier de configuration ou si il y a une erreur.

Contrairement à LILO, GRUB n'a pas besoin d'être réinstallé pour mettre à jour sa configuration. Une simple commande permet sa mise à jour sudo update-grub

GRUB est par ailleurs très flexible : il permet de charger aussi bien des systèmes compatibles avec le multiboot que des systèmes non-compatibles avec cette fonction (comme Microsoft Windows). Il supporte en outre beaucoup de systèmes de fichiers comme ext3, VFAT ou NTFS. GRUB est également compatible avec le mode Logical Block Address (anglais et pas très utile ici ^^ ).

Le boot

Venons en au boot.

What ?

Héhé :p

Derrière ce pavé se cache une notion fondamentale de l'informatique. Tout d'abord, en anglais, TO BOOT signifie INITIALISER.
En informatique, la procédure de boot est le démarrage de l'ordinateur en "passant la main" à un système d'exploitation.

--------------------------------------------------------------------------------------------------------------------------------------------

Que se passe-t-il entre le moment où vous appuyez sur le bouton de mise sous tension de votre ordinateur et le moment où vous voyez le logo de votre OS avec sa barre de chargement ?

Image utilisateur

Pendant le moment ou vous voyez les écrans publicitaires avec les marques et logos de votre PC, un programme se charge : le BIOS.

Le BIOS (ou Basic Input Output System) va lire le MBR (Master Boot Record), premier secteur d'un disque dur ou se trouve la table des partitions et un programme : le bootloader.

Ce superbe programme, stocké sur la ROM (mémoire morte) ou sur la mémoire vive, va extraire le noyau du système d'exploitation (kernel en anglais) qui fera le lien entre logiciel et matériel et donne sa dernière instruction : l'exécuter.

Et ce bootloader cela peut être Grub.

Voila pour le début, la partie la plus ennuyeuse est passée. :p

Example of certificate of achievement
Example of certificate of achievement