MAI – L2/S3
RSY 2342 – Administration systèmes
Cheikh Sidy Mouhamed CISSE Enseignant Associé en Informatique à l’UVS
Chapitre1 : INTRODUCTION AUX OS
Objectifs spécifiques : A la suite de ce chapitre, l’étudiant doit être capable de:
1. Se familiariser à l'utilisation et la personnalisation d'un système Linux.
2. Installer un système Linux dans un environnement réel ou virtuel
3. Assurer l'administration d'une machine Linux (avoir une maitrise des commandes
de base)
Présentation générale
Entre le moment où vous appuyez sur le bouton d’allumage de votre ordinateur et celui
où vous pouvez enfin travailler et utiliser vos logiciels il se passe un certain temps durant
lequel des programmes sont chargés dans la mémoire de votre ordinateur.
Le but de ces programmes est de vous simplifier la vie en rendant les choses plus
simples et pas seulement pour l’utilisateur mais aussi pour l’informaticien.
Ces programmes forment un ensemble appelé le système d’exploitation.
Présentation générale
Un système d’exploitation est l’interface entre l’utilisateur et le matériel.
Ses fonctions principales sont:
Contrôle des ressources (allocation et gestion du CPU et de la mémoire)
Contrôle des processus
Contrôle des périphériques
…
Présentation générale
Système Linux: Historiques
1969 : Ken Thompson et Dennis Ritchie écrivent une première version du noyau d'un
système d'exploitation pour les laboratoires BELL.
Les concepteurs y appliquent l'ensemble de leurs convictions sur ce que doit être un OS,
et le nomme UNIX, (ils travaillent à l'époque sur un Système nommé MULTICS).
Le même Dennis Ritchie invente en 1973 un langage de programmation nommé le
langage C.
Système Linux: Historiques
Peu de temps après, Thompson et Ritchie réécrivent le noyau d'UNIX en C "rompant
avec une tradition qui voulait que le noyau d'un système d'exploitation soit écrit en
langage assembleur"
C'est l'entreprise ATT qui fournit les premières versions commerciales de cet OS.
Diverses entreprises s'intéressent à ce marché, et plusieurs versions apparaissent (Sun
et son SunOS, qui deviendra Solaris, IBM et son AIX, HP et son HPUX...)
L'université californienne de Berkeley travaille également sur Unix, et lui apporte des
atouts en réseau (les commandes r, par exemple, rlogin, rsh, rcp..)
Système Linux: Historiques
De son coté, ATT sort une version majeur, la version 5.
Les Unix d'aujourd'hui sont les héritiers des versions BSD (berkeley) ou ATT (System V),
soit un peu des deux.
Sun est de nos jours un acteur majeur d'Unix (voir notamment NFS, NIS...)
Évolution AT&T et BSD System V (SCO XENIX AIX Solaris) BSD (Réseau)
Système Linux: Historiques
En Octobre 1991 Linus Tovalds (jeune étudiant finlandais à l’université de Helsinki)
développe un clone de Kernel UNIX (Linux) inspiré de Minix et la diffuse sur la
Newsgroup comp.os.minix sous la version 0.2 (sous GPL)
Linux est un système d’exploitation de type Unix.
Il existe des dizaines de systèmes d’exploitation dans cette famille.
Unix est un système d’exploitation de la famille des systèmes multitâches et multi-
utilisateurs.
Système Linux: Historiques
«Au sens strict, Linux est le nom du noyau de système d'exploitation libre,
multitâche, multiplate-forme et multi-utilisateur de type UNIX créé par Linus
Torvalds, souvent désigné comme le noyau Linux.»
Le noyau (Kernel) qui est un élément central était absent sur le projet GNU (Gnu's Not
Unix).
Linux sera le noyau qui manque au système d’exploitation GNU.
Le noyau est un élément essentiel.
Il se trouve directement au-dessus du matériel;
Sources du kernel disponible à l’adresse (http://www.kernel.org)
Système Linux: Noyau
Il permet des interactions avec les périphériques d’E/S et l’unité de gestion de la
mémoire, et contrôle l’accès à l’UC de ces entités.
Le kernel sert donc d'interface au sens large entre le matériel (l'unité centrale et les
périphériques) et un environnement système qui comprend :
Un ou plusieurs interpréteurs de commandes (Shell)
Un grand nombre d'utilitaire
Système Linux: Noyau
Système Linux: Noyau
Le système d'exploitation actuellement connu est donc un assemblage des outils
GNU fonctionnant sur un noyau Linux.
On parle donc de GNU/Linux avec le slash, « / » pour « GNU sur Linux ».
Système Linux: Noyau
En savoir encore plus …
Un très bon site qui explique en détail le fonctionnement d'un système d'exploitation :
http://sos.enix.org
L’organisation et le fonctionnement de différents éléments du noyau :
http://www.ibm.com/developerworks/linux/library/l-linux-kernel/
http://www.ibm.com/developerworks/linux/library/l-proc/index.html
Une carte interactive :
http://www.makelinux.net/kernel_map/
Pour aller plus loin avec le noyau linux :
http://kernelnewbies.org/Documents
Démarrage et chargement du noyau
Le noyau appelle systématiquement au démarrage le processus init a se lancer sur un
système Linux.
Qui lance le noyau???
Gestionnaire de démarrage
Démarrage et chargement du noyau
Gestionnaire de démarrage
Un programme se trouvant sur le MBR (Master Boot Record)
Sa fonction est le chargement du noyau
Doit obligatoirement connaitre:
o L’emplacement du fichier noyau
o La partition qui sera montée sur /
o La racine du système de fichiers
Démarrage et chargement du noyau
GRUB (GRand Unified Boot loader)
Programme de démarrage qu’on trouve sur les distributions Linux
Généralement déployé en version 2: version 1 et 2
Lit sa configuration dans le fichier /boot/grub/menu.lst
Démarrage et chargement du noyau
GRUB (GRand Unified Boot loader) : Version 1
Lit sa configuration dans le fichier /boot/grub/menu.lst
Selon d’autres systèmes, la configuration principale peut se faire dans un fichier
/boot/grub/grub.conf
Format type d’une section de déclaration de noyau dans menu.lst
title titre
root partition_noyau
kernel /chemin/noyau/ ro root=partition_slash options
initrd /chemin/image_modules
Démarrage et chargement du noyau
Fichier /boot/grub/menu.lst
titre Si GRUB doit proposer le choix entre plusieurs chargements de
noyau, la section titre permet d’identifier le noyau qu’on va
changer.
partition_noyau La partition hébergement le noyau, au format (hdx, y) où x
représente le numéro de disque dur et y le numéro de la partition.
La numérotation commence par zéro
noyau Le fichier exécutable du noyau. Exprimé par rapport à la partition
désigné par le paramètre root.
partition_slash La partition qui sera montée sous « / », désigné au format Linux
traditionnel (dev/hda1), ou bien sous forme de label ou encore
d’UUID.
options Certaines options, séparés par des espaces modifiant le
comportement du noyau. Option courante: ro (read only)
image_modules Le fichier image qui permet de monter un ramdisk contenant tous
les modules du noyau à charger. Exprimé par rapport à la partition
désigné par le paramètre root.
Démarrage et chargement du noyau
Exemple de menu.lst sur ubuntu
+default 0
+timeout 10
+title Ubuntu 16.04.5 LTS, kernel 4.4.0-131-generic (recovery mode)
+root (hd0)
+kernel /boot/vmlinuz-4.4.0-131-generic root=LABEL=cloudimg-rootfs ro single
+initrd /boot/initrd.img-4.4.0-131-generic
Defaut indique le noyau à charger en l’absence d’action de l’utilisateur
Timeout indique au bout de combien de temps charger le noyau par défaut.
Démarrage et chargement du noyau
En cas de besoin, la commande rdev permet de vérifier quel est la partition montée sur
/.
Exemple:
#rdev
/dev/sda1 /
Démarrage et chargement du noyau
Configuration de GRUB 2
Fichier /boot/grub/grub.fcg générer automatiquement par la commande update-grub
La mise à jour se fait par l’exécution des commandes update-grub ou grub-
mkconfig.
les options modifiables par l’utilisateur (affichage du menu, délai de démarrage, etc. )
sont centralisées dans le fichier /etc/default/grub
Fonctionnement système
Multitâche : le système gère l’exécution simultanée de plusieurs programmes appelés
des processus.
Multiutilisateurs : le système permet l’existence de plusieurs utilisateurs différents sur
une même machine, connectés ou non (un utilisateur peut faire tourner un programme
sans être connecté, comme par exemple un serveur Internet)
Le système d’exploitation :Linux
En bas se trouve votre matériel, en haut les programmes que vous faites fonctionner sur
votre machine.
Entre les deux les divers composants du système assurent son bon fonctionnement :
Le système d’exploitation :Linux
Les appels systèmes sont utilisés par les programmes pour communiquer avec le
système d’exploitation Unix.
La gestion des processus s ’occupe de la commutation des tâches et de leur priorité.
Ce composant s’occupe donc du multitâche.
La gestion des entrées et des sorties fichiers s ’occupe aussi bien de la lecture et de
l’écriture des données sur vos disques durs mais aussi sur vos périphériques (carte son,
imprimante, etc.)
Le système d’exploitation :Linux
Certaines informations peuvent être placées dans une zone mémoire tampon
appelée cache. Plutôt que d’écrire des données directement sur le disque dur (ce qui
est lent), Unix va les écrire dans une zone mémoire puis ensuite les écrire sur le
disque après quelques secondes.
Les pilotes ont pour rôle de gérer au plus bas niveau le matériel ou les structures
logiques du matériel (par exemple les données d’une partition).
Quelques distributions
Une distribution Linux comprend le noyau, les pilotes, les bibliothèques, les utilitaires
d’installation et de post-installation, ainsi qu’un grand nombre de logiciel.
Parmi les distributions Linux, on peut citer:
Quelques distributions
Debian: Une distribution idéal pour les administrateurs système et réseau, les
entreprises, …
Ubuntu (mot du langage africain bantou signifiant « humanité aux autres » ou encore
« je suis ce que je suis grâce à ce que nous sommes tous »): un dérivé de
Debian dont le but est de fournir des logiciels plus récents et très fortement axés
sur la convivialité et l’ergonomie à l’aide du support du plus grand nombre. Cette
distribution est idéale pour les étudiants, cependant la tentation est très forte de revenir
au fonctionnement d’une distribution Debian, les deux étant compatibles.
Quelques distributions
Red Hat : Elle se concentre sur le monde de l’entreprise avec des distributions
commerciales appelées RHEL (Red Hat Enterprise Linux)
Fedora :une distribution idéale pour tous ceux qui, amateurs éclairés, souhaitent rentrer
un peu plus dans le détail.
Mandriva (ex Mandrake): une distribution dérivée et longtemps entièrement compatible
avec la distribution Red Hat.
Slackware: Elle est l’une des plus anciennes distribution. Elle était la distribution de
référence pour apprendre à utiliser Linux
openSUSE: La distribution est originellement basée sur la distribution Slackware
Quelques distributions
D’autre distributions sont aussi disponible dont: Gentoo, LFS, Auro Linux,
PCLinuxonline, Kubuntu, Centos
Encore à côté il y a les mini distributions qui tiennent sur un mini cd ou une clé USB et
c’est idéal pour dépanner un ordinateur
Quelques distributions
NB:
Payantes (RHEL),semi-payantes(Mandriva) ou gratuites(presque toutes)
Pour l'expert(Debian),le débutant (Kubuntu),le maniaque (LFS), le patient(Gentoo), le
nostalgique (Yggdrasil, Slackware)
Orientée bureautique (Ubuntu), appareil (Damn Small), serveur (Trustix, Debian) ou
généraliste (SuSE, Fedora)
Religieuses (Crux, Ubuntu CE, Ubuntu SE), païennes(les autres)
Plusde350 distributions sur le «marché»
Les LiveCD
Le LiveCD sert principalement a essayer le système Linux pour voir à quoi ça ressemble
ou pour vérifier s’il fonctionne correctement avec votre matériel.
Donc avant de l’installer sur le disque dur, on peut tester Linux.
Il est basé sur une distribution Debian
Les LiveCD
Pour utiliser un liveCD c’est très simple :
insérez le CD ou le DVD dans votre lecteur et redémarrez votre ordinateur
vérifiez dans la configuration de votre machine (le setup du BIOS, voire le
mode d’emploi de votre ordinateur) que votre lecteur CD, DVD ou USB est le
premier à démarrer.
Après quelques secondes (ou minutes parfois) de chargement, voici que le bureau
apparaît et tous les programmes les plus connus sont accessibles alors que
strictement rien n’est installé sur votre disque dur.
Le LiveCD le plus connu actuellement est Knoppix
Connexion et Déconnexion
Unix associe à chaque utilisateur
Un nom (une chaîne de caractères) appelé login
Un mot de passe
Un numéro d’utilisateur unique appelé UID (User Identifier)
Chaque utilisateur fait partie d’un groupe, identifié par un GID
Chaque objet du système (fichier ou processus) possède toujours un utilisateur
propriétaire et un groupe propriétaire.
Connexion et Déconnexion
La correspondance login UID est faite dans le fichier /etc/passwd
Une ligne de ce fichier est de la forme suivante:
login:passwd:UID:GID:nomComplet:répertoireDeTravail:Shell
passwd: signe masquant le mot de passe crypté (dans /etc/shadow)
Connexion et Déconnexion
Si l’environnement de travail est sur un terminal (passif), la commande de déconnexion
est :
exit ou logout
Dans le cas des stations de travail graphiques, cela dépend de l’interface sélectionnée.
Chaque interface dispose d’une boîte de dialogue permettant de terminer la session en
cours.
Le système de fichiers
Sous UNIX tout est fichier
Un fichier :Collection de données stockées sur disque et qui peut être manipulées
comme une seule unité par son nom
Un répertoire : Fichier qui contient les références d’autres fichiers ou répertoires
Arborescence :L’ensemble des fichiers et répertoires constituent de Linux
l’arborescence de Linux.
Racine (/) : Le répertoire père de tous les autres répertoires (Prononcer ’Root’)
Arborescence du système de fichier
notion de chemin
Les chemins permettent de définir un emplacement au sein du système de fichiers.
C’est la liste des répertoires et sous répertoires empruntés pour accéder à un endroit
donné de l’arborescence jusqu’à la position souhaitée (répertoire, fichier).
Un nom de fichier est ainsi généralement complété par son chemin d’accès.
notion de chemin
C’est ce qui fait que le fichier toto du répertoire rep1 est différent du fichier toto du
répertoire rep2.
Le FS d’Unix étant hiérarchique, il décrit une arborescence.
notion de chemin
On distingue des types de chemins d’accès aux fichiers parmi lesquels:
Les chemins d’accès absolus: Pour tout fichier présent dans le système, il existe un
chemin de la racine (/) et aboutissant à ce fichier. La liste des nœuds rencontrés
identifie sans aucune ambiguïté le fichier. Le chemin ainsi parcouru s’appelle chemin
absolu.
Commencent obligatoirement par /.
/home/toto/Docs/Backup/fichier.pdf
notion de chemin
Un chemin absolu ou complet :
démarre de la racine, donc commence par un /,
décrit tous les répertoires à traverser pour accéder à l’endroit voulu,
ne contient pas de . ni de ..
notion de chemin
Les chemins d’accès relatifs: La référence relative d’un fichier est la liste des nœuds
rencontrés pour aboutir à ce fichier à partir de l’endroit où on se trouve (working directory
).
Ne commencent jamais par /
Il faut souvent utiliser deux entrées particulières de répertoires :
Le point . représente le répertoire courant, actif. Il est généralement implicite.
Les doubles points .. représentent le répertoire de niveau inférieur.
les inodes
inode (index node, information node, i-nœud: nœud d’index)
C’est une structure de données contenant les informations décrivant et représentant
un fichier.
Ces informations sont appelées des attributs
Chaque fichier dispose d’un numéro d’inode (inumber)
Un fichier ne peut avoir qu’un seul inode
Un inode est unique au sein d’un seul système de fichiers
Chaque système de fichiers dispose d’une table d’inodes indépendante
Structure d’une commande
Une commande est constituée d’un nom suivi d’une liste d’(éventuelles) options et
d’une liste d’(éventuels) arguments.
Le séparateur entre chaque mot d’une commande peut être des espaces et tabulations.
nomCommande options paramètre1 ... paramètreN
Les processus
Un processus est un programme en cours d’exécution
Tout processus est identifié par un numéro unique: le PID.
La commande ps (process status ) permet de lister les processus actifs.
Les paramètres les plus utilisés sont:
-e : tous les processus.
-f : affichage détaillé.
Voir l’aide man pour plus de détaille
Exemple: Exécuter la commande $ps –ef et interpréter le résultat obtenu.
Les processus
Arrêter un processus:
commande kill
La syntaxe générale est : kill numéro PID
Exemple: kill -9 10993
Un utilisateur ne peut arrêter que les processus qui lui appartiennent.
Seul l’administrateur système a le droit d’arrêter un processus ne lui appartenant pas.
Le processus lancé au login est le père de tous les processus lancés par la suite par
l’utilisateur, et il ouvre trois fichiers:
L’entrée standard, la sortie standard et la sortie erreur standard.