next up previous contents
Next: 2.2 Le système de fichiers de Linux en Up: 2. Premières courses Previous: 2. Premières courses

Sous-sections

  
2.1 Notions d'architecture matérielle [YB]

Linux demeure un système exigeant. Si vous devez <<administrer>> une machine Linux (la configurer, installer le système...), nous pensons qu'il est indispensable de posséder quelques notions concernant les matériels des ordinateurs de type PC. Aussi aborderons-nous ici quelques aspects essentiels et volontairement simplifiés.

Vous pouvez éventuellement sauter cette section, pour y revenir selon vos besoins. Nous vous recommandons toutefois vivement la lecture de la partie 2.1.3 concernant les disquettes et disques durs, page [*].

2.1.1 Aspect général d'un ordinateur de type PC

2.1.2 Les bus

2.1.2.1 ISA, VLB

2.1.2.2 PCI

2.1.2.3 USB, AGP

2.1.2.4 IDE/EIDE, SCSI

  
2.1.3 Les disquettes et les disques durs [YB]


  
Figure 2.1: Intérieur d'un disque dur

\includegraphics{images/photo_disque_dur.eps}


Les disquettes et les disques durs entrent dans la catégorie des supports de mémoire de masse. Bien que cela ne soit pas tout à fait vrai pour une disquette, un disque dur est généralement capable de stocker beaucoup plus d'informations que la mémoire centrale d'un ordinateur. En général, le disque dur est le support sur lequel les systèmes d'exploitation et les logiciels divers que vous utilisez sont installés, ainsi que vos fichiers personnels.

La disquette est souvent utilisée comme outil de sauvegarde ou de transport de données, si celles-ci ne sont pas trop volumineuses. Dans le cas de Linux ou MS-DOS, il est également possible d'installer un système d'exploitation sur une disquette, encore que ses fonctionnalités soient grandement réduites. Habituellement le lecteur de disquettes est le premier endroit où l'ordinateur va chercher un système lorsqu'il démarre : c'est souvent la seule façon de réparer un système sur disque dur qui a été endommagé d'une manière ou d'une autre.

Physiquement, une disquette est un disque souple de plastique magnétisé, comparable à une bande de cassette audio ou vidéo. Les informations sont enregistrées sur ce support de façon analogue. Un disque dur se présente de la même façon, mais cette fois le disque est rigide et plus épais, et se compose parfois de plusieurs plateaux superposés. Voyez les photos de la figure 2.1 pour apprécier la façon dont un disque dur est construit. Le nombre de têtes de lecture, c'est-à-dire le nombre de faces utilisés sur les différents plateaux, est l'un des éléments de ce que l'on appelle la géométrie d'un disque dur. Pour une disquette, ce nombre vaut 2 dans la grande majorité des cas (un disque, donc deux faces, donc deux têtes).

Un autre élément est le nombre de pistes, ou de cylindres. Les pistes sont des anneaux concentriques, subdivisant la face de plateau en autant de zones distinctes. Sauf situation très exceptionnelle, toutes les faces du disque présentent le même nombre de pistes. Lorsqu'il y a plusieurs plateaux (dans le cas des disques durs), les pistes des différentes faces qui sont à l'aplomb les unes des autres forment un ensemble que l'on désigne alors sous le terme de cylindre. Une disquette usuelle comporte 80 cylindres, certains disques durs, plusieurs milliers.

Le <<découpage>> du disque ne s'arrête pas là : les pistes sont elle-mêmes subdivisées en secteurs. Le secteur est la plus petite unité discernable sur un disque. Le plus souvent, toutes les pistes ont le même nombre de secteurs, mais il arrive que les pistes extérieures en possèdent davantage que les pistes intérieures, pour tirer parti de la surface plus grande. Ceci est toutefois assez rare. Un secteur contient 512 octets, ou caractères, de données. D'autres tailles sont possibles (128, 256, 1024), mais sont particulièrement rares. Une disquette normale contient 18 secteurs par piste, et un disque dur en contient généralement 63.

La figure 2.2 vous propose un schéma de la structure qui vient d'être évoquée. Sur la vue de dessus, les zones d'une même couleur appartiennent à la même piste. Sur la vue par la tranche (imaginez le disque dur coupé en son centre), les couleurs représentent alors chacune un cylindre particulier.


  
Figure 2.2: Structure d'un disque dur : vue de dessus et par la tranche

\includegraphics{images/disque_dur.eps}


En terme de performances, le taux de transfert maximal pour une disquette avoisine les 300 kilo-octets par seconde, tandis que certains disques durs atteignent des taux tels que 80 méga-octets par seconde, voire davantage ! Un paramètre important est le temps moyen d'accès à une information : pour un disque dur, il est de l'ordre de la dizaine de milli-secondes (millième de seconde), et pour la disquette... certains esprits chagrins ironisent en disant qu'il faut changer d'échelle, et compter plutôt en minutes...

  
2.1.3.1 Partition des disques durs [YB]

Il existe un mécanisme qui permet de subdiviser un disque dur en plusieurs parties distinctes : les partitions. Ceci permet de séparer, par exemple, les éléments constitutifs du système des données des utilisateurs. Ainsi, en cas de problème dans le système, les erreurs ont moins de chance de s'étendre aux données - et réciproquement. Typiquement, sur un système Linux, les répertoires qui contiennent les données des utilisateurs sont sur une (ou plusieurs) partition distincte du reste du système : une surcharge de données ne risque donc pas d'endommager le système, et une erreur dans celui-ci a peu de chance de corrompre les données.

Le découpage d'un disque en partitions suit des règles un peu complexes, pour l'essentiel héritées de l'histoire. La première d'entre elles, est qu'une partition recouvre une suite continue de cylindres : les limites de partitions sont donc celles des cylindres, et l'on dit qu'une partition s'étend du cylindre n au cylindre m. Une formule qui peut être utile donne la taille d'une telle partition, en méga-octets :


\begin{displaymath}\frac{(m-n+1)*Nt*Ns}{2048}\end{displaymath}

Nt est le nombre de têtes, et Ns le nombre de secteurs par piste, du disque.

On distingue par ailleurs deux types de partitions : les partitions primaires et les partitions logiques2.1.

Pour des raisons historiques, datant de l'époque où les disques étaient de taille bien moins importante qu'aujourd'hui, il n'est possible de créer que quatre partitions primaires, qui sont numérotées par Linux de 1 à 4. Cette limite vient du fait que la faible capacité des disques durs ne justifiait pas de prévoir un nombre plus élevé.

Toutefois les capacités actuelles des disques rendent ce nombre insuffisant. C'est pourquoi fut développé la technique des partitions étendues et des partitions logiques.

Une partition étendue est l'une des quatre partitions primaires (généralement la dernière), destinée à être un réceptacle pour d'autres partitions, en nombre théoriquement illimité. Ces partitions, contenues dans une partition étendue, sont appellées partitions logiques. Linux les numérote toujours à partir de 5.

Les partitions trouvent également leur utilité lorsque l'on veut faire cohabiter plusieurs systèmes : il est possible, sur un même ordinateur, d'avoir côte à côte Windows 95, Windows NT, OS/2, Linux... et même plusieurs fois le même système2.2 ! Par exemple, un Linux d'utilisation normale et un autre pour effectuer des tests, sur lequel un plantage est sans grande conséquence.

La manipulation des partitions se fait à l'aide d'outils spécialisés. Linux possède un programme nommé fdisk, qui sera décrit plus loin dans ce chapitre (voir 2.6.14 page [*]). Nous vous recommandons toutefois, si cela vous est possible, l'utilisation du programme PartitionMagic, édité par PowerQuest, plus simple à manipuler et beaucoup plus puissant. Son seul défaut, est qu'il ne fonctionne que sous DOS (MS-DOS, ou les purs modes DOS de Windows 95 ou Windows 98, auxquels on n'accède qu'en pressant la touche F8 lors du démarrage du système - n'utilisez pas l'option <<Redémarrer en mode MS-DOS>>, ce n'est pas un vrai mode DOS qui peut provoquer une perte totale de données.).

L'utilisation des partitions sera évoquée à nouveau dans le chapitre 6 consacré à l'installation de Linux, page [*]. La figure 2.3 vous propose deux exemples, pour illustrer tout cela.


  
Figure 2.3: Exemples de partitions sur un disque dur

\includegraphics{images/partitions_1.eps}

Dans ces exemple, les quatre possibilités de partition primaire ont été utilisées. L'une d'entre elles est utilisées en partition étendue (la deuxième), pour contenir des partitions logiques (la deuxième partition primaire contient quatre partitions logiques).

L'exemple suivant est plus classique.

\includegraphics{images/partitions_2.eps}

Seules deux possibilités de partition primaire sont utilisées, la première pour Windows 95, la deuxième pour faire une partition étendue qui contient en l'occurrence six partitions logiques. Cet exemple vous montre par ailleurs comment il est possibl de répartir différents éléments d'un système Linux sur plusieurs partitions : notez comme les répertoires /home, /root et /usr ne sont pas sur la même partition que la racine.


2.1.3.2 Structure logique d'un disque dur [YB]

Le début de cette section vous a exposé la structure physique d'un disque dur, divisé en cylindres, secteurs, etc. Puis nous avons évoqués le mécanisme des partitions. Mais où sont donc stockées les informations relatives aux partitions ? Comment les systèmes reconnaissent-ils les partitions ? Les réponses à ces questions sont l'objet de cette partie.

La structure logique d'un disque dur est la manière dont sont organisées les différentes informations fondamentales concernant la manière dont le disque dur doit être utilisé par les systèmes.

Le premier secteur (physique) de chaque partition est un peu particulier : on l'appelle le secteur d'amorce2.3, car il contient généralement le code nécessaire au lancement du système contenu dans la partition. S'il ne s'agit que d'une partition de données, ce secteur contient quelques informations utiles concernant la taille de la partition, son type, etc.

Encore plus particulier est le premier secteur physique du disque dur : ce secteur contient non seulement le code nécessaire au lancement du système actif sur votre système, mais en plus la fameuse Table des Partitions : cette table contient les paramètres des quatre partitions primaires du disque, c'est-à-dire les cylindres de début et de fin, le type, etc. Ce secteur si spécial, si fondamental pour le fonctionnement de la machine, est appelé le Master Boot Record2.4, MBR en abrégé.

La Table des Partitions n'est toutefois pas suffisante en elle-même : elle ne peut contenir les informations des éventuelles partitions logiques, contenue dans une ou plusieurs partitions étendues. Aussi chaque partition logique contient-elle une <<mini>> Table des Partitions, pour réaliser en quelque sorte un chaînage des partitions les unes au bout des autres. Le début de la chaîne, le premier maillon, se situe dans la Table des Partitions du MBR, où l'une des entrées est marquée comme partition étendue.

Enfin, la structure logique de chaque partition dépend directement du système de fichiers qu'elle abrite.

Le schéma 2.4 reprend le premier exemple de la figure 2.3 page [*], en montrant de quelle façon les partitions s'enchaînent les unes derrières les autres. Les références /dev/hdax sont données à titre d'exemple, et représentent les partitions sur le disque maître du premier port IDE.


  
Figure 2.4: Structure logique d'un disque dur

\includegraphics{images/struct_partitions.eps}


2.1.4 Les mémoires [YB]

Le sujet de la mémoire dans un ordinateur est suffisamment vaste pour lui consacrer un ouvrage entier. Nous n'aborderons ici que des notions très générales, afin de clarifier quelques termes courants.

2.1.4.0.1 La mémoire centrale, ou RAM2.7

La mémoire centrale de l'ordinateur est utilisée pour contenir le code exécutable et les données des programmes que vous utilisez, y compris le système lui-même. Sa caractéristique principale est que son contenu est irrémédiablement perdu lorsqu'on coupe l'alimentation électrique de l'ordinateur, d'où son nom courant de <<mémoire vive>>.

A l'heure actuelle, le temps d'accès moyen à une information contenue dans la mémoire centrale est de l'ordre de quelques dizaines de nanosecondes (milliardième de seconde). Une taille usuelle pour la mémoire centrale est de 64 Mo. Il est évident que plus cette taille est importante, plus le système peut l'utiliser pour stocker des informations auxquelle il accèdera très rapidement par la suite.

2.1.4.0.2 La mémoire CMOS

Cette mémoire est utilisée pour conserver des paramètres généraux de la machine lorsque celle-ci est arrêtée, tels que la configuration du ou des disques durs, l'heure, la date, etc. Elle est entretenue par une pile branchée sur la carte mère, et son contenu est perdu si on retire la pile ou si elle s'épuise. Mais inutile de paniquer, la durée de vie d'une telle pile est en général de quatre à cinq ans...

2.1.4.0.3 La mémoire vidéo, ou VRAM

Cette mémoire est spécialisée pour l'affichage sur l'écran. La quantité dont vous disposez détermine directement le nombre de couleurs et la finesse de graphisme que vous pouvez obtenir sur votre écran. Elle a généralement des temps d'accès très faibles, de l'ordre de quelques nanosecondes, sauf sur certains systèmes où elle n'est rien d'autre qu'une portion de la mémoire centrale réservée à cet usage (ce que nous déconseillons, pour des questions évidentes de performances générales).

2.1.4.0.4 La mémoire cache

Il serait plus juste de parler des mémoires cache. Ces mémoires, qui se trouvent un peu partout, sont utilisées comme intermédiaires entre des composants relativement lents de la machine, et d'autres plus rapides. Une utilisation est de stocker des informations fréquemment utilisées, pour permettre des accès plus rapides, par exemple entre le disque dur (lent, temps d'accès de l'ordre de la dizaine de millièmes de seconde) et la mémoire centrale (environ un million de fois plus rapide !).

Un exemple particulièrement important pour la puissance générale d'un système, est la mémoire cache du processeur : il s'agit d'une mémoire ultra-rapide, bien plus que la mémoire centrale. Elle est utilisée pour stocker des informations venant de cette dernière fréquemment utilisées, telles que des données ou des portions de code exécutable.

  
2.1.4.0.5 La mémoire virtuelle2.10

Imaginez la situation suivante : vous travaillez sur une machine dotée de 64Mo de mémoire centrale, dont 50Mo sont déjà occupéspar divers programmes. Vous souhaitez lancer un logiciel qui a besoin d'au moins 20Mo de mémoire centrale pour fonctionner. Vous allez donc vous trouver en <<déficit>> de 6Mo de mémoire.

Sur d'anciens systèmes tel que MS-DOS, cela se passe très simplement : le système refuse simplement de lancer le logiciel. Les systèmes modernes (dont fait partie Linux) sont plus subtils, et utilise le mécanisme de la mémoire virtuelle. L'idée est d'utiliser une partie du disque dur comme s'il s'agissait de mémoire centrale, dont la taille paraît ainsi augmentée. Ce mécanisme vous permet d'utiliser plus de mémoire que votre machine n'en dispose réellement. Si cela est fort utile, surtout pour les machines disposant de peu de mémoire, gardez toutefois à l'esprit que le temps d'accès à une information sur le disque dur se mesure en millième de seconde, tandis qu'il se mesure en milliardième de seconde pour la mémoire... Quand le système commence à utiliser ce mécanisme (on dit qu'il <<swappe>>), attendez-vous donc à des performances fortement dégradées.

2.1.5 Les cartes video

2.1.6 Les processeurs

2.1.7 Les cartes son

2.1.8 Autres matériels et périphériques [MG]

Un système d'exploitation digne de ce nom doit permettre à son propriétaire d'utiliser tous ses périphériques sans exception... du moins en théorie. En effet, la pratique est nettement moins drôle, surtout pour ceux qui osent sortir des sentiers battus en faisant confiance à Linux. Et là, les choses se gâtent :

1.
Il faut déjà oublier les <<win-périphériques>>, en général des modems et des imprimantes, conçus pour n'être utilisés que dans un environnement déterminé.
2.
Il faut également tirer un trait sur le fameux <<driver>> qui n'est fourni, en général, que pour le même environnement précité.
3.
Il faut faire confiance à la <<communauté>> Linux qui développe chaque jour de nouveaux pilotes pour faire fonctionner votre périphérique (avant) dernier cri.

2.1.8.1 Modems

2.1.8.2 Imprimantes

2.1.8.3 Scanners



Footnotes

... 2.1
primary partitions et logical partitions en anglais.
... système2.2
Tous les systèmes ne sont pas capables de cela : notamment, MS-DOS et Windows 95 supportent mal d'être installés en plusieurs exemplaires. Mais Linux ou Windows NT l'acceptent sans problème.
... d'amorce2.3
boot sector en anglais. Rappelez-vous du terme boot (amorce, ou démarrage), il revient fréquemment.
... 2.4
A peu près, enregistrement principal pour le démarrage, en français. On utilise plus volontiers le terme anglais, on l'abréviation MBR.
... RAM2.5
Random Access Memory, mémoire à accès libre en lecture et écriture
... RAM2.6
Random Access Memory, mémoire à accès libre en lecture et écriture
... RAM2.7
Random Access Memory, mémoire à accès libre en lecture et écriture
... 2.8
swap memory en anglais
... virtuelle2.9
swap memory en anglais
... virtuelle2.10
swap memory en anglais

next up previous contents
Next: 2.2 Le système de fichiers de Linux en Up: 2. Premières courses Previous: 2. Premières courses
kafka.fr@linux-france.org