Sujet 101 : Architecture système

Linux Systems Architecture · lab

Browse all systèmes d'exploitation et cloud documents

Sujet 101 : Architecture système

 101.1 Déterminer et configurer les paramètres du matériel (Weight 2)

 101.2 Démarrage du système (Weight 3)

 101.3 Modification des niveaux d'exécution et arrêt ou redémarrage

du système (Weight 3)

ziedbouziri.com

1

Déterminer et configurer les paramètres du matériel

 Description : Les candidats doivent être capables de déterminer et de

configurer le matériel et les périphériques sous GNU/Linux.

 Termes, fichiers et utilitaires utilisés :

● /sys

● /proc

● /dev

● modprobe

● lsmod

● lspci

● lsusb

ziedbouziri.com

2

Déterminer et configurer les paramètres

du matériel

ziedbouziri.com

3

lspci : les périphériques attachés au bus PCI

$lspci

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)

00:01.0 PCI bridge: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port (rev 07)

00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)

00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)

00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)

00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)

00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)

00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)

00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)

00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03)

00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)

00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)

ziedbouziri.com

4

lsusb

$ lsusb

Bus 008 Device 005: ID 03f0:2b17 Hewlett-Packard LaserJet 1020

Bus 008 Device 004: ID 04f2:b008 Chicony Electronics Co., Ltd

Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 005 Device 003: ID 15d9:0a4c

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 002: ID 1058:0704 Western Digital Technologies, Inc.

Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ziedbouziri.com

5

Advertisement

/proc/ioports : ports entrées sorties disponibles

 Obtenir la liste des ports d'entrée/sortie

$cat /proc/ioports

0000-001f : dma1

0020-0021 : pic1

0040-0043 : timer0

0050-0053 : timer1

0060-0060 : keyboard

0064-0064 : keyboard

0070-0077 : rtc0

0080-008f : dma page reg

00c0-00df : dma2

ziedbouziri.com

6

/proc/interrupts

 Obtenir la liste de toutes les interruptions de tous les périphériques :

$ cat /proc/interrupts

CPU0 CPU1

0: 303284 309287 IO-APIC-edge timer

1: 955 833 IO-APIC-edge i8042

8: 27 26 IO-APIC-edge rtc0

9: 3406 3219 IO-APIC-fasteoi acpi

12: 69 51 IO-APIC-edge i8042

16: 1545 1535 IO-APIC-fasteoi uhci\_hcd:usb2, ohci1394, mmc0

17: 9 8 IO-APIC-fasteoi HDA Intel

18: 0 0 IO-APIC-fasteoi uhci\_hcd:usb8

19: 1197 1200 IO-APIC-fasteoi ehci\_hcd:usb1, uhci\_h

ziedbouziri.com

7

/proc/dma

 Obtenir la liste des canaux DMA (Direct Memory Acess) en cours d’utilisation.

$ cat /proc/dma

4: cascade

ziedbouziri.com

8

/proc

 Pseudo-système de fichiers d’informations sur le système :

– Partitions : /proc/partitions

– Processeur : /proc/cpuinfo

– Arguments passés au noyau Linux lors du boot: /proc/cmdline

– Les quantités de mémoires (physique et swap) libres et utilisées : /proc/meminfo

Informations sur la pile TCP/IP : /proc/net

ziedbouziri.com

9

Sysfs ou /sys

 Sysfs est un système de fichiers virtuel introduit par le noyau Linux 2.6.

 Sysfs permet d'exporter depuis l'espace noyau vers l'espace utilisateur des informations

sur les périphériques du système et leurs pilotes.

 /sys/class/ : montre les périphériques regroupés en classes,

 /sys/block/ : contient les périphériques de type bloc.

 /sys/bus/ : la manière dont chaque périphérique appartient aux différents bus.

 ...

ziedbouziri.com

10

UDEV

Advertisement

ziedbouziri.com

11

USB (Universal Serial Bus)

 Apparu en 1990,

 Conçu par un consortium réunissant différents constructeurs

 Objectif : Interconnecter en série de nombreux périphériques (caméras vidéo, systèmes

audio, modems haute vitesse, disques , imprimantes, ...).

 Le standard présent sur tous les PC.

 L'USB est plug and play

 Connexions / déconnexions à chaud.

 Peut alimenter la plupart des périphériques qui lui sont raccordés.

ziedbouziri.com

12

USB : Contrôleurs

 UHCI : Universal Host Controller Interface

 OHCI : Open Host Controller Interface

 EHCI : Enhenced Host Controller Interface

ziedbouziri.com

13

Démarrage du système

ziedbouziri.com

14

Démarrage du système

 Description : Les candidats doivent être capable de comprendre les phases

d'amorçage d'un système Linux.

 Termes, fichiers et utilitaires utilisés :

● /var/log/messages

● dmesg

● BIOS

● bootloader

● kernel

● init

ziedbouziri.com

15

BIOS (Basic Input Output System)

 Interface logicielle entre le matériel et le logiciel à un niveau très basique.

 Il fournit l’ensemble des instructions de base utilisées par le système d’exploitation.

 Il fournit le niveau d’interface le plus bas aux pilotes et périphériques.

 Présent sur une mémoire EEPROM (Electrical Erasable Programmable Read­Only

Memory)

 Déclenche quand l’ordinateur est électriquement allumé, .

 Le BIOS lit et exécute le premier secteur physique du média de démarrage. Il s’agit

généralement des 512 premiers octets du premier disque dur (le MBR).

ziedbouziri.com

16

BIOS : configuration

ziedbouziri.com

17

Chargeur de démarrage

 Le BIOS active le MBR

 Le chargeur est décomposé en deux parties.

 Le chargeur initial : charge la seconde phase, basée sur un fichier de configuration.

 La seconde phase fournit une interface pour lancer un système d’exploitation parmi

un choix donné.

 Passer des paramètres au noyau Linux et au processus init.

ziedbouziri.com

Advertisement

18

GRUB : Grand Unified Bootloader

 Support de plusieurs systèmes de fichiers

 Support du démarrage depuis un réseau

 Mode menu et le mode ligne de commandes « un shell »

 Protéger l'accès à GRUB à l'aide d'un mot de passe crypté.

 Rôle :

– Charger le noyau en mémoire et l'exécute

– Charger le ramdisk initrd.img en mémoire

ziedbouziri.com

19

/etc/grub.conf ou /boot/grub/menu.lst

timeout=10

default=0

title Red Hat

root (hd0,0)

kernel /vmlinuz-2.6.12-15 ro root=LABEL=/

initrd /initrd-2.6.12-15.img

title Windows XP

rootnoverify (hd0,1)

chainloader +1

ziedbouziri.com

20

ziedbouziri.com

21

kernel

 /var/log/dmesg et dmesg : le tampon des messages du noyau

 Le matériel est détecté et initialisé.

 initrd est chargé, les modules présents éventuellement chargés.

 Le noyau monte le système de fichiers racine en lecture seule.

 Le premier processus est lancé : init.

ziedbouziri.com

22

init

 Init est le premier démarré et dernier stoppé au sein du

système, PID 1

 init est le père de tous les autres processus qui seront créés par

l'appel system fork()

 init lit le fichier /etc/inittab pour savoir :

– quel est le fichier à exécuter pour continuer le chargement du

système

– quel est le runlevel (niveau d'exécution) par défault

– comment lancer les services pour un runlevel donné

ziedbouziri.com

23

Le premier script

 Après le chargement du noyau, le script correspondant à sysinit dans fichier inittab est

chargé :

– Sous Red Hat : si::sysinit:/etc/rc.d/rc.sysinit

– Sous Debian : si::sysinit:/etc/init.d/rcS

 Rôle :

– Configuration des paramètres du noyau présents dans /etc/sysctl.conf

– Mise en place des fichiers périphériques (/dev via udev ).

– Configuration de l’horloge du système.

– Chargement des tables de caractères du clavier.

– Activation des partitions d’échange SWAP.

Advertisement

– Définition du nom d’hôte.

– Contrôle et montage du système de fichiers racine (en lecture-écriture cette fois).

– Contrôle et montage des autres systèmes de fichiers.

ziedbouziri.com

24

Modification des niveaux d'exécution et arrêt ou redémarrage

du système

ziedbouziri.com

25

Modification des niveaux d'exécution et arrêt ou redémarrage du

système

 Description : Modification des niveaux d'exécution et arrêt ou redémarrage

du système

 Termes, fichiers et utilitaires utilisés :

● /etc/inittab

● shutdown

● init

● /etc/init.d

● telinit

ziedbouziri.com

26

Niveaux d'exécution

ziedbouziri.com

27

Le script rc

 /etc/rc.d/rc ou /etc/init.d/rc prend comme argument le niveau d’exécution x selon :

initdefault

– Ou la commande init (telinit)

 /etc/init.d/rc x

– Accède au répertoire /etc/rcx.d contenant des liens de la forme [SK]NNservice

– S : lance le script avec l'argument start (démarrage du service)

– K : lance le script avec l'argument stop (arrêt du service)

– NN : est un rang qui fixe l'ordre dans lequel les scripts sont lancés

ziedbouziri.com

28

runlevel, init, telinit

 runlevel :Afficher le niveau d'exécution précédent et actuel.

runlevel

3 5

 Init ou telinit : Changer le niveau d'exécution

$ ls -l /sbin/telinit

lrwxrwxrwx 1 root root 4 jan 8 16:41 /sbin/telinit -> init

init 3

init 1

ziedbouziri.com

29

Arrêt

 shutdown.

ziedbouziri.com

30