samedi 23 avril 2011

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.