Le système GNU/Linux IUP NTIC2-1013 - 17/11/05



Documents pareils
Formation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session J04 Version 01

Introduction aux Systèmes et aux Réseaux

Séance n o 5 : Alternatives, gestion des utilisateurs et des processus

Cyberclasse L'interface web pas à pas

Cours Programmation Système

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

FreeNAS Shere. Par THOREZ Nicolas

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

STATISTICA Version 12 : Instructions d'installation

Symantec Backup Exec Remote Media Agent for Linux Servers

Virtualisation de Windows dans Ubuntu Linux

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Retrospect 7.7 Addendum au Guide d'utilisation

Maintenir Debian GNU/Linux à jour

Système et réseaux (SR1) Gestion des utilisateurs

Guide rapide d'installation SUSE Linux Enterprise Server 11 SP1

LOGICIEL KIPICAM : Manuel d installation et d utilisation

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Aide d'active System Console

Installation de Windows 2000 Serveur

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

Guide d'utilisation du Serveur USB

Sage CRM. 7.2 Guide de Portail Client

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

DOCUMENTATION VISUALISATION UNIT

Edutab. gestion centralisée de tablettes Android

Guide de l'utilisateur de l'application mobile

Description du logiciel Acronis Backup & Recovery 11.5

Guide de démarrage rapide Express

Chapitre 4 : Édition de fichiers texte - Vi

Instructions d'installation de IBM SPSS Modeler Server 16 pour UNIX

Manuel d'installation

Guide de déploiement

Sage 50 Version 2014 Guide d installation. Sage Suisse SA

gestion des processus La gestion des processus

Le meilleur de l'open source dans votre cyber cafe

Guide de configuration de SQL Server pour BusinessObjects Planning

Table des Matières. 2 Acronis, Inc

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

CA ARCserve Backup Patch Manager pour Windows

La console MMC. La console MMC Chapitre 13 02/08/2009

Module 0 : Présentation de Windows 2000

Résolution des problèmes de connexion XDMCP aux hôtes UNIX et Linux

CONFIGURER VOTRE HEBERGEMENT WINDOWS

VM Card. Manuel des paramètres des fonctions étendues pour le Web. Manuel utilisateur

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

LINUX - ADMINISTRATION PROGRAMME DE FORMATION

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

TRAVAILLER SUR LES ORDINATEURS DU LYCEE

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Boîte à outils OfficeScan

Printer Administration Utility 4.2

Qu'est-ce que c'est Windows NT?

Exportation d'une VM sur un périphérique de stockage de masse USB

1. Comment accéder à mon panneau de configuration VPS?

Plantage et ralentissement

Systèmes d exploitation

FANTEC HDD-Sneaker MANUEL D'UTILISATION. Comprend: Guide d'installation de materiel Disque dur Formatage manuel PCClone EX Guide d'installation

VD Négoce. Description de l'installation, et procédures d'intervention

Unix/Linux I. 1 ere année DUT. Université marne la vallée

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Manuel de System Monitor

Sauvegarder automatiquement ses documents

Sophos Mobile Encryption pour Android Aide. Version du produit : 1.0

WINDOWS SERVER 2003-R2

Assistance à distance sous Windows

Installation de Windows 2003 Serveur

Samsung Drive Manager Manuel d'utilisation

Manuel de l utilisateur de Samsung Auto Backup

Symantec Backup Exec Guide d'installation rapide

McAfee Security-as-a-Service

Version janvier Manuel d'utilisation. Adaptateur Ethernet rapide 10/100 USB 2.0

[Serveur de déploiement FOG]

Comment configurer Kubuntu

Virtual PC Virtual PC 2007 Page I

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Le Ro le Hyper V Premie re Partie Configuration et Prise en main du gestionnaire Hyper-V

e-secure guide d'utilisation

Prise en main. Pour lancer 'manuellement' le bureau mobile : sur la racine de la clé F: exécuter

Version Wraptor Laboratories. Installation de SpamWars 4.0 Édition Entreprise

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Installation et Réinstallation de Windows XP

laissez le service en démarrage automatique. Carte de performance WMI Manuel Désactivé Vous pouvez désactiver ce service.

Table des matières Hakim Benameurlaine 1

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Addenda du Guide de l administrateur

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME

Sauvegarde et restauration d'un système d'exploitation Clonezilla

Cahier Technique Envoi par à partir des logiciels V7.00

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Sauvegardes par Internet avec Rsync

Storebox User Guide. Swisscom (Suisse) SA

Installation de IBM SPSS Modeler Server Adapter

Ce tutoriel ne fera pas de vous un expert sur le déploiement via WDS, mais il vous permettra de comprendre un peu les rouages de ce système.

Backup & Recovery 10 Suite. Guide de démarrage rapide

Transcription:

Capocchi Laurent Doctorant en Informatique capocchi@univ-corse.fr http://spe.univ-corse.fr/capocchiweb Objectifs Comprendre les notions de noyau Linux et des modules. Le système GNU/Linux IUP NTIC2-1013 - 17/11/05 Chapitre 5 et Gestion des Processus Comprendre la notion de processus et de signaux. Apprendre à gérer le multitâche. Éléments techniques abordés Les commandes ps, kill, nice, renice, fuser, nohup fg, bg, jobs Les fichiers /etc/cron.allow, /etc/cron.deny /var/adm/cron/cron.allow, /var/dm/cron/cron.deny Les répertoires /var/spool/at, /var/spool/cron /var/spool/cron/atjobs, /var/spool/cron/crontabs Sommaire Le noyau Linux. Fonctionnement du noyau. Utilisation des modules.. La hiérarchie des processus. La communication interprocessus: les signaux. Gestion des processus interactifs, avant et arrière plan. Gestion des processus. Les traitements différés. Les démons. Questions de révision Le noyau est la couche de base d'un système d'exploitation et il gère: la mémoire, l'accès aux périphériques (disque dur, carte son, carte réseau, etc...), la circulation des données sur le bus, les droits d'accès, les multiples processus qui correspondent aux multiples tâches que l'ordinateur doit exécuter en même temps, etc... Le noyau ne gère pas: le mail, l'affichage des pages Web, le traitement du texte. Le noyau a l'originalité d'être multi-utilisateurs et multi-tâches et de fonctionner sur de nombreuses plates-formes (Intel, Apple, etc...). Il est conforme à la norme POSIX et est distribué sous Licence GPL. Il appartient au monde du libre lui garantit une correction rapide des erreurs qui pourraient être découvertes. La commande permettant de connaître la version d'un noyau est uname -a.

Le noyau Linux permet le contrôle à bas niveau du matériel ainsi que cinq fonctions essentielles: Le démarrage du système; la gestion des processus: le noyau permet le contrôle de tous les processus du système et s'assure que chacun d'entre eux dispose d'une partie raisonnable de mémoire et de cycles processeurs; la communication inter-processus (IPC, Inter Process Communication): le noyau contrôle la communication entre les processus en utilisant un système de mémoire partagée, de tubes (pipes) et de tubes nommés. Toute cette gestion est conforme au standard POSIX. l'interaction avec le matériel: le noyau fournit aux processus un accès aux périphériques matériels. Il dispose d'instructions générales pour des périphériques standards (disque dur par exemple) et permet également l'utilisation de pilotes spécifiques. le système de fichiers virtuel (VFS, Virtual FileSystem): Linux dispose d'une interface spéciale du noyau appelée VFS qui lui permet de supporter plusieurs systèmes de fichiers. Cette interface permet de traiter les systèmes de fichiers de manière unifiée, et apparaît donc comme un pilote de périphérique, mais pour les systèmes de fichiers. Une distribution Linux est un ensemble cohérent de plusieurs choses: un noyau Linux, des programmes, en majorité libres (un navigateur Web, un lecteur de Mail, un serveur FTP, etc...), une méthode pour installer et désinstaller facilement ces programmes, un programme d'installation du système d'exploitation. Abus de langage en désignant par le terme Linux qui est en fait une distribution Linux. La plupart des distributions sont gratuites, car constituées exclusivement de logiciels libres ou de programmes propriétaires gratuits. Fonctionnement Le noyau Linux est dit monolithique et uniforme. Un noyau monolithique fonctionne comme un seul grand noyau et non pas à l'aide de composants distincts. Un noyau est uniforme quand chaque fonction est exécutée de la même manière à chaque fois qu'elle est lancée. Le noyau est cependant très modulaire et conserve toutes ses fonctions dans la même adresse mémoire, les fonctions communiquant alors grâce à cette adresse. Pour garantir la stabilité du système, il place chacun des pilotes chargés dans une "bulle" virtuelle de sorte que les erreurs ne puissent pas se propager. Toutes les fonctions du noyau sont localisées dans des éléments de code modulaires qui peuvent être soit intégrés au noyau compilé, soit compilés séparément en tant que modules. Utilisation des modules Qu'est-ce qu'un module? Techniquement, les modules sont des morceaux de noyau qui peuvent être insérés ou enlevés sans redémarrer l'ordinateur. En pratique, un module est un pilote d'un périphérique ou d'une fonctionnalité. La commande permettant de lister l'ensemble des modules chargés est lsmod. Les commandes permettant de charger er de décharger les modules sont repsectivement rmmod (modprobe -r) et insmod (modprobe -i). le fichier /etc/modules permet de spécifier quels modules doivent être chargés au démarrage.

Utilisateur Système La hiérarchie des processus un processus (ou tâche) est un logiciel autonome en cours d'exécution. Le système UNIX identifie chaque processus grâce à un numéraux unique, son PID (Process IDentification). Chaque processus possède un propriétaire référencé par un UID. Chaque processus à un processus père référencé par un numéro PPID (Parent Process Identification). L'ensemble des processus forment une hiérarchie de processus pères et de processus fils. 1 init 2501 syslog 2910 nfsd 1352 inetd 14214 popper telnetd telnetd imapd 21238 22107 10323 bash 92123 92504 ksh La communication interprocessus: les signaux La communication interprocessus: les signaux La communication entre les processus passe par des signaux qu'ils s'échangent. Un signal permet de contrôler le déroulement d'un processus. On fait correspondre un numéro à chaque signal. Un signal peut avoir un numéro différent selon le système d'exploitation (SIGTSTP porte le numéro 20 sous Linux et le numéro 18 sous AIX). La commande trap permet d'activer ou de désactiver le programme associé au signal. Nom du signal Numéro Interprétation SIGHUP 1 Déconnexion du terminal SIGINT 2 Interruption depuis le clavier (CTRL+C) SIGKILL 9 Signal «KILL» SIGBUS 10,7 Erreur de bus SIGSYS 12 Appel système avec mauvais arguments $ trap '' 2 associe la commande «vide» au signal SIGINT (2), de qui inhibe la combinaison de touches CTRL+C. Certains signaux comme SIGKILL ne peuvent pas être inhibés, ce qui assure que l'on pourra toujours tuer un processus.

Gestion des processus interactifs, avant et arrière-plan Le fonctionnement normal du shell oblige l'utilisateur à attendre que le processus lancé en avant-plan soit terminer pour pouvoir en exécuter un autre au niveau d'une fenêtre de terminal. Le lancement de la tâche en arrière-plan permet de ne pas bloquer la ligne de commande. Le nombre de processus en arrière-plan n'est pas limité alors qu'il ne peut y avoir qu'un seul processus en avant-plan. Le lancement d'une ligne de commandes en arrière plan utilise le signe & à la fin de la ligne. La commande fg (pour foreground) permet de faire passer une tâche s'exécutant en arrière plan vers le l'avant. La commande bg permet l'opération inverse. Pour faire passer en arrière plan une tâche lancée en avant-plan, il faut tout d'abord la suspendre sans l'arrêter, avec la combinaison CTRL+Z (signal SIGTSTP) Gestion des processus interactifs, avant et arrière-plan exemple: recherche de tous les fichiers et répertoires orphelins. $ find / -nouser -print > /tmp/liste.nouser ˆZ [1]+ Stopped find / -nosuer -print > /tmp/liste.nouser $ bg [1]+ find / -nosuer -print > /tmp/liste.nouser & jobs [1]+ Running find / -nosuer -print > /tmp/liste.nouser & fg find / -nosuer -print > /tmp/liste.nouser ˆC $ Les commandes fg et bg peuvent être saisies avec, en argument, le numéro du processus à gérer. $ fg %2 si le numéro 2 correspond à la numérotation fourni par jobs. Gestion des processus Les commandes ps Affiche les informations sur les processus. kill Envoie un signal à un ou plusieurs processus. fuser Gère les processus attaché à un répertoire. nice et renice Ces deux commandes changent les priorités. nohup Lance un processus qui ne sera pas «tué» à la déconnexion. crontab Définit la liste des tâches différées à exécuter régulièrement. at Permet d'exécuter une commande en différée. Affichage des processus: la commande ps $ ps PID TTY TIME CMD 8465 pts/1 00:00:00 bash 8512 pts/1 00:00:00 ps PID: numéro du processus TTY: numéro de ligne de communication associé au processus TIME: temps d'exécution du processus CMD: commande associée au processus Les options de la commande ps permettent d'afficher: -l: les informations complètes (UID, PPID...) -a: les processus des autres utilisateurs -e: la liste de tous les processus, sauf ceux du noyau -u: les informations de l'utilisateur spécifié.

Envoi de signaux: la commande kill Ce signal tue les processus. $ kill -option -num_signal pid1 pid2... Si aucun numéro de signal n'est précisé, c'est SIGTERM (15) qui est envoyé. Les PID des processus sont obtenues avec la commande ps. kill -l équivaut à trap -l $ kill -kill 0 tue tous les processus de la session actuelle et déconnecte l'utilisateur qui la saisie. $ kill -kill 1 tue tous les processus appartenant à l'utilisateur qui saisit cette commande. $ jobs [1]- stopped sleep 5 [2]+stopped sleep 10 $ kill %2 [2]+ Terminated sleep 10 Gestion des processus attachés aux répertoires: la commande fuser Par défaut, cette commande affiche les numéros de processus (PID) qui utilisent les fichiers ou les systèmes de fichiers indiqué en argument. Les options sont très différentes selon les systèmes UNIX. Un suffixe apparaît à la suite du numéro du processus indiquant le type d'accès du processus: c Accès au répertoire courant e Accès à un programme en cours d'exécution r Accès au répertoire racine m ou s Accès à un fichier en mémoire ou à une bilbio. partagée. La commande fuser avec l'option -k arrête tous les processus: # fuser -k /home/durant /home/durant: 343420023c 11212230c 23232323c Gestion des priorités: les commandes nice et renice: La commande nice lance l'exécution d'une commande avec une priorité plus faible ou plus forte. Plus la valeur passé en argument est élevée, plus le processus sera moins prioritaire. Chaque utilisateur peut diminuer la priorité de ces processus mais seul root peut l'augmenter. $ nice -incrément commande commande est la ligne de commande à exécuter incrément est l'ajustement de la priorité (défaut 10). La commande ps -l permet de faire apparaître la valeur de priorité dans une colonne notée NI. La commande renice change la valeur de priorité d'un processus actif. Les traitements différés La commande nohup Lorsqu'un processus s'exécute, la déconnexion de la session lui envoie un signal SIGHUP qui l'arrête. Le commande nohup exécute la ligne de commandes passées en argument et inhibe le signal SIGHUP. Si l'exécution affiche des informations à l'écran, celles-ci sont sauvegardées dans le fichier nohup.out. $ nohup find / -print 2 > /dev/null & [1] 234 $ ps -f grep find martin 234... pts/1 find / -print $exit connexion closed by foreign host Après déconnexion l'utilisateur martin se connecte à nouveau. Le processus lancé avec nohup est toujours actif, il n'est rattaché à aucun terminal (colonne TTY?), et le processus père et init.

Les traitements différés Les traitements différés La commande at La commande crontab La commande at planifie l'exécution d'une commande en différé. L'accès à cette commande est contrôlé par deux fichiers: /var/adm/cron/at.allow (AIX) ou /etc/ar.allow (Linux): contient la liste des noms d'utilisateurs autorisés à se servir de la commande. Si ce fichier n''existe pas, seul l'utilisateur root peut l'utiliser. /var/adm/cron/at.deny (AIX) ou /etc/at.deny (Linux): contient la liste de noms de utilisateurs qui ne sont pas autorisé à se servir de la commande at. Le format de la date peut être AAMMJJhhmm (AIX) ou hh: mm JJ/MM/AA. la date du 10 mars 2004 à 22h sous AIX $ at -t 0403102200 find /tmp -nouser -print 2 > /dev/null ˆD Planifie les tâches répétitives de l'utilisateur qui la saisie. Utilisé par le root pour lancer automatiquement: le nettoyage de fichiers de /tmp toutes la nuits, la recherche des fichiers ou des répertoire «orphelins» une foi par semaine ou par moi, le redémarrage du serveur tous les soirs... Deux fichier de configuration: cron.allow et cron.deny Deux options principales: -l: Affiche le fichier de planification de l'utilisateur -e: Sous Linux, édite le fichier de planification en mode pleine page. Les démons Ce sont des processus particuliers qui sont toujours actifs. Leur non possède souvent le suffixe «d» (pour daemon). Le rôle d'un démon est de gérer les services proposés par le serveur, qu'il s'agisse de démons système, comme la planification des tâches (cron), ou réseau, comme telnetd. L'activation des démons peut se faire: au démarrage de la machine (fichier /etc/inittab), à la demande. Lorsque le démons est lancé à la demande il est pris en charge par le «superdémon», inetd. Les démons sont des processus que l'on peut administrer comme les autres avec la commande kill. Résumé Le noyau Linux est: Multi-utilisateurs et multi-tâches. Conforme à la norme POSIX et est distribué sous Licence GPL. Il permet: Le démarrage du système et la gestion des processus. La communication inter-processus et l'interaction avec le matériel. La gestion de plusieurs FS (VFS). correspondent aux logiciels actifs. Chaque processus (avec un numéro unique PID) est autonome, possède un processus père (avec un numéro PPID). L'activité du serveur est représenté par une hiérarchie de processus pères et de processus fils dont le premier est init. Les signaux permettent la communication entre processus et sont des événements non prévu dans le traitement normal du logiciel. Les démons sont des processus actif en permanence et rendent des service intern (planification de tâches) ou externes (services réseaux). Les démons sont lancés soit au démarrage (fichiers /etc/inittab, /etc/rc,...) soit à la demande quand il sont pris en charge par le «superdémon» inetd.

Questions de révision 1.Quelle est la commande qui permet de connaître la version d'un noyau? 2.Qu'est ce que le PID et le PPID d'un processus? 3.Quel est le rôle des signaux? 4.Quel est le nom du signal qui arrête un processus interactif? 5.Comment faire pour exécuter une commande en arrière-plan? 6.Quelle est la différence entre la commande ps -f et la commande ps -ef? 7.Quelle commande permet de tuer un processus particulier, et quelle commande permet de tuer les processus attachés à un répertoire? 8.Une valeur positive pour la commande de nice augmente-t-elle la priorité du processus? 9.Quelle est la différence entre la commande nohup et at? 10.Quelle est la commande qui permet de planifier des traitements différés? Quel est le nom du démon qui gère le déclenchement de ces traitements? 11.Comment se nomment les deux fichiers qui donnent accès à la commande at? Bibliographie et Webographie UNIX & LINUX, Jean-Michel Léry, Pearson Education.