Systèmes
d'exploitation
Introduction
L’equipe
• Cours:
– Alexandru Radovici (ACS)
• TP:
– Iuliana Marin (FILS)
• Devoir:
– Răzvan Șerban (ACS)
– Ioana Culic (ACS)
• Ressources
– Răzvan Deaconescu, Mihai Carabaș et l’équipe USO et SO
de ACS
2
Les courses de systèmes
SdE 1
SdE 2
SO2 (a ACS)
Espace noyau
Espace utilisateur
API de SE
Utilisation de SE
3
Bibliographie
Andrew Tanenbaum, Modern Operating Systems,
2nd Edition
A. Silberschatz, P. Baer Galvin, G. Gagne, Operating
Systems Concepts, 9th Edition
Michael Kerrisk, The Linux Programming Interface,
Steve Summit, C Programming Notes, http://c-
faq.com/~scs/cclass/notes/
4
Ressources pour le cours SdE
• Site web: http://ocw.cs.pub.ro/courses/sde/
• GitHub issues: https://github.com/upb-
fils/sde/issues
• Diapositives de cours
• Catalogue et calendrier Google
• Les machines virtuelles
• vmchecker
• La documentation
5
Contenu
Cours
• 14 courses
• diapositives
• bibliographie
– Très important de lire
TP
• 12 TP
• Linux
• Programmation en Python
• C’est important de
collabores avec votre
collègues
6
POSIX API Linux
Devoirs
Contenu
• Linux
• Allocation de mémoire
• Python-busybox
• Mini-shell
• Serveur web
Développent
• Linux ou Windows
Subsystem for Linux
• 8-20 heures pur une devoir
– Test des devoirs avec
vmchecker
• Questions sur Github Issues
Les devoirs sont individuelles
7
Examen
• Semestre
– 5 devoirs (8p)
– activité de TP (2p)
• Session d’examen
– épreuve écrite (5p)
• Note
– > 5 passer
8
Hall of Fame
Student Student
Student Student Student Student
Student Student Student Student
Student Student
9
Informatique
10
Informatique
• Matériel
– AM, AO, SM
– Systèmes embarques, Robotique
• Systèmes d’exploitation (ABI)
– SdE 1, SdE 2, RIL
• Compilateurs (toolchain)
– ALF
• Applications
– LP, POO, SDA, IWP, MN, SGI, IHO, Infographie, MTDL, DAPM, GL,
ATI
• Systèmes distribues
– Web Sémantique
11
Connexions avec autres courses
Connaissances requises
• SdE 1
• LP
• SDA
• AM
Connaissances utiles pour
• ALF
• RIL
• Infographie
• SGI
• Systèmes embarques
• Robotique
• DAPM
12
Outils logiciels recommandés
13
Visual Studio Code VirtualBox
Ubuntu LinuxWindows 10
Windows Subsystem for Linux
Andrew S. Tanenbaum
• Américain
• Physicien
• Livre de SdE
• Minix OS
– Mini-OS
– Intel Management
Engine
14
Contenu
• Informatique
• Quelques mots sur SdE
• Introduction en Systèmes
d'exploitation
• Sujets
15
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 1
• Operating Systems Concepts
– Chapitre 1
16
Exemples de SEusagegénéral
Windows
Mac OS
Linux
FreeBSD,
OpenBSD
 Orbis OS
Dédiés
 IOS
(Cisco)
 JUNOS
(Juniper)
 FortiOS
(Fortinet)
Mobile
 iOS
 Android
17
Windows
• Microsoft
• le plus utilisé pour les
systèmes de bureau
• La version plus récente:
Windows 10 (pour PC,
tablettes et mobiles)
• Windows Server 2012
R2 (pour serveurs)
18
macOS
• Apple
• Seulement pour les
systèmes Mac (Mac Pro,
Mac Mini, MacBook)
• Approximative 9-10%
pour Desktop
• La version plus récente:
macOS 10.14 “Mojave”
19
Linux
• Linus Torvalds et Greg
Kroah-Hartman (personnes
principales)
• open source
• distributions de Linux
• approximative 1-2% pour
Desktop
• Utilisé pour les serveurs
• Utilisé pour dispositifs
intégrée et mobiles
(Android et autres)
20
Autres SE
21
Processus de démarrage
Machine Boot
•x86: BIOS / UEFI
•ARM: Addressee de start
Bootloader
•x86: Lilo, GRUB2, Syslinux, NLDR, Windows Boot Manager
•ARM: U-Boot, Barebox
System d'exploitation
•Windows
•Linux
Interface Utilisateur (UI/GUI)
•Windows: Windows Explorer - explorer.exe
•Linux: XFCE, GNOME, KDE, ...
22
Qu'est-ce qu’un SE?
OSCE, fig. 1.1, pg. 4 23
Qu'est-ce qu’un SE?
• un programme
• vue de haut en bas: extension de la machine
physique
• vue de bas en haut: gestionnaire des
ressources physiques
• écrit en C
• transparent pour l'utilisateur (il marche)
24
La structure de SE
• Noyau (kernel)
– gérer les ressources
physiques
– fournit une interface
standard pour les
applications
• Programmes de base
– fournit une interaction
utilisateur avec le noyau et
le matériel
– exemples: creation de
fichiers, access des donnes
sur la resaeu
25
Système d'ordinateur
• Système physique (matériel) + système
d’exploitation et applications
• Les programmes pour écrier et compiler des
programmes (toolchain)
• Interconnexion avec autres systèmes
• Ordinateurs personales, serveurs et systèmes
embarques IoT (Internet of Things)
26
MATERIEL
27
Materiel
• Processeur (CPU)
– exécute le code (instructions)
• Mémoire du travail (RAM)
– mémorise les données et le code pour les programmes
• Bus des données
– fait la connexion entre le CPU, le RAM et les périphériques E/S
• Périphériques (entrée/sorties - E/S, input/output - I/O)
– communication avec l’extérieur: utilisateur, autres systèmes, etc.
• Espace de stockage (disque, flash, ROM, NVRAM)
– programmes (à partir de laquelle les processus seront faits)
– données pour les processus
– information pour les utilisateurs (fichiers)
28
Processeur et mémoire
OSCE, fig. 1.7, pg. 16
29
Magistrale
https://en.wikipedia.org/wiki/Bus_%28computing%29
30
Example
31
Mémoire
OSCE, fig. 1.11, pg. 28
32
SYSTEME D’EXPLOITATION
33
Shell
• Interface entre l’utlisateur et le systeme
d’exploitation
• CLI ou GUI
• PowerShell / Bash vs. Windows Explorer /
GNOME / KDE
• un processus qui permet de démarrer d'autres
processus
– “shell spawns a process”
34
Les processus
• sont créés à partir d'un programme exécutable
• un programme en cours d'exécution
– l'idee de runtime
• données et code en mémoire, execute par le CPU
• a des ressources associées: espace d'adressage
mémoire, fichiers ouverts, sockets
• SE offre protection et communication entre les
processus
• certains systèmes offrent des hiérarchies de
processus
35
La mémoire d’un processus
https://en.wikipedia.org/wiki/Virtual_address_space
36
Memorie virtuelle
• un processus voir un espace mémoire virtuel (l'espace
mémoire n'existe pas réellement)
– Le processus pense que toute la mémoire lui
appartient
• La mémoire matérielle est différente de la mémoire de
processus
• Les processus utilisent des adresses de mémoire virtuelle
• La mémoire matérielle utilise des adresses de
mémoire physique
• Le SE associe la mémoire physique à la mémoire virtuelle
37
Fils d’execution
• un processus peut avoir plusieurs des fils
d’exécution
• les fils d’exécution partagent l'espace
d'adressage de la mémoire virtuelle
• autoriser un processus à effectuer plusieurs
tâches avec les mêmes données
• permet l'utilisation de matériel
multiprocesseur
38
Accès simultané et synchronisation
• les threads et les processus peuvent entrer en
concurrence pour accéder aux mêmes
ressources (données dans la mémoire)
• les accès simultanés peuvent entraîner une
corruption des données ou des blocages
• la synchronisation permet un accès
réglementé et conséquent aux ressources
39
Modes d'exécution
• Le processeur a deux modes d'exécution
• Mode superviseur
– Actions privilégiées
– C'est le mode utilisé par le SE pour s'exécuter
• Mode utilisateur
– L'accès direct au matériel n'est pas autorisé
– L'espace adresse mémoire ne peut pas être modifié
– C'est le mode utilisé pour les applications
• Le noyau este le intermédiaire pour:
– l'accès des processus au matériel
– l'accès des processus aux ressources
• Appel système
– la transition du mode utilisateur au mode noyau
40
Appel système
OSCE, fig. 1.10, pg. 22
41
Appels système
OSCE, fig. 2.6, pg. 56 42
Fichiers
• Unité de stockage (du point de vue du
programme)
• Ouvert et utilisé par les processus
• Fichier sur le disque (statique) et fichier ouvert
(dynamique, dans un processus)
– Fichier sur le disque: nom, dimension, droits,
horodatage
• Fichier ouvert: poignée de fichier, curseur de
fichier, droits d’ouverture, accès au fichier
43
STRUCTURE DE SE
44
La pile de systèmes informatiques
Noyau (kernel)
Programmes de base, bibliothèques de bas niveau
Les bibliothèques
Applications
Mode superviseur
Mode utilisateur
45
Noyau (kernel)
• Est le Systeme d’Exploitation
– Windows (WindowsNT) ntoskrnl.exe
– GNU/Linux et Android Linux Kernel
– Mac OS X et iOS: XNU
• chargé au démarrage, il lance le premier(s)
programme
• fournit des appels système
• gère les ressources matérielles
• sécurise l'intégrité du système
46
La structure de SE (monolithique)
OSCE, fig. 2.13, pg. 69 47
SE monolithique vs. SE micronoyau
https://en.wikipedia.org/wiki/Microkernel
48
SE monolithique vs. SE micronoyau
Monolitique
• Efficient
• Communication par appel
de fonction entre les
components
• Moins flexible
• Grand TCB (Trusted
Computing Base) - design
moins sécurisé
Micronoyau
• est plus lent
(communication entre
services)
• plus modulaire
• Réduite TCB (design plus
sécurise)
49
Machines virtuelles
OSCE, fig. 2.17, pg. 74 50
Windows
51
Linux
52
Minix 3
53
FreeRTOS
54
TockOS
55
Ressources pour le cours SdE
• Site web: http://ocw.cs.pub.ro/courses/sde/
• GitHub issues: https://github.com/upb-
fils/sde/issues
• Diapositives de cours
• Catalogue et calendrier Google
• Les machines virtuelles
• vmchecker
• La documentation
56
Mot clés
• SE
• Noyau (kernel)
• Mode superviseur
• Mode utilisateur
• CPU
• Mémoire
• Bus de données
• Processus
• Mémoire virtuelle
• Espace utilisateur
• Espace noyau
• Appel de système
• Noyau monolithique
• Micronoyau
• Programmes de base
• Interface Utilisateur
57
Questions
58

SdE 1 - Introduction

  • 1.
  • 2.
    L’equipe • Cours: – AlexandruRadovici (ACS) • TP: – Iuliana Marin (FILS) • Devoir: – Răzvan Șerban (ACS) – Ioana Culic (ACS) • Ressources – Răzvan Deaconescu, Mihai Carabaș et l’équipe USO et SO de ACS 2
  • 3.
    Les courses desystèmes SdE 1 SdE 2 SO2 (a ACS) Espace noyau Espace utilisateur API de SE Utilisation de SE 3
  • 4.
    Bibliographie Andrew Tanenbaum, ModernOperating Systems, 2nd Edition A. Silberschatz, P. Baer Galvin, G. Gagne, Operating Systems Concepts, 9th Edition Michael Kerrisk, The Linux Programming Interface, Steve Summit, C Programming Notes, http://c- faq.com/~scs/cclass/notes/ 4
  • 5.
    Ressources pour lecours SdE • Site web: http://ocw.cs.pub.ro/courses/sde/ • GitHub issues: https://github.com/upb- fils/sde/issues • Diapositives de cours • Catalogue et calendrier Google • Les machines virtuelles • vmchecker • La documentation 5
  • 6.
    Contenu Cours • 14 courses •diapositives • bibliographie – Très important de lire TP • 12 TP • Linux • Programmation en Python • C’est important de collabores avec votre collègues 6 POSIX API Linux
  • 7.
    Devoirs Contenu • Linux • Allocationde mémoire • Python-busybox • Mini-shell • Serveur web Développent • Linux ou Windows Subsystem for Linux • 8-20 heures pur une devoir – Test des devoirs avec vmchecker • Questions sur Github Issues Les devoirs sont individuelles 7
  • 8.
    Examen • Semestre – 5devoirs (8p) – activité de TP (2p) • Session d’examen – épreuve écrite (5p) • Note – > 5 passer 8
  • 9.
    Hall of Fame StudentStudent Student Student Student Student Student Student Student Student Student Student 9
  • 10.
  • 11.
    Informatique • Matériel – AM,AO, SM – Systèmes embarques, Robotique • Systèmes d’exploitation (ABI) – SdE 1, SdE 2, RIL • Compilateurs (toolchain) – ALF • Applications – LP, POO, SDA, IWP, MN, SGI, IHO, Infographie, MTDL, DAPM, GL, ATI • Systèmes distribues – Web Sémantique 11
  • 12.
    Connexions avec autrescourses Connaissances requises • SdE 1 • LP • SDA • AM Connaissances utiles pour • ALF • RIL • Infographie • SGI • Systèmes embarques • Robotique • DAPM 12
  • 13.
    Outils logiciels recommandés 13 VisualStudio Code VirtualBox Ubuntu LinuxWindows 10 Windows Subsystem for Linux
  • 14.
    Andrew S. Tanenbaum •Américain • Physicien • Livre de SdE • Minix OS – Mini-OS – Intel Management Engine 14
  • 15.
    Contenu • Informatique • Quelquesmots sur SdE • Introduction en Systèmes d'exploitation • Sujets 15
  • 16.
    Bibliographie pour aujourd'hui •Modern Operating Systems – Chapitre 1 • Operating Systems Concepts – Chapitre 1 16
  • 17.
    Exemples de SEusagegénéral Windows MacOS Linux FreeBSD, OpenBSD  Orbis OS Dédiés  IOS (Cisco)  JUNOS (Juniper)  FortiOS (Fortinet) Mobile  iOS  Android 17
  • 18.
    Windows • Microsoft • leplus utilisé pour les systèmes de bureau • La version plus récente: Windows 10 (pour PC, tablettes et mobiles) • Windows Server 2012 R2 (pour serveurs) 18
  • 19.
    macOS • Apple • Seulementpour les systèmes Mac (Mac Pro, Mac Mini, MacBook) • Approximative 9-10% pour Desktop • La version plus récente: macOS 10.14 “Mojave” 19
  • 20.
    Linux • Linus Torvaldset Greg Kroah-Hartman (personnes principales) • open source • distributions de Linux • approximative 1-2% pour Desktop • Utilisé pour les serveurs • Utilisé pour dispositifs intégrée et mobiles (Android et autres) 20
  • 21.
  • 22.
    Processus de démarrage MachineBoot •x86: BIOS / UEFI •ARM: Addressee de start Bootloader •x86: Lilo, GRUB2, Syslinux, NLDR, Windows Boot Manager •ARM: U-Boot, Barebox System d'exploitation •Windows •Linux Interface Utilisateur (UI/GUI) •Windows: Windows Explorer - explorer.exe •Linux: XFCE, GNOME, KDE, ... 22
  • 23.
    Qu'est-ce qu’un SE? OSCE,fig. 1.1, pg. 4 23
  • 24.
    Qu'est-ce qu’un SE? •un programme • vue de haut en bas: extension de la machine physique • vue de bas en haut: gestionnaire des ressources physiques • écrit en C • transparent pour l'utilisateur (il marche) 24
  • 25.
    La structure deSE • Noyau (kernel) – gérer les ressources physiques – fournit une interface standard pour les applications • Programmes de base – fournit une interaction utilisateur avec le noyau et le matériel – exemples: creation de fichiers, access des donnes sur la resaeu 25
  • 26.
    Système d'ordinateur • Systèmephysique (matériel) + système d’exploitation et applications • Les programmes pour écrier et compiler des programmes (toolchain) • Interconnexion avec autres systèmes • Ordinateurs personales, serveurs et systèmes embarques IoT (Internet of Things) 26
  • 27.
  • 28.
    Materiel • Processeur (CPU) –exécute le code (instructions) • Mémoire du travail (RAM) – mémorise les données et le code pour les programmes • Bus des données – fait la connexion entre le CPU, le RAM et les périphériques E/S • Périphériques (entrée/sorties - E/S, input/output - I/O) – communication avec l’extérieur: utilisateur, autres systèmes, etc. • Espace de stockage (disque, flash, ROM, NVRAM) – programmes (à partir de laquelle les processus seront faits) – données pour les processus – information pour les utilisateurs (fichiers) 28
  • 29.
    Processeur et mémoire OSCE,fig. 1.7, pg. 16 29
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
    Shell • Interface entrel’utlisateur et le systeme d’exploitation • CLI ou GUI • PowerShell / Bash vs. Windows Explorer / GNOME / KDE • un processus qui permet de démarrer d'autres processus – “shell spawns a process” 34
  • 35.
    Les processus • sontcréés à partir d'un programme exécutable • un programme en cours d'exécution – l'idee de runtime • données et code en mémoire, execute par le CPU • a des ressources associées: espace d'adressage mémoire, fichiers ouverts, sockets • SE offre protection et communication entre les processus • certains systèmes offrent des hiérarchies de processus 35
  • 36.
    La mémoire d’unprocessus https://en.wikipedia.org/wiki/Virtual_address_space 36
  • 37.
    Memorie virtuelle • unprocessus voir un espace mémoire virtuel (l'espace mémoire n'existe pas réellement) – Le processus pense que toute la mémoire lui appartient • La mémoire matérielle est différente de la mémoire de processus • Les processus utilisent des adresses de mémoire virtuelle • La mémoire matérielle utilise des adresses de mémoire physique • Le SE associe la mémoire physique à la mémoire virtuelle 37
  • 38.
    Fils d’execution • unprocessus peut avoir plusieurs des fils d’exécution • les fils d’exécution partagent l'espace d'adressage de la mémoire virtuelle • autoriser un processus à effectuer plusieurs tâches avec les mêmes données • permet l'utilisation de matériel multiprocesseur 38
  • 39.
    Accès simultané etsynchronisation • les threads et les processus peuvent entrer en concurrence pour accéder aux mêmes ressources (données dans la mémoire) • les accès simultanés peuvent entraîner une corruption des données ou des blocages • la synchronisation permet un accès réglementé et conséquent aux ressources 39
  • 40.
    Modes d'exécution • Leprocesseur a deux modes d'exécution • Mode superviseur – Actions privilégiées – C'est le mode utilisé par le SE pour s'exécuter • Mode utilisateur – L'accès direct au matériel n'est pas autorisé – L'espace adresse mémoire ne peut pas être modifié – C'est le mode utilisé pour les applications • Le noyau este le intermédiaire pour: – l'accès des processus au matériel – l'accès des processus aux ressources • Appel système – la transition du mode utilisateur au mode noyau 40
  • 41.
  • 42.
  • 43.
    Fichiers • Unité destockage (du point de vue du programme) • Ouvert et utilisé par les processus • Fichier sur le disque (statique) et fichier ouvert (dynamique, dans un processus) – Fichier sur le disque: nom, dimension, droits, horodatage • Fichier ouvert: poignée de fichier, curseur de fichier, droits d’ouverture, accès au fichier 43
  • 44.
  • 45.
    La pile desystèmes informatiques Noyau (kernel) Programmes de base, bibliothèques de bas niveau Les bibliothèques Applications Mode superviseur Mode utilisateur 45
  • 46.
    Noyau (kernel) • Estle Systeme d’Exploitation – Windows (WindowsNT) ntoskrnl.exe – GNU/Linux et Android Linux Kernel – Mac OS X et iOS: XNU • chargé au démarrage, il lance le premier(s) programme • fournit des appels système • gère les ressources matérielles • sécurise l'intégrité du système 46
  • 47.
    La structure deSE (monolithique) OSCE, fig. 2.13, pg. 69 47
  • 48.
    SE monolithique vs.SE micronoyau https://en.wikipedia.org/wiki/Microkernel 48
  • 49.
    SE monolithique vs.SE micronoyau Monolitique • Efficient • Communication par appel de fonction entre les components • Moins flexible • Grand TCB (Trusted Computing Base) - design moins sécurisé Micronoyau • est plus lent (communication entre services) • plus modulaire • Réduite TCB (design plus sécurise) 49
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
    Ressources pour lecours SdE • Site web: http://ocw.cs.pub.ro/courses/sde/ • GitHub issues: https://github.com/upb- fils/sde/issues • Diapositives de cours • Catalogue et calendrier Google • Les machines virtuelles • vmchecker • La documentation 56
  • 57.
    Mot clés • SE •Noyau (kernel) • Mode superviseur • Mode utilisateur • CPU • Mémoire • Bus de données • Processus • Mémoire virtuelle • Espace utilisateur • Espace noyau • Appel de système • Noyau monolithique • Micronoyau • Programmes de base • Interface Utilisateur 57
  • 58.