Cours Systèmes d’exploitation

Slides:



Advertisements
Présentations similaires
Système d’exploitation
Advertisements

Formation - Fedora et VMware
Active Directory Windows 2003 Server
Formation TRANSFER Vietnam Mars 2003 Jean Pierre TO.
Master Professionnelle Sciences et Techniques 2 juillet
UNIX Pour débutant. Applications En directNavigateurCourrierMode consoleFenêtrage http smtp ssh X protocoles - langages de programmation protocoles -
UNIX Pour débutant. Applications En directNavigateurCourrierMode consoleFenêtrage http smtp ssh X Protocoles de communication Protocoles de communication.
Synchronisation des processus père - fils
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
Chapitre 3: Système d’exploitation
Systèmes et Architectures
Linux de Base Merci à Arnaud dupont.
Mémoire & Processus Cours SE - SRC
Systèmes d’Exploitation
Systèmes d’exploitation
Système d’exploitation Évolué ”Unix”
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 5 Interpréteur de commande, Bourne shell,
Systèmes d'exploitations Les redirections d'entrées/sorties GRARI Mounir ESTO Année 2011.
Unix Raymond Ripp.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Active Directory Windows 2003 Server
INTRODUCTION UNIX-LINUX
LA SÉCURITE DU RÉSEAU Stéphane Le Gars – Mars
Module 1 : Préparation de l'administration d'un serveur
Windows 7 Administration des comptes utilisateurs
Recherche avancée multi-champs EBSCOhost
Version 2007Administration système Linux Francis Rogard 1 SYSTEME DEXPLOITATION LINUX La ligne de commandes.
Version 2007Administration système Linux Francis ROARD 1 SYSTEME DEXPLOITATION LINUX Gestion des utilisateurs.
Système d’exploitation
Systèmes d'exploitations
Configuration de Windows Server 2008 Active Directory
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
LES FICHIERS Un exemple : Unix.
FICHIERS : Définition : Algorithme général:
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 4 Syntaxe des commandes, documentation standard,
GPA435 – Lab #2 partie 2 Explications compl é mentaires GPA435 – révision 2013, Tony Wong, ing., Ph.D.
Module 2 : Préparation de l'analyse des performances du serveur
LAL Service Informatique Stage Informatique 1 Le système Unix l Multitâche, multi-utilisateur, partage des ressources l Universel : machines, portabilité.
CSI3531 – Labo 1 Lobservation du comportement de processus.
Utilisation avancée de linux
Systèmes d'exploitations Processus
CHAPITRE 4 : Gestion des Utilisateurs et Groupes
Introduction aux systèmes d’exploitation
UTILISATION DE LINUX. LINUX 2 UTILISATION DE LINUX Différences Windows-Linux Le prix La licence Le choix des distributions Les applications Les utilisateurs.
Gérer la sécurité des mots de passe et les ressources
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
GESTION DES UTILISATEURS ET DES GROUPES
Système d’exploitation 2 Unix User
Maria Malek - EISTI - CPI11 Présentation d’UNIX –1969, laboratoire Bell –Systèmes multi-tâches multi-utilisateurs –Architecture Le noyau –Gestion de la.
Programmation Système et Réseau
La mémoire virtuelle Dans laquelle un ordinateur exécute des programmes dont les besoins en mémoires dépassent la mémoire disponible. Par exemple des.
Unix Raymond Ripp.
Finder => Application => Utilitaires => Terminal Editor:pico Touches –Finder=>Applic.=> Utili. => Touches –~: Alt+N –|: Shift+Alt+N –[: Shift+ Alt+5 –{:
1 REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEURE ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE ABDELHAMID IBN BADIS.
AFPA CRETEIL 14-1 Windows NT Environnement des utilisateurs Chapitre 14.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Systèmes d’exploitation
En route vers le déploiement . . .
Elaboré par Ahmed BESSAIDI
FORMATION Unix/Linux CHAPITRE 5 : Gestion des Droits.
Interpréteurs de commandes SIO Programmation Web.
1 Windows 2003 Server Stratégie des comptes. 2 Windows 2003 Server Il faut tenir compte de ces 3 paramètres.
FORMATION Unix/Linux CHAPITRE 3: Commandes De Base.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Master 1 ère année Sécurité des Systèmes Informatique 1 Accès aux systèmes de fichiers  Montage: mount bin etc lib home wallace gromit tmp var spool cron.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Chapitre 3 Administration des accès aux ressources
Transcription de la présentation:

Cours Systèmes d’exploitation & Linux Formation GTI Septembre 2006 Ahmed Jebali

Plan du cours Linux: Introduction générale Initiation au shell Le système de fichiers Les redirections & pipes La gestion des utilisateurs Les processus Les filtres L’éditeur vi Les scripts Fonctions avancées

Logiciel Libre Liberté d’utiliser le logiciel pour n’importe quelle utilisation Liberté d’étudier le fonctionnement du logiciel et de l’adapter à ses besoins Liberté de redistribuer des copies du logiciel Liberté d’améliorer le logiciel et de distribuer publiquement ces améliorations pour le bénéfice de toute la communauté

Pourquoi utiliser les logiciels libres ? C’est le domaine des technologies de l’information qui possède une histoire cohérente et continue Ce sont les systèmes alternatifs qui permettent une analyse comparative critique C’est un moyen d’acquérir des outils et des méthodes originales C’est un moyen de s’approprier les nouvelles technologies de façon autonome et indépendante

Définir Linux Propriétés Ouverture/Fermeture d’une session multi-tâches : multi-utilisateurs : multi-postes : Outils / logiciels gratuits Environnement de développement Libre (et gratuit) !! : Ouverture/Fermeture d’une session Travailler sous Linux implique une connexion au système Login: Identification de l’utilisateur: login + mot-de-passe droits accordés par le super-utilisateur (root) Logout: procédure de sortie commande “logout” dans la console

Concepts de base Kernel = Noyau Shell Application Gestion des Entrées/Sorties Ordonnancement des tâches (scheduleur) Gestion de la mémoire virtuelle Shell Interprétation des commandes utilisateur Séquencement entre les programmes Application Ajout et|ou retrait à l’aide de paquets Développements modulaires pour partager les bibliothèques entre applications

L’histoire… Linux est le petit fils de Unix Voir « Unix history »

La première fois ! Une fois connecté, le système nous connaît, ouvre une session à notre nom et attend nos instructions via un programme spécial: Le Shell = interpréteur de commandes interface utilisateur “de base” (interlocuteur avec le syst.) interprétation ligne à ligne plusieurs shells: sh, csh, tcsh, bash, ksh, zsh, ... configurable: fichiers d’environnement (commençant par un “.”) “.login” “.logout” “.bashrc” langage de programmation shell par défaut : bash

Les utilisateurs et les groupes Linux est multi-utilisateurs Chaque utilisateur a un login = nom identifiant unique Un utilisateur particulier : root Rôle du root : Administrer la machine Configurer les comptes utilisateurs Résoudre les problèmes systèmes Les utilisateurs sont organisés dans des groupes s’ils partagent les mêmes fichiers S’ils ont les mêmes responsabilités S’ils appartiennent au même service

Procédure de login Démarrer la machine Choisir le système Linux Login : root Passwd :

commande [-option(s)] [argument(s)] Initiation au shell Format général des commandes: commande [-option(s)] [argument(s)] Exemple : ls –a *.txt

Exemples date touch fic hostname whoami echo ls man <cde> crée un fichier fic hostname whoami affiche le nom de login de l’utilisateur connecté echo affiche un message (echo "bonjour !") ls liste le contenu d’un répertoire man <cde> manuel en ligne de la commande <cde>

Exercice Chercher la page manuelle de la commande ls Tester les différentes options ( -R) Tester ces mêmes options sur l’argument /

Sortie de ls drwx------ 7 jebali sor 512 Sep 30 17:51 cours1.ps drwxr-xr-x 4 jebali sor 512 Sep 12 2003 xIngenieur drwxr-xr-x 4 jebali sor 1024 Oct 10 2003 xMedianet drwxr-xr-x 14 jebali sor 1024 Sep 28 12:22 xPack drwx------ 55 jebali sor 1536 May 16 14:48 xPersonnel drwx------ 4 jebali sor 512 Jul 10 2000 xProjet drwxr-xr-x 3 jebali sor 512 Dec 29 2000 xReunion -rw-r--r-- 1 jebali sor 888 Nov 26 1999 notes.txt drwx------ 2 jebali sor 512 Jan 16 2002 xShrap drwxr-xr-x 4 jebali sor 512 Jul 11 2000 xThese lrwxr-xr-x 1 jebali sor 17 Apr 11 2002 yoko -> /home/yoko/

Shell : les méta-caractères Caractères spéciaux: ! ^ * ? [] \ ; & < > | >> L'astérisque ou étoile: * interprété comme toute suite de caractères alphanumériques utiliser avec précaution (commande rm par ex...) Le point d’interrogation: ? remplace 1 seul caractère alphanumérique

Shell : les méta-caractères Caractères spéciaux: ! ^ * ? [] \ ; & < > | >> Le point-virgule: ; Séparateur de commandes Les crochets: [] Remplace un caractère choisi parmi ceux énumérés entre les crochets [a-Z] : les lettres

Exercice Ecrire une commande qui affiche les fichiers dont le nom se compose de 4 caractères se compose de deux caractères ou plus se compose de de deux caractères séparés par un -

Les variables d’environnement La commande env affiche les variables d’environnement La plupart servent à configurer l’environnement utilisateur export Nomvariable=valeur affecte valeur à la variable echo $Nomvariable affiche la valeur de la variable

Variables d’environnement La variable PS1 contient le « prompt » = l’invite de commande \d pour ajouter la date \t pour ajouter l'heure \u pour ajouter le nom de l'utilisateur \r pour un retour à la ligne \w pour ajouter le chemin complet du répertoire courant \W pour ajouter le répertoire courant \h pour ajouter le nom de la machine Exercice : changer le contenu de cette variable

Exercice Ecrire une commande qui affiche La variable d’environnement contenant le chemin des exécutables Deux variables d’environnements de votre choix Les fichiers dont le nom est le contenu d’une variable d’environnement que vous avez créé à l’avance, et avec une extension .numéro (exemple fic.9)

Forme générale des commandes Sortie standard (écran) Entrée standard (clavier) Commande Sortie d’erreur (écran…)

Exemple Lancer la commande sort Donner des noms de villes par exemple Finir par Ctr-d Observer le résultat

Mécanisme de redirection < nomfic prend comme entrée nomfic > nomfic envoyer la sortie de la commande dans ce fichier >> ajouter la sortie au fichier Faire le test avec les commandes que vous connaissez

Exercice Ecrire une commande qui stocke les informations Propres au système dans un fichier nommé sysinfo Propres à l’utilisateur dans le fichier userinfo Ces informations sont récupérées soit dans les variables d’environnement soit avec des commande que vous connaissez.

Les tubes/pipes Exemple : ls | sort AltGr-6 Sortie standard Entrée standard Commande Sortie d’erreur Sortie d’erreur Exemple : ls | sort AltGr-6

Exercice Ecrire une commande qui ordonne dans l’ordre inverse Les variables d’environnements Le contenu d’un fichier de noms de pays

Commandes Chercher dans le manuel ces commandes cat nomfichier more nomfichier wc grep texte nomfichier head nomfichier tail nomfichier

Exercice Ecrire une commande qui calcul le nombre d’occurrence de « Paris » dans un fichier de noms de villes.

Les scripts Des utilitaires écrits avec des commande du shell. Interprétés directement en shell Gère l’interactivité avec l’utilisateur Commence par #!/bin/shellutilisé Ne pas oublier le droit exécution !

Système de fichiers Implanté sur une partition du disque Structuré en répertoire La racine est / Exo : cd / ls / /etc /usr /bin

Arborescence de Linux / la racine /bin /usr /root /lib /etc /home /dev /var /mnt /boot /sbin

Commandes du FS Répertoires Fichiers mkdir nom-de-répertoire Création d'un répertoire rmdir nom-de-répertoire Suppression d'un répertoire vide mv répertoire répertoire-d'accueil déplacement mv répertoire nouveau-nom Fichiers touch mon-fichier création d'un fichier vide more mon-fichier visualisation d'un fichier par page rm mon-fichier suppression mv mon-fichier répertoire déplacer mv mon-fichier nouveau-nom renommer cp nom-fichier répertoire-d'accueil/autre-nom copie file mon-fichier type de fichier

Sortie de ls –l drwx------ 7 jebali sor 512 Sep 30 17:51 cours1.ps drwxr-xr-x 4 jebali sor 512 Sep 12 2003 xIngenieur drwxr-xr-x 4 jebali sor 1024 Oct 10 2003 xMedianet drwxr-xr-x 14 jebali sor 1024 Sep 28 12:22 xPack drwx------ 55 jebali sor 1536 May 16 14:48 xPersonnel drwx------ 4 jebali sor 512 Jul 10 2000 xProjet drwxr-xr-x 3 jebali sor 512 Dec 29 2000 xReunion -rw-r--r-- 1 jebali sor 888 Nov 26 1999 notes.txt drwx------ 2 jebali sor 512 Jan 16 2002 xShrap drwxr-xr-x 4 jebali sor 512 Jul 11 2000 xThese lrwxr-xr-x 1 jebali sor 17 Apr 11 2002 yoko -> /home/yoko/

Type de fichiers - fichier normale d : répertoire (directory) b : bloc, fichier spécial mode bloc c : caractère, fichier spécial mode caractère l : lien symbolique p : fichier pipe s : socket

Droits Organisé en trois lots Droits utilisateur, du groupe, des autres Exo ls –l R: read lire W : write écrire X : execute exécution Attention signification différente selon fichier ou répertoire

Changer les droits d’accès chmod [droit] nomfichier Les droits sont exprimés par ugo+/-rwx Exercice : changer les droits de vos fichiers Enlever le droit de lecture pour le propriétaire Et voir si vous pouvez afficher son contenu

Droits en octal Exprimer les droits avec les chiffres 0 pas de droits 1 pour - - x 2 pour - w – 3 pour – wx … Exemple :

Droits d’accès sur les répertoires x : travaerser avec la commande cd r : lister le contenu avec ls w : écriture, donc supprimer aussi des fichiers

Gestion de l’espace de stockage Consulter le manuel des commandes df du

Les inodes Comment les voir : ls –li C’est quoi ? Un numéro qui renvoie sur une structure dans une table d’inodes Information : nom, taille, date, permission,

Les montages : introduction Tout appartient à / Chaque périphérique est monté sur un répertoire appartenant à / Comment faire : avec la commande mount mount /dev/periph /mnt/repertoire Puis on peut naviguer dans /mnt/repertoire

Exercice Calculer le nombre de fichiers et de répertoire dans votre répertoire de travail Calculer le nombre de répertoiress et sous-répertoire dans votre répertoire de travail.

L’éditeur vi Consulter le manuel de la commande vi vi est un éditeur de texte basique. D’autres éditeurs de texte sont utilisés comme pico.

Gestion des utilisateurs Un utilisateur privilégier : root Appartient au groupe root Et les autres !

Identification Uid : user identificateur numéro d’identification de l’utilisateur Pour le root c’est 0 Gid : Group identificateur numéro d’identification du groupe

Gestion des utilisateurs La commande useradd Comportement par défaut de la commande Ajoute un utilisateur au système Lui créer un groupe du même nom Crée un répertoire dans /home/ avec ce nom Copie /etc/skel/* dans /home/nom-utilisateur

Exercice man useradd Explorer les différentes options Combiner plusieurs options

Attribution d’un mot de passe Avec la commande passwd nomutilisateur Demande de confirmation Vérification de la robustesse du mot de passe

Supprimer un utilisateur Avec la commande userdel Avec l’option –r on supprime aussi son répertoire

Le fichier /etc/passwd Extrait du fichier : root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: lp:x:4:7:lp:/var/spool/lpd: sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt

Le fichier /etc/passwd Les champs : Nom utilisateur Mot de passe : codé, ou x donc dans /etc/shadow, ou !! Interdit de connexion UID GID Libre : nom et prénom, adresse… Le répertoire de connexion Le shell

Le fichier /etc/shadow Contient les mots de passe cryptés Champ : Nom utilisateur Mot de passe Dernière date de modification Min nombre de jour avant le quel le pass peut être changé Max nombre de jour après lequel le pass doit être changé…

Le fichier /etc/group Contient la description des groupes des utilisateurs Organisé en champs : Le nom du groupe Mot de passe (non utilisé) Le numéro du groupe Champs vide Champs description Liste des membres

Manipulation des groupes La commande groupadd groupdel groupmod

Exercice Noter les droits des fichiers /etc/passwd /etc/shadow /etc/group

Exercice Créer « manuellement » un utilisateur Attention aux manipulations ! Démarche : Éditer passwd shadow group Créer /home/user Copier /etc/skel Changer le propriétaire et le groupe

Connexion et profil des utilisateurs À la connexion /etc/profile puis /home/user/.profile Sur Linux : Si /etc/profile Si /home/user/.bash_profile existe, il est exécuté Sinon si /home/user/.bash_login existe il est exécuté Sinon si /home/.profile existe il est exécuté Cas particulier : Mandrake .bash_profile appelle .bashrc qui appelle /etc/bashrc

Exercice Changer l’environnement de l’utilisateur en agissant sur ces fichiers

Les processus Définition : un processus est un programme dont l’exécution est en cours. Un programme existe d’abord sous forme de fichier exécutable Il est ensuite chargé en mémoire puis exécuté -> donc devient processus Un même programme peut être exécuté plusieurs fois (cas de /bin/bash) Time sharing : méthode de partage du temps processeur entre les processus en time slice (= 5ms)

États d’un processus Linux Running R Exécutable En exécution Création Fin et destruction Endormi Sleeping S Exécutable : dans la file de l’ordonnanceur En exécution : sur le processeur Endormi : attend un événement (clavier, communication, sémaphore) Zombi : un processus terminé, mais son père n’est pas informé

Un peu de code noyau volatile long state; #define TASK_RUNNING 0 #define TASK_INTERRUPTIBLE 1 #define TASK_UNINTERRUPTIBLE 2 #define TASK_ZOMBIE 4 #define TASK_STOPPED 8

Caractéristique d’un processus Le PID : Process Identifier, numéro identificateur du processus Ce numéro est attribué par le noyau de façon unique par processus Renvoie vers une table de processus gérée par le noyau

Linux : Gestion des Processus Au démarrage le processus init est créé init crée tous les autres processus qui sont ses fils La commande ps nous permet de voir les processus créés init …. syslogd crond

La commande ps Infos retournées par ps: temps CPU utilisé [jebali:~] ps PID TT TIME COMMAND 3899 p1 0:00.08 -zsh 4743 p1 0:00.14 emacs 4180 std 0:00.04 -zsh numéro de processus commande exécutée terminal associé

Autres informations avec ps ps –alx UID : numéro de l’utilisateur PID : numéro du processus PPID : numéro du processus père PRI : priorité du processus fixée par le système NI(CE) : facteur influençant la priorité STAT : état du processus TTY : le terminal auquel le processus est rattaché

Exercice Exécuter ps –alx Retrouver l’arbre généalogique de votre processus bash bash a-t-il des fils ? lesquels ?

Exercice Ecrire une commande qui calcule le nombre de processus de l’utilisateur root

Arbre des Processus Infos retournées par pstree (-a): init-+-ahc_dv_0 |-crond |-cupsd |-devfsd |-keventd |-khubd |-kinoded |-klogd |-ksoftirqd_CPU0 |-kswapd |-kupdated |-lockd |-mdrecoveryd |-6*[mingetty] |-10*[mysqld_safe---mysqld---mysqld---mysqld] |-8*[nfsd] |-ntpd |-portmap

Une vue dynamique de l’exécution des processus : top top : affiche en boucle les processus du système (fréquence 1s) On interagie avec top en appuyant sur une touche : h aide u nomutilisateur : que les processus de l’utilisateur …

Priorités Chaque processus a une priorité d’exécution Sous Linux les priorités vont de –20 à 19 Plus la valeur est grande plus la priorié est petite La commande nice affecte la priorité #>nice –5 find / -name *.c 

Avant plan et tâche de fond Avant plan : on tape la commande ou le nom du programme, on n’a pas la main sur le terminal, on attend que la commande fini Tâche de fond ou en arrière plan : on lance la commande ou le programme puis on a la main sur le terminal de suite Comment ? Avec le signe & à la fin de la commande Typiquement, les serveurs tournent en tâche de fond

Passage avant - arrière plan Suspendre le processus en avant plan Ctrl-z bg pour redémarrer le processus et arrière plan fg pour passer le processus de l’arrière plan à l’avant plan jobs connaître les processus en arrière plan

Les signaux Un signal est un événement logiciel envoyé à un processus Envoyé par le noyau, l’utilisateur, un autre programme kill –l liste tous les signaux, désignés par un nom auquel correspond un numéro

Les signaux Chaque processus peut recevoir des signanux Chaque signal a une signification particulière Pour envoyer un signal on utilise la commande kill Exemple kill –9 2345 Nom du signal Numéro Description SIGINT 2 touche Ctrl-C, termine le processus SIGKILL 9 arrêter tout programme car il ne peut être géré différemment que le comportement par défaut. L'arrêt du programme est brutal. SIGTERM 15 Arrête le processus, mais permet d’effectuer des opérations avant l’arrêt. SIGCHLD 17 Informe le père de la mort de son fils

La commande trap Permet de modifier la réaction d’un processus via-à-vis d’une commande À la réception d’un signale permet : De l’ignorer D’exécuter une commande particulière De restaurer le comportement par défaut

Exemples Ignorer les signaux 2 et 3 Exécuter une commande trap ‘’ SIGINT SIGQUIT Exécuter une commande trap ‘echo signal recu’ SIGINT Restaurer le comportement par défaut trap - SIGINT