01 - Introduction. Morgan Barbier morgan.barbier@unicaen.fr L2 S4 2012/2013

Documents pareils
Linux 1: Présentation

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Cours Programmation Système

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Programmation système de commandes en C

PROFIL EXPERIENCE ARCHITECTE LINUX, OPEN SOURCE, COORDINATEUR SÉCURITÉ EMEA

L informatique en BCPST

Systèmes en réseau : Linux 1ère partie : Introduction

Environnement Informatique EMSE Linux

Maîtrisez l'administration du système [2ième édition]

Découverte des Logiciels Libres. Gilles Dequen

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Introduction à l informatique

Introduction à l informatique en BCPST


Programmation C. Apprendre à développer des programmes simples dans le langage C

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Les générations d'ordinateurs de 1945 à nos jours

Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3

Systèmes de gestion de code source

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Introduction au langage C

Introduction aux Systèmes et aux Réseaux

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Aide-Mémoire unix. 9 février 2009

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

IBM Tivoli Monitoring, version 6.1

Année Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

CH.3 SYSTÈMES D'EXPLOITATION

La mémoire. Un ordinateur. L'octet. Le bit

Chapitre I Notions de base et outils de travail

Stratégie de sécurité grâce au logiciel libre. Frédéric Raynal Cédric Blancher

Personnes ressources Tice. Académie de Rouen

Traitement de données

I00 Éléments d architecture

Automatisation de l administration système avec

Virtual Box Mettez un PC dans votre... PC

La gestion du poste de travail en 2011 : Panorama des technologies

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Chapitre 2 : Abstraction et Virtualisation

TP 4 de familiarisation avec Unix

INSTALLATION MYSQL POUR WINDOWS (XP OU 2000)

Chapitre 02. Configuration et Installation

Systèmes d exploitation

TP : Introduction à TCP/IP sous UNIX

Le système GNU/Linux IUP NTIC /11/05

Programmation système en C/C++

Linux embarqué Retour d expérience et temps réel. Denis Coupvent-Desgraviers

Table des matières Hakim Benameurlaine 1

ASR3. Chap. 1 Notion de système d'exploitation

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

TP 1. Prise en main du langage Python

Sauvegarde des données au LAAS

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

sshgate Patrick Guiran Chef de projet support

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

L'automatisation open source pour SI complexes

Annexe : La Programmation Informatique

Manuel de System Monitor

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

UE Programmation Impérative Licence 2ème Année

Tivoli Endpoint Manager Introduction IBM Corporation

Mise en œuvre des serveurs d application

Gestion de parc Windows depuis Unix. Pascal Cabaud & Laurent Joly

C2I. Ou réapprendre ce que l on connait. Florimond GUENIAT Première semaine Cours C2I l IUT de Sceaux C2I 1 / 21. florimond.gueniat@limsi.

Environnements et Outils de Développement Cours 1 Introduction

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Systèmes informatiques

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

-1 - Postes de travail graphiques

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Évaluation et implémentation des langages

Exécutif temps réel Pierre-Yves Duval (cppm)

Le prototype de la fonction main()

M1105 : Bases des systèmes d exploitation

Programmation système I Les entrées/sorties

NatStar V8.00. Ce document présente la liste des nouvelles fonctionnalités de la 8.00, disponible à partir de septembre 2013.

Les logiciels libres. Mythes et réalités Conférence ENSSAT. Alexandre DAGAN alexandre.dagan at wanadoo dot fr 25 février 2004

Implémentation libre de Liberty Alliance. Frédéric Péters

Outils de développement collaboratif

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Moderniser. le système d information et le portefeuille applicatif.

Voir en page viii comment on peut imprimer ce manuel... TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR. Unix

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Arkeia Network Backup Suite : Version 9

UC4 effectue tout l ordonnancement batch pour Allianz en Allemagne

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

Couche application. La couche application est la plus élevée du modèle de référence.

Solutions libres de stockage. Patrice Langlois / Antoine Puechlong Service Informatique IGMM CRBM CPBS

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Windows Server Chapitre 1: Découvrir Windows Server 2008

Transcription:

01 - Introduction Morgan Barbier morganbarbier@unicaenfr L2 S4 2012/2013

0 Administratif

Équipe pédagogique Membres : Morgan Barbier (responsable S3-352); Mariya Georgieva; Nous contacter : prenomnom@unicaenfr Séances : 8 séances de Cours ; 9 séances de TD ; 10 séances de TP Administratif 1 / 41

Emploi du temps Cours : Le mardi 16h00 18h00 (Morgan Barbier S3 049) ; Groupe 1 et 2 : TD 1 jeudi 13h45 à 15h15 (Morgan Barbier S1 113) ; TP 1 jeudi 16h30 à 18h00 (Morgan Barbier S1 128) ; TP 2 vendredi 9h00 à 10h30 (Morgan Barbier S1 127) Groupe 3 : (étudiants SPI et étudiants maths) TD 2 vendredi 14h00 à 15h30 (Mariya Georgieva S1 033) ; TP 3 vendredi 16h00 à 17h30 (Mariya Georgieva S1 127) Administratif 2 / 41

Modalités de contrôle de connaissances Épreuves : Un Projet (CC) ; Un Examen (E) Note : Note finale du module : F = 1 3 CC + 2 3 E Support de cours : https://barbierm01usersgreycfr/teachingphp Administratif 3 / 41

1 Système d exploitation

Le programme unique Principe : couche entre le matériel et les programmes utilisateurs Programmes Compilation, algorithmique Matériel Architecture 1 Système d exploitation 4 / 41

Le programme unique Principe : couche entre le matériel et les programmes utilisateurs Programmes Compilation, algorithmique Système d exploitation Matériel Architecture 1 Système d exploitation 4 / 41

Le programme unique Principe : couche entre le matériel et les programmes utilisateurs Dans ce cours : aspects utilisation Programmes Système d exploitation Compilation, algorithmique API Matériel Architecture 1 Système d exploitation 4 / 41

Problématiques Rôle d un système d exploitation : Gérer le matériel ; Matériel 1 Système d exploitation 5 / 41

Problématiques Rôle d un système d exploitation : Gérer le matériel ; Fournir une abstraction du matériel (bibliothèques) ; Bibliothèques API Matériel 1 Système d exploitation 5 / 41

Problématiques Rôle d un système d exploitation : Gérer le matériel ; Fournir une abstraction du matériel (bibliothèques) ; Gérer et protéger des processus en parallèles ; Process Process Process Bibliothèques API Matériel 1 Système d exploitation 5 / 41

Problématiques Rôle d un système d exploitation : Gérer le matériel ; Fournir une abstraction du matériel (bibliothèques) ; Gérer et protéger des processus en parallèles ; Permettre la gestion et administration de la machine Process Process Process Bibliothèques API Matériel 1 Système d exploitation 5 / 41

Les services Présentation : Persistance : système de fichier ; Temps : processus ; Espace : mémoire ; Interaction : signaux, synchronisation 1 Système d exploitation 6 / 41

Tentative de définition Système d exploitation : Ensemble d éléments permettant la prise en charge de l aspect matériel de l ordinateur par la présence d interfaces abstraites et assurant le partage et la protection de ce matériel Exemples : UNIX, Mac OS X, GNU/Linux, Windows, *BSD, Android, ios, 1 Système d exploitation 7 / 41

2 UNIX and co

Qu est ce que UNIX? Un peu d historique : En 1965, un projet ambitieux de réaliser un système d exploitation multi-utilisateurs : Multics (Multiplexed Information and Computing Service) En 1969, Bell Labs se retire du projet K Thompson, DRitchie initient un projet de système d exploitation pour PDP-7 En 1973, UNIX est réécrit en C, devient portable et est commercialisé En 1977, un fork apparaît à Berkeley : BSD 2 UNIX and co 8 / 41

L explosion I 1970 1980 1990 2000 Time BSD family FreeBSD NetBSD OpenBSD 72 50 45 BSD (Berkeley Software Distribution) Bill Joy Xenix OS Unix Time-Sharing System (Bell Labs) Ken Thompson Dennis Ritchie (C language) SunOS (Stanford) Microsoft/SCO GNU Project Richard Stallman HP-UX Minix AIX (IBM) NextStep Solaris (SUN) 33 GNU/Linux Linus Torvalds Andrew S Tanenbaum 10 UnixWare (Univel/SCO) IRIX (SGI) Darwin 10 5/09 MacOS X 57 GNU/Hurd K16 26301 313a 11i v3 61 714 MP4 6530 System III & V family 2 UNIX and co 9 / 41

L explosion II 2 UNIX and co 10 / 41

Pourquoi UNIX? UNIX est un système standardisé, est un système répandu, a un grand impact historique et pratique, dispose de concept fondamentaux simples, disposait d une API concise possède une tradition d ouverture du code 2 UNIX and co 11 / 41

Normalisation Il n existe pas une normalisation d UNIX mais un ensemble de normalisations qui disposent chacune de plusieurs versions En particulier, on citera : POSIX (Portable Operating System Interface) qui normalise les appels système, les commandes et utilitaires SUS (Single Unix Speci cation) qui est une famille de normes recoupant partiellement les normes POSIX et servant de références pour UNIX 2 UNIX and co 12 / 41

Respect des normes Il existe un programme de certification des systèmes d exploitations Seuls ceux conformes à la norme Single Unix Speci cation ont le droit de porter officiellement le nom UNIX (actuellement : AIX, HP/UX, Mac OS X, Solaris et z/os) Cependant, un très grand nombre d autres systèmes offrent un niveau suffisant de compatibilité Parmi ceux-ci, il existe en certain nombre de programmes libres: GNU/Linux, OpenSolaris, NetBSD, FreeBSD, OpenBSD, 2 UNIX and co 13 / 41

Modèle Le modèle UNIX incarne un système d exploitation : monolithique : le système se compose d un seul bloc s exécutant en mode privilégié, les utilisateurs interagissent avec lui à l aide d appels système (syscall) multi-programmé : les temps d attentes des appels systèmes ne bloquent pas tout le système multitâche préemptif : le temps de calcul est partagé entre processeurs et utilisateurs avec ou sans leur coopération 2 UNIX and co 14 / 41

Principe Process Process Process Synchrone Syscall Asynchrone Bibliothèques CPU Mémoire Disque 2 UNIX and co 15 / 41

3 Du programme au processus

Définitions Programme : ensemble des fichiers textes décrivant un ensemble d opérations à effectuer Exécutable : fichier binaire contenant les instructions machine correspondant aux opérations du programme ainsi que des instructions pour le charger en mémoire Processus : Exécutable en cours d exécution sur la machine 3 Du programme au processus 16 / 41

Du code source à l exécution Cas des langages compilés : le fichier source contient le code du programme ; on compile le fichier pour produire du code exécutable ; on fait le liens avec les fonctions de bibliothèques (linkage) ; on lance le programme fichierc gcc fichiero fichier ld, as /fichier 3 Du programme au processus 17 / 41

Du code source à l exécution Cas des langages interprétés : le fichier source contient le code du programme ; on convertit le langage vers un langage intermédiaire ; un interpréteur se charge alors d exécuter le source et de gérer les fonctions de bibliothèques fichierpy python python fichierpic 3 Du programme au processus 18 / 41

4 Utilisation d appel système

Qu est-ce que man? (u64)barbierm01@ange :~$ man man MAN(1) Utilitaires de l afficheur des pages de manuel MAN(1) NOM man - Interface de consultation des manuels de référence en ligne DESCRIPTION 1 Programmes exécutables ou commandes de l interpréteur de commandes (shell) ; 2 Appels système (Fonctions fournies par le noyau) ; 3 Appels de bibliothèque (fonctions fournies par les bibliothèques des programmes) ; 4 Fichiers spéciaux (situés généralement dans /dev) ; 5 Formats des fichiers et conventions Par exemple /etc/passwd ; 4 Utilisation d appel système (exemple) 19 / 41

Times en C TIMES(2) Manuel du programmeur Linux TIMES(2) NOM times - Obtenir les statistiques temporelles du processus DESCRIPTION La fonction times() stocke les durées statistiques du processus en cours dans la structure struct tms pointée par buf La structure struct tms est définie ainsi dans <sys/timesh> : struct tms { clock_t tms_utime ; /* durée utilisateur */ clock_t tms_stime ; /* durée système */ clock_t tms_cutime ; /* durée utilisateur des fils */ clock_t tms_cstime ; /* durée système des fils */ CONFORMITÉ SVr4, BSD 43, POSIX1-2001 4 Utilisation d appel système (exemple) 20 / 41

Python ostimes Documentation >>> import os >>> help(ostimes) Help on built-in function times in module posix : times() times() -> (utime, stime, cutime, cstime, elapsed_time) Return a tuple of floating point numbers indicating process times >>> ostimes() (0040000000000000001, 002, 00, 00, 1819155566) 4 Utilisation d appel système (exemple) 21 / 41

En shell Utilitaire times: (u64)barbierm01@ange :~$ help times times : times Display process times Prints the accumulated user and system times for the shell and all of its child processes Exit Status : Always succeeds (u64)barbierm01@ange :~$ times 0m0180s 0m0050s 0m1630s 0m0470s 4 Utilisation d appel système (exemple) 22 / 41

Des erreurs Dans certains cas, les appels système peuvent échouer (arguments invalides, périphérique indisponible, ) L appel retourne alors une valeur particulière (langage C, shell, ) ou lève une exception (python, ) Ces comportements sont décrits dans les pages de manuel des appels systèmes Exemple : Extrait de man 2 chdir ERREURS Suivant le type de système de fichiers, plusieurs erreurs peuvent être renvoyées, les plus courantes pour chdir() sont les suivantes : EACCES L accès n est pas autorisé sur un élément du chemin path (Voir aussi path_resolution(7)) 4 Utilisation d appel système (gestion d erreur) 23 / 41

Et des hommes Méthodologie : Lors de l utilisation d un appel système, il faut vérifier le bon déroulement de l appel et gérer les erreurs 4 Utilisation d appel système (gestion d erreur) 24 / 41

Erreurs en C La norme POSIX utilise errno Principe : Lorsqu un appel système rencontre une erreur, il positionne la valeur de la variable errno et retourne avec une valeur définie (en général 1) Il est alors possible d afficher un message d erreur avec le fonction perror #include <errnoh> #include <stdioh> void perror(const char *s) ; 4 Utilisation d appel système (gestion d erreur) 25 / 41

Erreurs en C Exemple : #include <unistdh> #include <errnoh> #include <stdioh> if (chdir( toto )!= 0) { /* En cas d erreur */ perror( chdir a échoué ) ; exit(-1) ; } /* suite du programme */ 4 Utilisation d appel système (gestion d erreur) 26 / 41

Erreurs en shell Principe : En cas d erreur, le programme affiche un message sur la sortie d erreur et renvoie une valeur particulière (en général une valeur différente de 0) Exemple : (u64)barbierm01@ange :~$ ls toto ls : impossible d accéder à toto : Aucun fichier ou dossier de ce type (u64)barbierm01@ange :~$ echo $? 2 4 Utilisation d appel système (gestion d erreur) 27 / 41

Erreurs en python Principe : En cas d erreur, un appel système retourne une exception Ce système est basé sur le principe de la variable errno Exemple : from os import * import errno try : oschdir( toto ) except OSError as err : print( Erreur chdir :,err) # gestion de l erreur 4 Utilisation d appel système (gestion d erreur) 28 / 41

5 multi-utilisateurs

Une machine / plusieurs utilisateurs Sur une machine, il peut y avoir plusieurs utilisateurs Chacun dispose d un identifiant uid Il existe également des groupes Chaque groupe possède également un identifiant unique : le gid Chaque utilisateur peut appartenir à plusieurs groupes En shell, il est possible de connaître ces informations à l aide de la commande id Exemple : (u64)barbierm01@ange :~$ id uid=55537(barbierm01) gid=2001(personnels) groupes=24(cdrom),25(floppy),29(audio),44(video), 5 multi-utilisateurs 29 / 41

Droits Les utilisateurs peuvent correspondre à des personnes physiques (ex : vous) ou à des service (ex : www pour le serveur web) À chaque utilisateur et chaque groupe sont associées des permissions Il existe un super-utilisateur qui possède tous les droits Usuellement, son nom est root et son uid est 0 Dans un système UNIX, ces permissions sont mises en place par l intermédiaire du système de fichier Nous verrons cela plus tard 5 multi-utilisateurs 30 / 41

Accès à distance Principe : Il peut y avoir plusieurs claviers / écrans reliés à un même ordinateur permettant ainsi à plusieurs personnes de l utiliser simultanément On parle alors de client léger Il est également possible de se connecter à un ordinateur à distance par exemple à l aide de la commande ssh Remarque : Il est important de ne pas éteindre les machines mais uniquement de se déconnecter (logout) via exit 5 multi-utilisateurs 31 / 41

6 shell

Interaction avec l ordinateur Il est possible d interagir avec l ordinateur à l aide de plusieurs périphériques : clavier; souris; tablette; micro; 6 shell 32 / 41

Présentation des programmes Il existe deux types principaux d interfaces : interface en ligne de commande : l utilisateur entre des commande aux clavier, l ordinateur affiche sous forme de texte le résultat et les éventuelles questions GUI : (Graphical User Interface) l interface graphique que vous connaissez sans doute déjà 6 shell 33 / 41

Le shell Principe : Le shell est un programme d une interface en ligne de commande permettant de lancer n importe quel programme et de tout faire Et même le café : La plupart des shell fournissent de nombreuses fonctionnalités additionnelles : complétion ; facilité de rappel ; facilités de programmation ; raccourcis d éditions ; 6 shell 34 / 41

Un, deux, trois, Il existe de nombreux shell : sh : le shell historique et normalisé par les normes UNIX ; csh : un shell munie entre autre de facilités de programmation basées sur le langage C ; ksh : est une évolution de csh ; bash : (Bourne again shell) un shell courant et assez évolué ; dash : (Debian Almquist shell) un shell plus minimaliste et qui tente d être proche de la norme POSIX 6 shell 35 / 41

Commande Dans un shell, on rentre des commandes Exemple : (u64)barbierm01@ange :~$ls -l -h /bin /var Les éléments de la commande sont appelés arguments et numérotés à partir de 0 Usuellement, les arguments commençant par des signes - sont des options de la commande et modifient son comportement 6 shell 36 / 41

7 Contenu du cours

Cours Dans ce cours, on parlera principalement des objets suivants : Shell : bash Système d exploitation : GNU/Linux CaLviX : association de défense et de promotion des logiciels libres du Calvados http://wwwcalvixorg/ 7 Contenu du cours 37 / 41

Cours (suite) Au niveau du système d exploitation, les cours seront organisés autour des concepts suivants : Système de fichier ; Processus : Mémoire ; Signaux ; Synchronisation 7 Contenu du cours 38 / 41

Cours (méthode) La présentation des appels système se fera principalement en insistant sur les concepts et à l aide des langages suivants : En C En python Par l intermédiaire des utilitaires 7 Contenu du cours 39 / 41

TD / TP TD : Utilisation des appels systèmes ; Manipulation des concepts TP : Programmation de scripts shell ; Un peu de python ; Un projet à réaliser Début des TDs/TPs à partie de la semaine 3 : semaine du 21 janvier 7 Contenu du cours 40 / 41

Prochaine Séance PAS de Cours magistral la semaine prochaine! À mardi 22 janvier!! 7 Contenu du cours 41 / 41