Vous êtes sur la page 1sur 49

Logiciel Libre

Cours 4 Fondements: Systmes dExploitation

Stefano Zacchiroli
zack@pps.univ-paris-diderot.fr

Laboratoire PPS, Universit Paris Diderot

20132014

URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Copyright 2014 Stefano Zacchiroli
2007-2013 Ralf Treinen
License Creative Commons Attribution-ShareAlike 4.0 International License
http://creativecommons.org/licenses/by-sa/4.0/deed.en_US

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 1 / 47


Outline

1 Systmes dexploitation

2 Dmarrage dun ordinateur moderne

3 Matriel et logiciel

4 Systmes dexploitations et applications

5 La philosophie UNIX

6 Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 2 / 47


Rappel du cours prcdent

Lide algorithmique : diffrents algorithmes pour trier


Le modle classique du gnie logiciel :
1 Spcification
2 Conception
3 Codage
4 Test
5 Dploiement
Architecture hirarchique de logiciels
Rutilisation de code
Bibliothques statiques et dynamiques

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 3 / 47


Contenu Cours 3

Quest-ce que cest un systme dexploitation ?


Quest-ce quil se passe lors du dmarrage dun ordinateur ?
Remarques sur la frontire matriel-logiciel.
Est-ce que les applications sont ncessairement spcifiques un
systmes dexploitation ?
La philosophie UNIX.
Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 4 / 47


Outline

1 Systmes dexploitation

2 Dmarrage dun ordinateur moderne

3 Matriel et logiciel

4 Systmes dexploitations et applications

5 La philosophie UNIX

6 Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 5 / 47


Deux sens de systme dexploitation

Angl : Operating System OS

1 Dans le sens stricte : le logiciel de base qui soccupe de la


gestion des ressources dune machine, et qui donne un
programmeur une vue abstraite des dtails matriel dune
machine.
On appelle ce logiciel aussi le noyaux (angl. : kernel).

2 Dans le sens populaire : un noyau, plus un ensemble de


logiciels qui viennent habituellement avec ce noyau (interfaces
graphiques, suites bureautiques, diteurs de texte, navigateurs,
outils de programmation, . . . ).

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 6 / 47


Des exemples des systmes dexploitation

Microsoft Windows (plusieurs)


Mac OS (aujourdhui drive de BSD)
GNU/Linux
BSD (Berkely Software Distribution plusieurs variantes)
GNU/Hurd
OS/360, CP/M, OS/2, BS2000, Amiga OS, . . .
Sur des systmes embarqus : iOS, Android (bas sur Linux),
Firefox OS (bas sur Linux), Windows Mobile, Maemo, Symbian,
...

(Voir aussi le cours de la semaine prochaine sur lhistoire !)

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 7 / 47


La place dun systme dexploitation

https://en.wikipedia.org/wiki/Operating_system

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 8 / 47


Les deux fonctions dun systme dexploitation

Fournir un programmeur une vue abstraite de la machine qui


lui facilite la vie.
Par exemple : donner une interface commune pour crire sur un
fichier qui peut se trouver sur disque, ou disquette, ou sur le
rseau.

Grer (laccs ) des ressources communes entre plusieurs


utilisateurs ou programmes
mmoire, disque, accs rseau, . . .

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 9 / 47


Noyau : Interface aux priphriques

Interface uniforme pour les priphriques (disques, clefs USB,


clavier, souris, . . . ).
Pour un programmeur, le noyau est similaire une
bibliothque : le noyau fournit des fonctions quun
programmeur peut utiliser dans un programme (appels
systme, angl : system calls).
Par exemple une fonction pour lire une partie dun fichier, ou
pour crire sur un fichier, pour attendre quune touche de
clavier soit presse, . . .
Limplmentation des ces fonctions cache souvent les
diffrences techniques entre diffrentes technologies (par
exemple des disques IDE, SCSI, ATA, . . . )

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 10 / 47


Un disque dur (IDE)

https://commons.wikimedia.org/wiki/File:Hard_drive-fr.svg

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 11 / 47


Noyau : Fichiers

Definition (Fichier)
Fichier (angl. : file) : Une structure de donnes, qui existe
indpendamment dun programme utilisateur. Souvent sur un
support persistent (disque, disquette, CD, . . . ) ou parfois dans la
mmoire vive dune machine.

Normalement une structure squentielle, par exemple une


squence de caractres (texte), un binaire (code excutable).
Il sagit dune abstraction : Vu dun programmeur ou dun
utilisateur cest une squence, avec des actions possibles :
Lire
Remplacer le contenu
Ajouter du contenu la fin du fichier
Se positionner une certaine position dans le fichier

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 12 / 47


Noyau : Fichiers (cont.)

La ralisation physique est cache : les morceaux du mme


fichiers peuvent tre localises des endroits diffrents dun
disque, ou mme exister sur des support diffrents (par
exemple CD pour la version de base dun fichier plus disque
pour les parties modifies par lutilisateur).
Les fichiers sont accessibles par leur nom
Souvent organisation hirarchique : rpertoires et fichier
rguliers.
Mtadonns (angl. : metadata), en particulier attributs lis aux
privilges des utilisateurs.

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 13 / 47


Noyau : Systmes de fichiers (1)

Deux sens diffrents de systme de fichier (angl. : file system) :

1 Technique dorganiser, de reprsenter sur un support, et de


grer des fichiers.
Exemples : FAT, FAT32, NTFS (DOS/Windows) ; ext4, xfs, zfs
(Linux) ; ISO9660 (CD et DVD).

2 Une collection de fichiers suivant une de ces techniques sur un


disque (ou un autre support). Un disque est normalement
partitionn (par ladministrateur du systme), sur chaque
partition on peut avoir un systme de fichiers (sens 2).

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 14 / 47


Noyau : Systmes de fichiers (2)

Diffrences entre les systmes de fichiers (sens 1) :


Diffrences dans le support (CD/DVD, disque, rseau, . . . )
Limite dans la taille des fichiers.
Performance pour un certain type dapplications.
Robustesse contre des failles du matriel ou de lalimentation
lectrique ( !)

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 15 / 47


Noyau : Systme de fichiers (3)

Les problmes de la conception dun systme de fichier :


Support physique : blocs de disque dune taille fixe
par exemple 0.5Ko = 512 caractres
Comment grer la succession de plusieurs blocs ?
Optimisation pour les fichiers de grande taille ou des fichiers de
petite taille ?
Comment trouver des blocs de disque ncessaires pour une
extension dun fichier ?
Rutilisation des blocs disque dans le cas de suppression dun
fichier.
Robustesse.

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 16 / 47


Organisation des fichiers

Lorganisation des fichiers sur une machine


en partie standardise, au moins pour les rpertoires
systmes (les rpertoires qui sont accds directement par
les outils qui viennent avec le systme dexploitation)
en partie libre : des rpertoires dont le contenu peut tre
librement organis, soit
par ladministrateur systme
par les utilisateurs

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 17 / 47


Filesystem Hierarchy Standard
Standard tablie par plusieurs grand groupes du monde UNIX.
/boot rpertoire spcifique au dmarrage, aussi pour le
systme dexploitation lui-mme.
/bin rpertoire pour les commandes de base.
/lib rpertoire qui contient des librairies de bases (par
exemple pour le noyau).
/usr commandes, et fichiers de support, pas absolument
ncessaires pour un fonctionnement minimal (peut tre fournis
par le rseau).
/usr/lib bibliothques partags
...
/home contient les rpertoires utilisateurs.
/etc fichiers de configuration du systme
...

http://www.pathname.com/fhs/

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 18 / 47


Noyau : grer des processus

Definition (Processus)
Une instance dun programme en cours dexcution.

Chaque processus a sa propre zone mmoire : pour son propre


code, et sa mmoire de travail (par exemple les variables
dclares dans le programme).
Les zones mmoire des processus diffrents sont spares une
de lautre (en principe).
chaque moment, un seul processus peut tourner sur un
processeur.
Le systme dexploitation distribue le temps de calcul parmi les
processus qui sont prs tourner (systme multi-tche).
Un processus est interrompu quand son crneau est puis, ou
quand il doit attendre un vnement externe (par exemple une
rponse dun disque) : changement de contexte.
Les processus peuvent avoir des priorits diffrentes.
Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 19 / 47
Exemple de processus sur une machine

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 20 / 47


Noyau : lhirarchie de processus

Un processus peut crer un nouveau processus.


Hirarchie de processus, structure dun arbre.
Un processus peut se terminer : fin rgulier dun programme,
erreur dexcution, signal envoy par un autre processus.
Dmon : processus qui est lanc directement par le systme et
qui ragit des requtes (par exemple des requtes rseau), par
exemple un serveur web, agent de transport de mail, . . .

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 21 / 47


Larbre de processus sur une machine

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 22 / 47


Gestion de la mmoire

Tout processus a sa propre zone de mmoire


Utilise pour
le programme (excutable)
les donnes utilises par le programme
Le noyau gre des zones mmoire pour les processus diffrents
Pas ncessairement continue dans la mmoire physique
Peut tre temporairement dplace sur disque

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 23 / 47


Noyau : utilisateur multiples

Utilisateur diffrents avec des privilges diffrents.


Privilges : accs des fichiers, utilisation du rseau, de la carte
son, du graveur DVD, . . . .
Les processus lancs par un utilisateur hritent ses privilges.
Privilges particuliers pour les dmons.
Administrateur systme, ou super user, avec des privilges
maximales (aussi utile quand il y a une seule personne physique
qui utilise une machine).

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 24 / 47


Noyau : gestion des connexions rseau

Rseau : Structure dcentralise et complexe, pas sous contrle


des utilisateurs.
Internet : bas sur une hirarchie de logiciels appel la pile de
protocoles TCP/IP qui ralisent des fonctionnalits de plus en
plus complexes.
Le systme dexploitation fournit une vue dune connexion
rseau qui ressemble un fichier (fonctions ouvrir/fermer, lire
et crire).

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 25 / 47


Lavenir des systmes dexploitation

Micro-noyaux : factoriser les tches dun noyau en un noyau


minimal, et des programmes autonomes. On sait depuis
longtemps que cest en principe la bonne faon dcrire un
noyau, mais qui a pour linstant donn que des systmes
exprimentaux (Mach, GNU Hurd, Minix 3, . . . )

Virtualisation : Faire tourner un systme complet sur une


simulation logicielle dune machine (machine virtuelle). Cest
galement une veille ide (OS/360 des annes 60) qui est
aujourdhui de nouveau utilis pour cloisonner des applications.

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 26 / 47


Outline

1 Systmes dexploitation

2 Dmarrage dun ordinateur moderne

3 Matriel et logiciel

4 Systmes dexploitations et applications

5 La philosophie UNIX

6 Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 27 / 47


Le dmarrage dun ordinateur : BIOS

BIOS : Basic Input/Output System


Stock sur un circuit 1 de la carte mre
Configurable par un menu lors du dmarrage du systme.
Dtermine ou chercher le systme dmarrer (quel disque,
lecteur CD ou DVD, clef USB, disquette, par le rseau, . . . )
Ici : dmarrage dun disque dur (par exemple le premier).
Chaque disque contient une zone particulire qui est destine
au dmarrage du systme. Lancement du binaire qui se trouve
dans cette zone du disque indiqu par le BIOS.

1. plus prcisment : sur une mmoire non volatile, mais remplaable


Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 28 / 47
Le dmarrage dun ordinateur : BIOS

BIOS : Basic Input/Output System


Stock sur un circuit 1 de la carte mre
Configurable par un menu lors du dmarrage du systme.
Dtermine ou chercher le systme dmarrer (quel disque,
lecteur CD ou DVD, clef USB, disquette, par le rseau, . . . )
Ici : dmarrage dun disque dur (par exemple le premier).
Chaque disque contient une zone particulire qui est destine
au dmarrage du systme. Lancement du binaire qui se trouve
dans cette zone du disque indiqu par le BIOS.

Plus rcemment : UEFI


mme principe, beaucoup plus de fonction alits
notamment : la capacit de lire un systme de fichiers

1. plus prcisment : sur une mmoire non volatile, mais remplaable


Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 28 / 47
Dmarrage dun BIOS

https://en.wikipedia.org/wiki/File:AMIBIOSIntel_CPU_uCode_Error.jpg

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 29 / 47


Le dmarrage dun ordinateur : le chargeur

Lancement du systme propre, ou (souvent dans le cas de systmes


multi-boot) dun chargeur (angl. : bootloader) :
Logiciel qui rside sur un support comme disque dur, clef USB,
....
Peut tre modifi ou configur par lutilisateur, linstallation de
ce logiciel ncessite doutils spcialiss car le chargeur rside
sur une zone spciale du disque.
Ce logiciel dtermine (ventuellement aprs un choix fait par
lutilisateur) quel systme dexploitation lancer.
Le chargeur connat une liste de systme dexploitation installs
(par exemple Windows, GNU/Linux, BSD), avec le disque et
lendroit sur le disque ou se trouve le noyau.
Exemples (GNU/Linux) : LILO, Grub

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 30 / 47


Le chargeur GRUB

https://en.wikipedia.org/wiki/File:GRUB_screenshot.png

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 31 / 47


Dmarrage dun ordinateur : GNU/Linux

Rservation des zones mmoire pour la gestion des ressources


du systme.
Lancement dun premier processus init qui sert comme racine
de larbre de processus.
init cre (par exemple) des processus qui attendent quun
utilisateur entre son login et mot de passe, puis (quand
authentification de lutilisateur russie) se transforment dans un
interprteur de commande avec les privilges de lutilisateur.
Quand un utilisateur se dconnecte : son processus
dinterprteur de commande est dtruit. init sen rend compte
et cre de nouveau un processus qui attend quun nouvel
utilisateur sidentifie.

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 32 / 47


Dmarrage GNU/Linux : montage systmes de fichiers

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 33 / 47


Dmarrage GNU/Linux : lancement de services

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 34 / 47


Outline

1 Systmes dexploitation

2 Dmarrage dun ordinateur moderne

3 Matriel et logiciel

4 Systmes dexploitations et applications

5 La philosophie UNIX

6 Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 35 / 47


La frontire matriel/logiciel

. . . nest pas toujours aussi nette quon peut le croire.


Le BIOS est en principe un logiciel, mais il est install dans une
mmoire non volatile circuit, et souvent considr (erronment)
comme du matriel.
Microcode pour la programmation des units centrales (CPU).
Machines virtuelles : Simulation dun ordinateur par un logiciel.
Micrologiciels (angl : firmware) pour contrler le matriel
p.ex. disques intelligents qui dplacent automatique de secteurs
dfectueux
le BIOS est aussi un exemple de micrologiciel

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 36 / 47


Outline

1 Systmes dexploitation

2 Dmarrage dun ordinateur moderne

3 Matriel et logiciel

4 Systmes dexploitations et applications

5 La philosophie UNIX

6 Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 37 / 47


Est-ce que les applications sont spcifiques un OS ?

En principe souvent pas.


Exemple : Navigateur Firefox disponible pour plusieurs OS
Exemple : Le noyau du systme dexploitation des Mac est
pass dun systme propritaire de Apple une variante dun
OS libre (BSD Unix).
En pratique : il y autour dun certain noyau de OS une certaine
culture de logiciels, interfaces, etc.
Une autre limitation : installation de nouveaux logiciels ne doit
pas tre en conflit avec les logiciels installes habituellement
avec lOS install.

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 38 / 47


Outline

1 Systmes dexploitation

2 Dmarrage dun ordinateur moderne

3 Matriel et logiciel

4 Systmes dexploitations et applications

5 La philosophie UNIX

6 Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 39 / 47


UNIX : Coopration entre logiciels indpendants

Plusieurs logiciels qui sont chacun autonome mais qui


communiquent, par exemple par un mcanisme de tuyau
(tampon pour le transfert de donnes entre applications
diffrentes).
Exemple en UNIX : Afficher une liste trie de tous les fichiers
dans un rpertoire :
La commande ls produit la liste de fichiers
La commande sort trie une liste de mots
Combinaison des deux : ls | sort
Glue Languages : langages de programmation conus pour le
traitement de donnes textuelles et pour la liaison entre
applications. P.ex. Perl, Python, . . .

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 40 / 47


La philosophie UNIX

Doug McIlroy (inventeur des tuyaux en UNIX) :


This is the Unix philosophy : Write programs that do one
thing and do it well. Write programs to work together. Write
programs to handle text streams, because that is a
universal interface.

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 41 / 47


Programmes qui manipulent des programmes

Compilateur : traduire code source en code machine


Gnrateur de parseur : construit le code source dune partie
dun compilateur partir dune description formelle de la
syntaxe dun langage de programmation.
Gnrateur du code source pour une interface.
Analyseur de code : Assurer des proprits de code, comme pas
de dbordement de la mmoire (il y a des limitations thoriques
de cette approche).
Vrification de code par rapport une spcification formelle.
Test automatique.

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 42 / 47


Outline

1 Systmes dexploitation

2 Dmarrage dun ordinateur moderne

3 Matriel et logiciel

4 Systmes dexploitations et applications

5 La philosophie UNIX

6 Les distributions

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 43 / 47


Quest-ce que cest une distribution (GNU/Linux) ?

1 Un installateur : premier dmarrage dun ordinateur sous Linux,


dtection du matriel, choix des pilotes ncessaires, partition
des disques, configuration rseau, installation dun systme de
base, finalement installation de paquets.
Normalement sur support amovible (disquette, CD, DVD, clf
USB), ou par rseau.

2 Beaucoup de paquets : en Debian environ 30.000 paquets


disponible pour larchitecture amd64.
Paquets pour des composants essentiels (noyau Linux, outils de
base), des librairies, des applications, . . .

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 44 / 47


Choisir et installer des paquets
(haut niveau, -la appstore)

https://en.wikipedia.org/wiki/File:Ubuntu_Software_Center_13.10.png
Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 45 / 47
Choisir et installer des paquets (cont.)
(bas niveau, beaucoup plus de dtails)

https://apps.ubuntu.com/cat/applications/synaptic/
Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 45 / 47
Encore plus de distributions . . .

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 46 / 47


Il y a plein de distributions . . .

Stefano Zacchiroli (Paris Diderot) Fondements: systmes dexploitation 20132014 47 / 47

Vous aimerez peut-être aussi