2.1 Unix, un système d'exploitation
Système d'exploitation
Gestionnaire de ressources, ou
Machine abstraite
( Cf. cours de maîtrise)
Système d'exploitation temps partagé
Système d'exploitation multi-utilisateur
Plusieurs utilisateurs simultanés
Sur une même machine
Impression (fausse) qu'ils ont une machine chacun
Système d'exploitation multi-tâche
Plusieurs exécutions de programmes
En parallèle ou pseudo-parallèle
Unix est interactif
Premières versions développées en 1969
Ken Thompson : Unix
Dennis Ritchie : C
Écrit dans un langage évolué
95 % en C
5 % assembleur
Partie dépendante du matériel
Ex : manipulation des registres du processeur
Portage Unix = compilateur C + courage (pour les 5 %)
Initialement, sources domaine public
Langage évolué
Þ
Maintenance plus efficace
Interface d'accès au système naturelle
Appel système
º
appel de fonctions
Unix est un système portable
Processeurs : Intel 80x86, Motorola 680x0, Sparc, MIPS, Alpha...
Constructeurs : IBM AIX, DEC Ultrix, DEC OSF, HP HPux, Sun SunOs, Sun Solaris...
Système portable
Þ
Système ouvert
¹
système propriétaire
Une gamme de machine/un constructeur
IBM : VM, MVS, OS400
BULL : GCOS
CDC : NOSVE
DEC : VMS
HP : MPE
Large variété de matériels
Du PC aux super-calculateurs
Initialement : mini-ordinateur PDP DEC
Idée : développer des concepts disponibles sur gros systèmes (Multics sur Honneywell)
Évolution : toute la gamme de machines
PC : Xenix, Linux
Cray : Unicos
Machines parallèles : CM-5
...
Percée : stations de travail
Apollo, Sun...
Station de travail ?
Processeur puissant
Écran graphique : multifenêtrage
Interface réseau (local) : Ethernet
Système d'exploitation : Unix
Environnement graphique : X-Windows
Conçu par des développeurs pour des développeurs
Outils disponibles de base
Éditeurs de texte
ed
,
vi
Compilateur C
Outils de génie logiciel
make
sccs
Debugger, mesure de performances de programmes
Générateurs d'analyseurs lexicaux et syntaxiques
Interpréteurs de commandes puissants et programmables
Arborescence du système de fichiers
Repris par de nombreux systèmes d'exploitation actuels
Fichiers spéciaux pour les périphériques
Exemple : imprimante
Entrées/sorties indépendantes des périphériques
Introduction de nombreux concepts
Simplicité de ces concepts
Repris par d'autres systèmes
Structure en couches d'Unix
User
(programmes utilisateurs)
System program
(compilateurs, shells...)
Kernel
(file, process, information)
Hardware
(cpu, register, disk, terminal)