EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Les périphérique et leurs pilotes

Historique

14 juin 2013 : Nouveau sujet. Page en construction.

Difficulté

Pour : linuxien un peu curieux.

Introduction

Je me demande comment Linux détecte la présence de mon matériel et éventuellement me demande, dans une fenêtre pop-up, ce que je veux faire avec ma clé USB.
Finalement le site http://blogas.sysadmin.lt/?p=141 m'a renseigné en partie. Mon ordinateur de test, installé avec des anciennes versions de Mandrake a complété.

Les cercles de privilèges

Centre de contrôle Tout commence par le noyau. Les systèmes d'exploitation utilisent des Anneaux de Privilèges :
En informatique, les domaines de protection hiérarchiques (souvent appelés les anneaux de protection), sont un mécanisme destiné à protéger les données et les fonctionnalités par rapport aux défauts (la tolérance aux pannes) et aux programmes malveillants (la sécurité).

Ces anneaux sont créés par le processeur et non par le système d'exploitation.
Les noyaux des systèmes d'exploitation opèrent dans l'anneau 0, qui est le niveau ayant le privilège le plus élévé, et qui peut communiquer directement avec le matériel et le processeur.
Les anneaux 1 et 2 sont généralement utilisé pour les pilotes des périphériques.
Et l'anneau 3 est utilisé pour les applications (multimédia, navigateur web, serveurs ...).
Les pilotes de périphériques forment "un pont" entre les applications (domaine de l'utilisateur) et le matériel. Notez qu'il semble que Linux n'utilise pas ces deux anneaux, vu que les pilotes sont compilés à l'intérieur du noyau ou en tant que modules du noyau.

Maintenant que nous savons où se trouvent noyau et pilotes, voyons la suite.

Haut

Le processus d'accès aux périphériques

Accès aux périphériques par le BIOS, au démarrage de l'ordinateur

Le BIOS fournit un ensemble de services permettant de faire le plus possible abstraction de la couche matérielle de l'ordinateur. Ces services sont utilisés par le système d'exploitation et sont accessibles via certaines zones mémoires ou certaines interruptions logicielles (10h, 11h, 12h et 13h notamment).
Cependant, dans la pratique, les systèmes d'exploitation modernes n'utilisent ces services que lors de l'amorçage ; ils utilisent ensuite soit leur propres pilotes, soit les fonctions ACPI pour les opérations liées à la carte mère.

Suite du démarrage

Sans aller dans les détails, le chargeur de démarrage (lilo ou grub) est ensuite lancé. Habituellement il permet de choisir un système d'exploitation (Mandrake, Mandriva ou Mageia, dans notre cas). Il charge et décompresse l'image du noyau linux (vmlinuz) correspondant à la distribution.

Il décompresse éventuellement une arborescence provisoire (initrd) et place celle-ci en mémoire (=ramdisk).

Le noyau démarre (éventuellement avec cette arborescence provisoire).

Accès aux périphériques par le noyau, au démarrage

Le noyau détecte le matériel présent, charge les pilotes adéquats, initialise les périphériques.
La commande dmesg (ou le fichier /var/log/dmesg) permet de visualiser les messages du démarrage et donc le chargement des pilotes.

Pour les curieux, survolez : démarrage d'une ancienne version : Mandrake 7.1

Voici, en résumé, ce qui est affiché :

Linux version 2.2.15-4mdkfb (chmou@kenobi.mandrakesoft.com) (gcc version 2.95.3 19991030 (prerelease)) #1 Wed May 10 15:00:49 CEST 2000
version du noyau avec quelques paramètres de compilation,
Detected 1094159385 Hz processor.
=fréquence du processeur détecté,
Console: colour dummy device 80x25
=type de console,
Calibrating delay loop... 2182.35 BogoMIPS
=benchmark en BogoMIPS,
Memory: 516888k/524224k available (1248k kernel code, 416k reserved, 5536k data, 136k init, 0k bigmem)
Dentry hash table entries: 65536 (order 7, 512k)
Buffer cache hash table entries: 524288 (order 9, 2048k)
Page cache hash table entries: 131072 (order 7, 512k)
=mémoire trouvée avec occupation,
VFS: Diskquotas version dquot_6.4.0 initialized
=le système virtuel accepte les quotas,
CPU: L1 I Cache: 64K L1 D Cache: 64K
CPU: L2 Cache: 512K
CPU: AMD AMD Athlon(tm) stepping 00
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
=identification et caractéristiques du processeur,
mtrr: v1.35a (19990819) Richard Gooch (rgooch@atnf.csiro.au)
=Memory Type Range Register, Contrôle les accès du processeur à la mémoire
PCI: PCI BIOS revision 2.10 entry at 0xfb4a0
PCI: Using configuration type 1
=version du bus PCI,
PCI: Probing PCI hardware
PCI: Enabling memory for device 02:01
=démarrage de l'examen du bus PCI,
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
TCP: Hash tables configured (ehash 524288 bhash 65536)
=le support de NET4 par le noyau, avec les protocoles,
Initializing RT netlink socket
=initialisation de l'interface noyau/espace utilisateur (netlink),
Starting kswapd v 1.5
=démarrage du démon de swap,
vesafb: framebuffer at 0xe4000000, mapped to 0xe0009000, size 65536k
vesafb: mode is 1024x768x16, linelength=2048, pages=41
vesafb: protected mode interface info at c000:5604
vesafb: scrolling: redraw
vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 128x48
fb0: VESA VGA frame buffer device
=écran VESA et console,
Detected PS/2 Mouse Port.
=détection du port PS/2
Serial driver version 4.27 with MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
=détection des ports série ttyS0 et ttyS1
pty: 256 Unix98 ptys configured
=pseudo-terminal PTY
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.12)
=support de APM,
Real Time Clock Driver v1.09
=pilote de l'horloge,
RAM disk driver initialized: 16 RAM disks of 4096K size
=initialisation du pilote RAM disk,
Uniform Multi-Platform E-IDE driver Revision: 6.30
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PCI_IDE: unknown IDE controller on PCI bus 00 device 48, VID=10de, DID=0065
=pilote E-IDE, fréquence du bus IDE, contrôleurs IDE,
PCI_IDE: not 100% native mode: will probe irqs later
   ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
   ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: WDC WD800BB-00CAA1, ATA DISK drive
hdc: TSSTcorpCD/DVDW SH-S182M, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: WDC WD800BB-00CAA1, 76319MB w/2048kB Cache, CHS=9729/255/63
=définition du disque dur (ATA) et du lecteur CD-ROM (ATAPI), irq correspondants,
FDC 0 is a post-1991 82077
=lecteur disquette,
md driver 0.90.0 MAX_MD_DEVS=256, MAX_REAL=12
raid5: measuring checksumming speed
raid5: MMX detected, trying high-speed MMX checksum routines
   pII_mmx : 2537.460 MB/sec
   p5_mmx : 3188.208 MB/sec
   8regs : 1471.803 MB/sec
   32regs : 1273.302 MB/sec
using fastest function: p5_mmx (3188.208 MB/sec)
=réseau de disques en RAID5,
scsi : 0 hosts.
scsi : detected total.
=détection hôtes SCSI
md.c: sizeof(mdp_super_t) = 4096
Partition check:
 hda: hda1 hda2 < hda5 hda6 hda7 >
=mon partitionnement (entre crochets : partitions étendues)
autodetecting RAID arrays
autorun ...
... autorun DONE.
=détection RAID5, il n'y en a pas
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 136k freed
Adding Swap: 2097136k swap-space (priority -1)
=À ce point c'est presque fini avec le noyau et prêt à démarrer le système.
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
scsi : 1 host.
Vendor: TSSTcorp Model: CD/DVDW SH-S182M Rev: SB04
Type: CD-ROM ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 48x/48x writer cd/rw xa/form2 cdda tray
Uniform CDROM driver Revision: 2.56
=détection du lecteur CD-ROM

Par la suite

Le noyau Linux parcourt constamment tous les bus de votre ordinateur, afin de détecter tout changement et tout nouveau matériel. Une fois que n'importe quel changement sur n'importe quel bus est détecté, alors la magie commence.

Haut