Utilisation du Système Unix

Transcription

Utilisation du Système Unix
Utilisation du Système Unix
Olivier Dalle
Olivier Dalle
Utilisation du Système Unix
1
Programme de la Formation
1.Introduction
Introduction à Unix
2.Initiation
Initiation à l'utilisation d'Unix
3.Xwindow
Xwindow : l'environnement graphique
4.Zsh
Zsh : utilisation avancée en mode texte
5.Filtres
Filtres et expressions régulières
6.Elements
Elements d'administration
Olivier Dalle
Utilisation du Système Unix
2
Chapitre 1
Introduction à Unix
Olivier Dalle
Utilisation du Système Unix
3
Chapitre 1 – Introduction à Unix
Historique
69 : Naissance aux Bell Labs (Thompson & Ritchie)
Successeur (modeste) de Multics
72: Réécriture en C (Ritchie)
Langage C créé pour l'occasion
90% du code noyau en C
75 : diffusion des sources de la V6 aux universités
Large diffusion
Naissance de la branche Berkeley BSD
Branche ATT, conduit à Unix System V R4 (1990)
Branche BSD, conduit à BSD 4.4 (1995)
~92 : noyau Linux 0.11
Nombreuses standardisations successives
POSIX (1003.1 et 1003.2), XPG, Unix95, Unix 98
Olivier Dalle
Utilisation du Système Unix
4
Chapitre 1 – Introduction à Unix
Les Raisons du Succès
Système écrit à l'aide d'un langage de haut niveau
Un peu plus lent, mais portage facile
Interface utilisateur simple
Appel systèmes réutilisables pour l'écriture de
commandes
Possibilité d'ajouter ou d'améliorer des commandes
Ex: Projet GNU
Le système de gestion de fichiers (SGF) est hiérarchique
Système multi-utilisateurs, multi-tâches, multi-...
Entrées/sorties généralisées
Contrôle des périphériques par de "simples" fichiers
Disponibilité de versions gratuites
Linux, variantes BSD, ...
Olivier Dalle
Utilisation du Système Unix
5
Chapitre 1 – Introduction à Unix
Système d'Exploitation = Ensemble de Programmes
Le noyau
Chargement lors du démarrage (boot
(boot))
Gros programme (Linux = 4 millions de lignes de code)
Gestion des évènements Matériels
disques, souris, clavier, ...
Gestion des ressources
Ex: Partage du CPU (time sharing)
Gestion Structures de Données
Systèmes de Fichiers, Identité des utilisateurs, ...
Fournit des « services » élémentaires : Appels Systèmes
«Ecrire fichier», «Obtenir la date», «Envoyer message», ...
Programmes de services supplémentaires
Bannière de login, Partage de fichiers distants, ...
Utilitaires de base ...
Olivier Dalle
Utilisation du Système Unix
6
Chapitre 1 – Introduction à Unix
Propriétés Remarquables des Systèmes d'Exploitation
Mono- ou Multi-tâches
Mono = exécution de tâches multiples en séquence
Batch = traitement par lots
Multi = exécution simultanée de plusieurs programmes
Time Sharing : partage du temps CPU entre les
programmes
Mono- ou Multi-utilisateurs
Mono = 1 seul utilisateur
Multi- = plusieurs utilisateurs en même temps
Chaque nouvel utilisateur lance une session indépendante
Interaction au travers d'un terminal (ou console)
Physiquement connecté : machine dite « multi-poste »
Connexion distante : par le réseau
Consoles virtuelles (linux) : plusieurs sessions sur un même terminal
Olivier Dalle
Utilisation du Système Unix
7
Chapitre 1 – Introduction à Unix
Exemples de Systèmes
MSDOS : mono-tâche,
mono-tâche, mono-utilisateur
mono-utilisateur
Windows95/98 : multi-tâches,
multi-tâches, mono-utilisateur
mono-utilisateur
multi-tâches « coopératif » = peu interactif
Windows NT/XP : multi-tâches,
multi-tâches, multi-utilisateurs
multi-utilisateurs
Une seule session à la fois dans la version de base
Sessions multiples possibles sur versions serveur
Depuis un autre SE Windows « client »
Grâce à certains prog spécialisés (Citrix, Rdesktop, ...)
Unix (linux) : multi-tâches,
multi-tâches, multi-utilisateurs,
multi-utilisateurs, multimultisessions, multi-postes
multi-postes ...
Olivier Dalle
Utilisation du Système Unix
8
Chapitre 1 – Introduction à Unix
Architecture Fonctionnelle : Principe Directeur
Tout programme est formé (qq soit langage) :
D'instructions internes (au langage)
D'appel à des primitives externes
Généralement fournies par une bibliothèque
Au travers d'une API (Application Programming Interface)
Schéma récursif
Une bibliothèque peut s'appuyer sur les services d'autres
bibliothèques ...
Système d'exploitation
Fournit les primitives externes « ultimes »
Le plus bas niveau accessible par un programme
Olivier Dalle
Utilisation du Système Unix
9
Chapitre 1 – Introduction à Unix
Illustration Concrète : le Cas Simple(iste) MSDOS
S'appuie sur une couche logicielle intermédiaire : le BIOS
Fournie par le constructeur
Offre des services de bas niveau élémentaires
Tests (POST), « Trouver boot sector », « lire secteur disque
n°XX et le stocker en mémoire à l'adresse mémoire YY », ...
Utilisateur
Matériel
BIOS
DOS
DOS/BIOS
Matériel
Olivier Dalle
Utilisation du Système Unix
10
Chapitre 1 – Introduction à Unix
Schéma Global d'Organisation d'Unix
Commandes Unix
standard(isées)
(norme POSIX)
Librairie C (libc) :
version standard(isée)
des appels systèmes
(norme POSIX)
libm ncurses
stdio
gnome
X11
date
sh
twm
gettimeofday()
xterm grep
NOYAU
kill
vi
matériel,
périphériques
kill()
sed
nedit
emacs
read()
passwd
javac
Olivier Dalle
wait()
du
open()
write()
mv
zsh
bash
ls
rm
gcc
Utilisation du Système Unix
ksh
tcsh
cp
Contributions
(commandes, libs, ...)
11
Chapitre 1 – Introduction à Unix
Noyau Unix Traditionnel (en voie de disparition)
Noyau
système de fichiers
(ext3)
aiguillage
du pilote bloc
pilote
pilote
disque
bande
Olivier Dalle
mémoire virtuelle
chargeur
(a.out)
aiguillage
du pilote caractère
pilote
pilote
pilote
impression
réseau
terminal
Utilisation du Système Unix
12
Chapitre 1 – Introduction à Unix
Noyau Unix Moderne
a.out
mapping
fichiers
coff
elf
aiguillage
execs
NFS
ISO9660
ext3
mapping
périph.
interface
vnode/vfs
mémoire
virtuelle
UFS
VFAT
services
communs
pilote
disque
pilote
bande
tps partagé
aiguill.
pilotes
blocks
céduleur
tps réel
STREAMS
pilote
réseau
Olivier Dalle
processus système
pilote
terminaux
Utilisation du Système Unix
13
Chapitre 1 – Introduction à Unix
Obtenir un service du Système : l'Appel Système
Principe fondamental : créer des « points de passage »
obligatoires
Le SE est le seul intermédiaire possible pour obtenir
certains services
Accès fichiers, lancement programmes, manipulation de
partitions, allocation mémoire, transmission de messages,...
Appel Système = (seul) moyen de communiquer avec le
SE (pour un programme)
l'AS ressemble à un appel de fonction ...
... Mais son exécution est strictement protégée
Protection robuste assurée au niveau matériel (du CPU)
Exécution déclenchée par interruption logicielle
Olivier Dalle
Utilisation du Système Unix
14
Chapitre 1 – Introduction à Unix
Mécanismes de Protection de l'Exécutif Système
Combinaison de deux mécanismes :
Mode d'exécution privilégié
CPU bascule (du mode utilisateur) en mode noyau
Instructions supplémentaires (ex: masquer interruptions)
Registres supplémentaires (ex: gestion mémoire)
Bascule strictement contrôlée
Les programmes sont libres de basculer quand ils le veulent
La bascule entraîne l'exécution d'un (sous-)programme préexistant
Impossible de modifier les instructions de ce (sous-)programme
depuis le mode utilisateur
Espace d'adressage système
Zone mémoire réservée
Inacessible en mode utilisateur
Contient le code et les données de l'exécutif système
Olivier Dalle
Utilisation du Système Unix
15
Chapitre 1 – Introduction à Unix
Illustration : Passage en Mode Noyau
processus un_programme.c
main()
{
printf("hello, world");
i=i+1
mode d'exécution
}
normal
bibliothèque (libc)
mode d'exécution
privilégié
sys_open()
sys_read()
sys_write()
…
code "libre" de
l'utilisateur
bascule
code "imposé"
du noyau
Olivier Dalle
Utilisation du Système Unix
16
Chapitre 1 – Introduction à Unix
La Notion de Processus
Processus = instance d'un programme en cours
d'exécution
Dans un système multi-tâche
Les processus sont en compétition pour l'obtention des
ressources
En particulier le processeur
Mais aussi : disques, réseau, mémoire, imprimante, ...
Partage du CPU (time-sharing
(time-sharing))
Donne l'illusion d'exécution parallèle
pseudo-parallélisme sur mono-processeur
pseudo et vrai parallélisme sur multi-processeurs
Olivier Dalle
Utilisation du Système Unix
17
Chapitre 1 – Introduction à Unix
Unix : un système basé des idées simples
A l'origine seulement deux abstractions
Les processus : entités actives du système
Les fichiers : entités « passives »
Pour stocker données et programmes
Pour communiquer avec les pilotes et périphériques
Une souris est un fichier
Un disque dur est un fichier
Les partitions d'un disque sont des fichiers
Le lecteur de cdrom est un fichier ...
Pour faire communiquer des processus entre eux (tubes)
Avec le temps : apparition de nouvelles abstractions
sockets (BSD) : connexions réseaux
STREAMS (SysV) : généralisation des flux
IPC (SysV) : sémaphores, mémoire partagée, file de msg
Olivier Dalle
Utilisation du Système Unix
18