CHAPITRE 1 : SYSTEMES D`EXPLOITATION ET UTILISATEURS

publicité
CHAPITRE 1 : SYSTEMES D'EXPLOITATION ET UTILISATEURS
1. Fonctions d'un système d'exploitation (SE)
Le SE fournit une couche logicielle dont la tâche est de permettre l'interaction entre différents
composants matériels tels le processeur, le disque dur ...
Utilisateur
Périphériques
Système
d'exploitation
Réseau
Processeur
Mémoire
Il a diverses fonctions
•
Gestion de processus (les programmes) et de la mémoire
•
Gestion des utilisateurs et sécurité
•
Organisation des fichiers (les données)
•
Gestion des entrées/sorties (les périphériques)
•
Partage des ressources
•
Gestion des communications
•
Interface utilisateur et langage de commande
•
Fournir une interface logicielle pour la programmation (fonctions systèmes)
Question : Citer des périphériques d'entrée, de sortie, et d'entrée sortie (E/S).
2. Grands types de systèmes d'exploitation
Actuellement, les SE sont tous multi-tâches et multi-utilisateurs. Ce n'était pas toujours le cas, il
s'agit d'une évolution majeure des SE. Une tâche est un processus, c'est-à-dire une instance de
programme en cours d'exécution.
Remarque : il faut bien différencier instance et programme, comme dans les langages orientés objet,
une classe et une instance de classe diffèrent.
Un système multi-tâches gère les différentes tâches.
•
Il n'attend pas la fin d'une tâche pour prendre en charge une nouvelle (non linéaire).
•
Le processeur est partagé entre les différentes tâches créées : chacune son tour, pendant un
laps de temps déterminé. Cela nécessite des stratégies parfois complexes, dites
d'ordonnancement des tâches.
•
Un utilisateur peut demander l'exécution de plusieurs tâches.
Le système gère tous les utilisateurs :
•
Identification
•
Authentification
•
Sécurité et droits
•
Partage des ressources
•
Chaque utilisateur peut demander l'exécution de plusieurs tâches
3. Caractéristiques des systèmes Unix
Les systèmes Unix, comme celui que l'on utilisera en TP, ont les caractéristiques suivantes :
•
Multi-tâches et multi-utilisateurs
•
Ouvert, indépendant du matériel
•
Ecrit en langage C (maintenance et portabilité)
•
Populaire car universitaire et professionnel (serveur web, serveur courriels, ...)
•
Simple (à l'origine en tout cas ...)
•
Nombreux utilitaires et logiciels, bien souvent gratuit et libre (le code source est disponible)
L'architecture d'un système Unix est composée comme suit :
•
Noyau (kernel) : Il administre les ressources comme le processeur (ordonnancement ou
scheduling) et gère la mémoire centrale (pagination ou swaping). Il gère les fichiers (système
de gestion de fichiers ou SGBD), crée les processus, gère les échanges d'informations (E/S),
assure la sécurité des objets, leur contrôle et leur compatibilité.
•
Appels systèmes : Ces primitives fournissent une interface logicielle pour écrire plus
facilement des programmes qui utilisent les composants du système.
•
Interpréteur de commandes (Shell) : Le Shell ne fait pas parti du SE. C'est un programme en
interaction avec l'utilisateur qui interprète les commandes et démarre les processus de
l'utilisateur. Il intègre des commandes internes. Il existe de nombreuses versions (sh, csh,
ksh, bash, zsh ...)
•
Utilitaires et outils : gestionnaire de fichiers (nautilus, konqueror), éditeurs (vi, nedit, gedit,
...), compilateurs (java, c, c++,...)
•
Communications via des services réseau : transfert de fichiers (ftp), connexion sur
ordinateurs distants (telnet, rlogin, ...), communication entre utilisateurs (mail, write, talk),
accès transparent à des fichiers distants (NFS) et services internet (news, www).
•
Interface graphique (X11, GTK+) et environnements de bureau (Gnome, KDE)
Question : identifier les acronymes inconnu et cherchez leur sens.
Question : en quel langage de programmation sont les primitives UNIX ?
Question : Lister quelques primitives. Conclure de leur intérêt pour le programmeur.
4. Utilisateurs
Les utilisateurs se répartissent dans des groupes. Ils possèdent un mot de passe propre à leur
compte, possèdent une session de travail personnelle, un espace fichiers personnel ainsi que leur
propre Shell.
Le mot de passe
•
Il s'agit de la "clé" d'accès au compte (fichiers, courriel)
•
Il doit être fiable : pas de prénom, nom, mot du dictionnaire, mais plutôt avec des chiffres,
des majuscules, des minuscules et des caractères spéciaux.
•
Il faut impérativement le changer régulièrement.
La session de travail
•
Commencer une session nécessite une identification : donner son login et mot de passe
•
Le SE authentifie l'utilisateur : il détermine si l'utilisateur existe, que son mot de passe est
correct, mais aussi quel est son espace de fichiers, quels sont ses droits, ...
•
Question : proposer plusieurs façons de quitter une session
Le répertoire personnel
Le fichier utilisateur
•
Tout le monde peut le consulter
•
Il se trouve ici : /etc/passwd
•
Question : afficher ce fichier et comprendre son organisation.
Le Shell
•
Syntaxe d'une commande [-options] [arguments]
•
les options sont précédées de -
•
les arguments sont séparés par des espaces
•
Question : voici deux commandes. Identifier le nom du programme, ses options et ses
arguments.
ls
ou encore
ls -al /home
•
Attention, unix est "peu bavard" : il n'affiche que les réponses demandées ou les messages
d'erreurs, mais rien d'autre.
•
Question : lister toutes les commandes que vous connaissez.
•
Question : trouver une commande qui n'affiche rien mais qui effectue bien quelque chose.
Téléchargement