Affichage des articles dont le libellé est System d'exploitation Linux/ Unix. Afficher tous les articles
Affichage des articles dont le libellé est System d'exploitation Linux/ Unix. Afficher tous les articles

samedi 23 avril 2011

Histoire de Linux

L’histoire de Linux pourrait débuter avec celle d’Unix, mais la place manque. Cette rétrospective
commence donc avec la fondation du projet GNU par Richard Stallman. GNU signifie
GNU is Not Unix, GNU n’est pas Unix. Ce projet a développé dès 1982 des outils libres
pour les Unix propriétaires. Ces outils ont été utilisés comme version de remplacement des
composants originaux sur de nombreux systèmes, qu’il s’agisse du compilateur C GNU
GCC, de l’éditeur Emacs ou de divers utilitaires comme find et grep.
Il était temps, sept ans après le début du projet GNU, de créer la première version de la GPL.
Cette licence s’assure que le code reste libre.

La première version du noyau Linux (version 0.01) a été développée par Linus Torvalds à
Helsinki. Le code du programme a été distribué en septembre 1991 sur Internet. Très vite,
des programmeurs du monde entier se sont intéressés à cette idée et ont développé des
extensions : un meilleur système de gestion de fichiers, des pilotes pour divers composants
matériels, des programmes supplémentaires comme un émulateur DOS, etc. Tous ces composants
ont été mis à disposition gratuitement et le système complet a grandi à une vitesse
hallucinante. Le développement de ce nouveau système d’exploitation n’aurait pas été possible
sans la communication entre les programmeurs du monde entier via Internet.

 Dès que le noyau Linux a été suffisamment développé pour que le compilateur C GNU
fonctionne, la palette des outils GNU est soudain devenue disponible pour Linux. Un système
complet était né du noyau brut, ce qui faisait de Linux un environnement de développement
bien plus attractif. Les facteurs qui ont fait de Linux un environnement de
développement plus attractif ont été le système de fichiers de Minix, des logiciels réseau
provenant des Unix BSD, le système XWindow du MIT et le portage de XFree86, ainsi que
de nombreux logiciels libres comme LaTeX.
Linus Torvalds n’est donc pas la seule personne à l’origine de Linux (même si, sans lui, il n’existerait
probablement pas sous sa forme actuelle). Ce système a été développé par de nombreuses
personnes engagées qui ont produit du code libre pendant des années, que ce soit sur leur
temps libre, dans le cadre de leurs études d’informatique ou d’un emploi dans des entreprises
comme IBM ou HP. Le noyau Linux représente à lui seul plusieurs millions de lignes de code !
Les étudiants passionnés d’informatique pouvaient télécharger, compiler et installer euxmêmes
Linux et ses composants. Son utilisation s’est néanmoins largement développée
grâce aux premières distributions, qui empaquetaient des logiciels sur des disquettes ou des
CD-ROM et fournissaient un programme d’installation. Quatre distributions de cette époque
subsistent encore : Debian, Red Hat, Slackware et SUSE.
En 1996, le manchot Tux devient le logo de Linux. Ils sont depuis inséparables.
Avec la déferlante Internet, Linux s’impose largement sur les serveurs. Une certaine reconnaissance

de Linux vient avec la phrase de Steve Ballmer : "Microsoft is worried about free
software..." ("Microsoft est inquiet face au logiciel libre…"). Un an plus tard, Red Hat fait
une entrée spectaculaire en bourse.

Après l’achat de StarOffice par Sun et l’ouverture de son code source, OpenOffice.org 1.0
voit le jour en 2002. Il s’agit d’une suite bureautique complète, avec une interface confortable
(KDE ou Gnome). Elle rend Linux utilisable dans les bureaux et auprès du grand public.
Linux sort alors du marché des informaticiens et des serveurs, une étape que de nombreux
Unix propriétaires n’ont pas franchie. En 2003, la ville de Munich décide de remplacer
Windows NT par Linux sur ses postes.

Linux et la mémoire

Les mécanismes de segmentation et de pagination peuvent se retrouver difficile à gérer d’une architecture à une autre. Le
support de la segmentation sur une architecture RISC est limité, contrairement à la pagination. Ces deux mécanismes offrent
des possibilités similaires, Linux ne supporte donc que la segmentation au minimum. Tous les processeurs auront le même
adressage logique avec un nombre limité de segments uniquement enregistré dans la table globale des segments. On aura :
– Les segments du Noyau (Code et Données en Ring 0)
– Les segments de données utilisateurs (Code et Données en Ring 3)
– Un TSS par coeur. Le TSS (Task Segment State) est une structure qui permet de sauvegarder le contexte lors des
interruptions ou des commutations de tâches
– Un segment pour une table locale des descripteurs de segments. Cette LDT ne contiendra qu’un descripteur nul et est
commune à tous les processus
– 4 Segments pour le code et les données du BIOS (ou chargeur de démarrage).
La pagination est implémentée avec un répertoire principale contenant les autres répertoires de pages.

Distribution Linux

 Nous n’avons pas encore répondu complètement à la question initiale : "Qu’est-ce que
Linux ?". La plupart des utilisateurs s’intéressent peu au noyau, tant qu’il fonctionne et qu’il
prend en charge le matériel présent. Pour eux, le terme Linux regroupe un ensemble de programmes,
généralement fournis par la distribution. C’est sous cette acception qu’est généralement
reconnu Linux : un noyau, auquel sont ajoutés de nombreux petits outils, les
environnements de bureau KDE et Gnome, différents paquetages de bureautique, le programme
graphique Gimp, d’innombrables langages de programmation et au moins autant
de programmes serveur (serveur web, serveur de courrier électronique, serveur de fichiers,
serveur d’impression, etc.).
Cette unité composée du noyau et de ses programmes complémentaires est appelée distribution.
Elle permet d’installer Linux rapidement et confortablement. Les distributions sont
pour la plupart disponibles à l’achat sous forme de CD ou de DVD et peuvent généralement
être téléchargées sur Internet. En raison de la taille des données (souvent plusieurs gigaoctets),
la copie d’une distribution ou son installation directement sur le réseau demande une
excellente connexion Internet.




Les distributions se différencient principalement sur ces points :
• Étendue et actualité. Le nombre, le choix et l’actualité des programmes et des bibliothèques
fournis diffèrent selon les distributions. Certaines se rengorgent du nombre de CD fournis.

Caractéristiques du noyau Linux

Linux est un système multitâche (plusieurs processus peuvent fonctionner en même
temps), multi-utilisateur (plusieurs utilisateurs peuvent l’utiliser en même temps), qui
prend en charge la pagination (le transfert de données de la mémoire au disque dur lorsqu’il n’y a plus assez de RAM à disposition), les bibliothèques partagées (celles qui
contiennent les fonctions du système ne sont chargées qu’une seule fois, même lorsque
plusieurs processus les utilisent), la communication interprocessus et le multitraitement
(souvent appelé SMP pour Symmetric Multi Processing, qui recouvre l’utilisation de
plusieurs processeurs ou coeurs de processeurs).
• Linux permet d’exploiter pratiquement toute la gamme de matériel PC. En dehors des
plateformes de type Intel, il existe également des versions pour d’innombrables architectures.
Linux fonctionne aussi sur des stations de travail Sun, des ordinateurs Apple,
etc. Linux devient également de plus en plus populaires sur les systèmes embarqués,
qui ne sont pas à proprement parler des PC. Si vous possédez par exemple un routeur
Wi-Fi, il est possible qu’il tourne sous Linux !
• Linux permet d’utiliser de nombreux systèmes de fichiers. Le système ext3 est un des
plus fréquents. Les fonctions de journalisation s’assurent que le système peut être redémarré
très rapidement après un arrêt inopiné (comme lors d’un orage). Les pertes de
données sont même dans ce cas improbables.
• Linux fournit également une large palette de protocoles réseau (TCP/IP, y compris
IPv6, IPsec, PPP, etc.).

Noyau Linux

Le terme Linux ne recouvre, strictement parlant, que le noyau. Il s’agit de la partie la plus
interne d’un système d’exploitation, qui contient les fonctions les plus élémentaires comme
la gestion du disque, la gestion des processus et le contrôle du matériel. Les informations
contenues dans ce livre se basent sur le noyau 2.6.
Comme Linux est toujours activement développé, de nouvelles versions du noyau voient
constamment le jour. Mais n’ayez crainte : lorsque le noyau Linux fonctionne de manière
stable sur votre ordinateur, il est rare de devoir le modifier. La plupart des distributions
s’occupent des mises à jour de sécurité nécessaires.
Nous parlerons plus en détail du noyau et de ses caractéristiques au Chapitre 25. Nous
décrirons également comment compiler votre propre noyau.
Attention à ne pas confondre les différents numéros de version de Linux : le noyau en possède
un, tout comme les bibliothèques, les compilateurs, les programmes, les distributions, etc.
Tous ces numéros de version sont indépendants les uns des autres. La meilleure description
de votre système Linux est le nom et le numéro de version de votre distribution, par exemple
Ubuntu 8.04.

Linux Introduction


Présentation Linux


En 1991, Linus Torvalds, élève en informatique à l’université de Helsinki, travaillait à gérer la commutation des tâches
en mode protégé sur son PC compatible 80386. Il se met en tête de créer un véritable système d’exploitation et un noyau
plus performants que ceux qu’il étudie en classe (Minix). Le 5 octobre 1991, il publie sur le serveur Usenet dédié à Minix
la version 0.0.1 de Linux. Convaincu par RMS de publier son code sous la licence GPL, Linus permit au monde entier de
disposer de son travail et d’y contribuer. Le noyau Linux devient le noyau le plus utilisé avec GNU.
FIGURE 17 – Tux la mascotte de Linux - Source : wikipédia
Depuis sa version 1.2, (la version actuelle en développement est la 2.6.) Linux est un noyau monolithique modulaire,
entièrement paramétrable et ouvert sur les standards industriels. Le code est entièrement codé en C (aucune partie en C++).
Il a été conçu pour utilisé le compilateur GCC dont il utilise beaucoup de macros non standards. Le noyau ne compilera pas
avec un n’importe quel compilateur ANSI C.
Le minimum nécessaire pour le faire fonctionner est un processeur 32 bits avec ou sans bloc MMU.

Linux est un système d’exploitation comparable à Unix. La différence majeure
tient au fait que Linux peut être copié avec l’intégralité de son code source (pour
plus de détails sur les conditions sous lesquelles Linux et les programmes qu’il
contient peuvent être redistribués, voir section 1.4).


Un système d’exploitation est un ensemble de programmes prenant en charge les
fonctions les plus basiques d’un ordinateur : l’interface entre l’utilisateur et la
machine (gestion du clavier, de l’écran, etc.), ainsi que la gestion des ressources
du système (capacité mémoire, disque dur, etc.). Un système d’exploitation est
nécessaire pour lancer des applications et enregistrer des données dans un fichier.
Au cours de l’histoire de l’informatique, différents systèmes d’exploitation ont été
développés. Jusqu’ici, vous avez probablement été en contact avec l’un des
nombreux systèmes d’exploitation Windows (3.1, 95, 98, SE, ME, NT, 2000, XP,
2003, Vista), voire avec leur prédécesseur, MS-DOS. On peut citer d’autres systèmes
d’exploitation, comme ceux des ordinateurs Apple et des ordinateurs
déjà oubliés, Commodore Amiga et Atari ST.
Bien avant tous ces systèmes d’exploitation, il y avait Unix. D’un point de vue
historique, ce dernier est considéré comme un système d’exploitation très
ancien. Pourtant, il s’agit d’un système moderne, équipé dès le départ de fonctionnalités
qui ne sont apparues sous une forme comparable chez Microsoft que
bien plus tard (avec Windows NT). Unix fournissait déjà un environnement
multitâche, une séparation des processus (et donc une plus grande stabilité),
des droits d’accès clairs pour les fichiers (et donc davantage de sécurité dans le
cadre d’un système multi-utilisateur), des fonctions réseau sophistiquées, etc.
Mais Unix n’offrait, il y a encore une ou deux décennies, qu’une interface utilisateur spartiate et avait des besoins matériels importants. C’est pourquoi Microsoft ou
Apple, malgré des systèmes d’exploitation moins spectaculaires, ont eu nettement plus de
succès qu’Unix, qui est resté cantonné aux stations de travail coûteuses en environnement
scientifique ou technique.