Le Guide du ROOTard pour Linux: SMP, autres architectures
Description: Ce document regroupe l'adaptation d'articles parus dans la Linux-Gazette. Merci à Nat Makarévitch pour ses relectures et Joël Bernier pour la mise en page HTML.
Keywords: Linux, francais, français, france, GNU, FSF, Debian, Redhat, Slackware, Mandrake, kheops, document, documentation, logiciel, libre, informatique, free, software, open, source, sourceware, freeware, soleil, support, assistance, hot line

> > Page suivante Page précédente Table des matières ## 8. SMP, autres architectures Note: n'hésitez pas à m'envoyer des compléments sur cette partie. ## 8.1 SMP SMP, abréviation de Symetric Multi-Processors, désigne la capacité des noyaux Linux 2.0 et versions suivantes de fonctionner sur des machines à plusieurs processeurs. Sur architecture ix86, le support SMP de Linux suit les spécifications Intel MP (v1.1, v1.4) qui vont théoriquement jusqu'à 16 processeurs. En fait, le SMP n'est pas spécifique aux plates-formes Intel : il existe également sur les plates-formes Alpha, Sparc, PowerPC. La version 2.0 ne gère le SMP que pour les plates-formes de type Intel. Pour compiler un noyau avec le support SMP, il faut décommenter la ligne `SMP = 1` dans le fichier Makefile. Il est en outre recommandé de compiler le support pour l'Enhanced Real Time Clock (`CONFIG_RTC`). Lors du démarrage du noyau, Linux boot d'abord sur un processeur, puis active le(s) autre(s). Extraits des informations données par la commande `dmesg` : `
> >     Intel MultiProcessor Specification v1.1
> >         Virtual Wire compatibility mode.
> >     OEM ID: INTEL    Product ID: Nightshade   APIC at: 0xFEE00000
> >     Processor #1 Pentium(tm) Pro APIC version 17
> >     Processor #0 Pentium(tm) Pro APIC version 17
> >     I/O APIC #2 Version 17 at 0xFEC00000.
> >     Processors: 2
> >     ...
> >     Calibrating delay loop.. ok - 396.49 BogoMIPS
> >     ...
> >     Booting processor 0 stack 00002000: Calibrating delay loop.. ok - 396.49 BogoMIPS
> >     Total of 2 processors activated (792.99 BogoMIPS).
> ` Ce qui précède suffit pour avoir un système multiprocesseur qui fonctionne. Ce qui suit va le rendre plus agréable à utiliser et plus efficace. Le package `procps` contient entre autre les commandes `top` et `ps` qui peuvent être modifiées pour afficher le numéro du processeur sur lequel une commande tourne. La marche à suivre ainsi que les patches sont disponibles (en anglais) à http://www.cs.inf.ethz.ch/~rauch/procps.html. GNU `make` accepte l'option `-j` qui spécifie un nombre maximal de tâches pouvant être lancées simultanément. Il peut donc être intéressant d'utiliser cette option (`make -j 5` par exemple) sur un système multi-processeurs. Dans la majorité des cas, un système SMP ne se distingue pas parce qu'une même tâche se déroule plus vite, mais bien parce que l'on peut faire tourner plusieurs grosse tâches simultanément (par exemple compiler un programme C et un fichier LaTeX en même temps) ou bien parce que le système répond instantanément malgré la présence d'une grosse tâche (p.ex. lire son mail tout en compilant le noyau). Pour vraiment faire en sorte qu'un même programme utilise toute la puissance CPU de la machine, il faut investir dans le parallélisme, ce qui sort très nettement du cadre de ce guide. Lire à ce sujet l'excellentissime Linux Parallel Processing HOWTO (que l'on trouve aux endroits habituels). Pour en savoir plus, vous pouvez consulter la Linux SMP FAQ de David Mentré, http://www.irisa.fr/prive/mentre/smp-faq/. Une description technique (et sommaire) de l'implémentation de SMP dans le noyau Linux est donnée dans le fichier `Documentation/smp.tex` ## 8.2 Plates-formes Alpha La plate-forme Alpha est gérée depuis pas mal de temps. Le site à consulter avant tout est http://www.azstarnet.com/~axplinux/. La distribution RedHat 5.1 est disponible pour Alpha. Son installation est beaucoup plus complexe car cela dépend un peu du type de machine dont disposez. Si vous souhaitez installer cette version, lisez attentivement le ALPHA-HOWTO, le MILO-HOWTO et le SRM-HOWTO. Il s'agit des trois documents clefs. Pour clarifier la situation, le plus gros problème n'est pas vraiment d'installer Linux, mais de booter. En effet, il existe deux façons de le faire, en fonction de l'architecture de votre machine (voir la FAQ disponible sur le site central du portage Alpha) : Milo : c'est la solution rêvée... mais qui n'est pas disponible sur tous les modèles d'Alpha. En gros, il s'agit d'une disquette de boot qui vous donne le prompt MILO (au lieu de LILO). L'installation est assez simple à effectuer. SRM, c'est la galère. Dans ce cas, vous devez copier sur disquette une image, basculer la console de votre Alpha en console SRM. Certains modèles Alpha ne le possèdent pas ! Tout va dépendre de la licence achetée à Digital. En fonction de la version SRM, vous devez taper une commande pour lancer SILO (un LILO particulier), puis taper `vmlinuz` pour amorcer Linux. Le SRM-HOWTO n'est pas vraiment clair. Quoi qu'il en soit, si vous souhaitez installer Linux sur Alpha, pensez surtout à lire les documents indiqués ci-dessus. Pour la RedHat, un document supplémentaire spécifique à l'Alpha a été écrit. Enfin, pensez à vous abonner au forum et à la liste de discussion sur Linux/Alpha, `comp.os.linux.alpha` et `axp-kernel-list@redhat.com`. Page suivante Page précédente Table des matières