1 Programmation système & 3ème année Licence MIAGE Réseaux Philippe Lahire Univ
1 Programmation système & 3ème année Licence MIAGE Réseaux Philippe Lahire Université de Nice Sophia-Antipolis Octobre 2012 Ce cours fait de nombreux emprunts à celui de R. Rousseau Ce cours fait de nombreux emprunts à celui de R. Rousseau Version Octobre 2012 N°2 Organisation du cours Planning : Cours: 12 séances (1h30) Cours: 12 séances (1h30) TP: 12 séances (1h30) Contrôle continu : TP: deux à trois TP notés un ou deux contrôles courts + contrôle terminal (1h30) Note complémentaire : Le travail : Motivation Compréhension Progression Le travail : Motivation, Compréhension, Progression,… La tenue : Assiduité, Respect,… Matériel : PC sous linux 2 Version Octobre 2012 N°3 Programme Système de Fichiers Entrée sortie + API (read write ) Entrée-sortie + API (read, write…) Notion de processus + API (fork, exec) Tubes + API (pipe) Signaux + API Langage Langage : • principalement C Version Octobre 2012 N°4 Organisation des enseignements cours Semaine TP 1 Introduction + Entrées-Sorties 42 2 Introduction + Entrées-Sorties 42 3 Systèmes de Fichiers 43 TP N°1 : E/S (1h30) 4 Systèmes de Fichiers (prog) 45 TP N°1 : E/S (1h30) 5 Processus 46 TP N°2 : Syst. Fich. (1h30) 6 Processus (prog) 48 TP N°2 : Syst. Fich. (1h30) 7 Tubes 49 TP N°3 : Processus Fork (1h30) 8 Tubes 50 TP N°4 : Processus exec (1h30) 9 Signaux 51 TP N°4 : Processus exec (1h30) 10 Signaux 2 TP N°5 : Tubes (1h30) 3 TP N°6 : Signaux(1h30) 11 Révision/Rattrapage 4 TP N°6 : Signaux(1h30) TP Révision/ Rattrapage 12 Contrôle Terminal TP Révision / Rattrapage 3 Version Octobre 2012 N°5 Tentative de bibliographie 1. S. Harbison & G. Steele Jr. C, a reference manual (1st ed. 1984) Prentice Hall, 2nd edition, 1987, 404 p. 2. B. Kernighan & D. Ritchie “The C Programming Language (1st ed. 1978)”, C g g g g g ( ) , Prentice Hall, 2nd ed., 1988. Traduction française Masson, 1990. 3. A. Tannenbaum “ Systèmes d’exploitation : systèmes centralisés, systèmes distribués” MacGraw Hill, 1990. Traduction française (2e ed) Dunod, 1999 4. A. Siberschatz & P. Galvin “ Operating Systems Concepts ”, 5e ed, Addison-Wesley, 1998. 5. J. Beauquier & B. Berard “Systèmes d’exploitation : concepts et algorithmes ” MacGraw Hill, 1990. 6. W. Stevens “Advanced Programming in the Unix environment” Addison Wesley 1992 744 p Concepts Concepts ix ix Wesley, 1992, 744 p. 7. M.J. Bach “Conception du système Unix”, Prentice Hall, 1986. Traduction française Masson, 1991. 8. J.M. Rifflet “La programmation sous Unix”, Ediscience intern., 3ème éd., 1993, 630 p. 9. U. Vahalia “Unix Internals : the new Frontiers” Prentice Hall, 1996 10. A.D. Solomon “Le guide officiel sur l’architecture et le noyau Windows NT” 2nd ed., Microsoft Press, 1998. 11. Site microsoft Uni Uni Windows Windows Version Octobre 2012 N°6 Documentation en ligne Sur le langage C Sur le langage C En L2MI (Gilles Menez) : ( ) www-mips.unice.fr/˜menez/L2/L2cours.html Cours vidéo sur le langage C de l’Université de Paris VI : www.infop6.jussieu.fr/cederoms/Videoc2000/ Sur la programmation réseau Sur la programmation réseau : Cours réseau du CNRS : www.urec.fr/cours Cours programmation réseau avec sockets, de Brian "Beej" Hall : hi d ˜b j id h l www.ecst.csuchico.edu/˜beej/guide/net/html/. A propos de l’UE A propos de l’UE «Programmation système et réseau» : Site web officiel de cet enseignement : http://deptinfo.unice.fr/~lahire/enseignement/SYSL3 4 Chapitre 1: Présentation générale Version Octobre 2012 N°8 Chapitre 1: Présentation générale Historique des systèmes UNIX Vers une normalisation: POSIX √ Vers une normalisation: POSIX Unix propriétaires ou Linux Survol de l'architecture Noyau du système Principales caractéristiques Rappels des notions de base: le Shell Rappels des notions de base: le Shell Principales commandes Interprétation de commande Notion de base: La session, le manuel,… Parallèle avec Windows 5 Version Octobre 2012 N°11 Vers une normalisation: POSIX Portable Open System Interface eXchange Norme IEEE & Description: 1003.0: Guide et présentation 1003.1: Bibliothèque de fonctions 1003.2: Shell et utilitaires 1003.3: Méthode de tests et conformité 1003.4: Extension temps réel 1003.5: Form. appels systèmes en ADA 1003 6: Sécurité 1003.6: Sécurité 1003.7: Administration système 1003.8: Accès commun aux fichiers 1003.9: Interface sous Fortran 77 1003.10: Interface supercalculateurs Æ Normes: ISO 9945-1 (ÙP1003.1) Version Octobre 2012 N°12 Unix propriétaires ou Linux… Linus Torvald (FIN-91 sur i386) Philosophie p Un noyau et des outils de base Indépendant de tout constructeur Libre et Basé sur des contributions bénévoles (GPL) Organisation en projets ambitieux (FSF, SourceForge) Un grand nombre d'utilisateurs motivés Un “excellent produit”: stable et code original “libre de droits” Porté un grand nombre d'architectures : SPARC, INTEL, ALPHA, MAC, … Quelques projets: Apache Gnome GNU 6 Version Octobre 2012 N°13 De nombreuses distributions Linux Les différences Nom: Debian, Redhat, Suse, Mandrake, … Prix (commerciale ou pas), Nombre de logiciels, Versions des logiciels, Pilotes supportés, Organisation des fichiers de configuration, Procédures d'installation, Sérieux de la gestion (site web, mise à jour, etc.), Fréquence des versions q Certifications, … Mais encore: Debian: de 4500 à 9000 Logiciels, Orienté informaticien, Une dérive vers l'automatisation, … Version Octobre 2012 N°14 Survol de l'architecture (1) UTILISATEUR Interface Utilisateur SYSTEME D’EXPLOITATION UNIX BIBLIOTHEQUE STANDARD fopen, fclose, fread, fwrite,… PROGRAMMES UTILITAIRES STANDARD Shell, éditeur, compilateur, … Interface Bibliothèques Interface Appels Systèmes Interface Utilisateur MATERIEL: UC, mémoire, disques, terminaux, etc… SYSTEME D’EXPLOITATION UNIX Gestion des processus, de la mémoire, des E/S,… Autre système en couche : logiciels réseaux suivant norme - OSI 7 Version Octobre 2012 N°17 Noyau du système Bibliothèques Programme Utilisateur Interface des appels systèmes Sous-systèmes de contrôle de fichiers Sous-systèmes de contrôle des processus Communication interprocessus Ordonnanceur Gestion mémoire Cache Buffer PARTIE MATERIELLE Cache Buffer Bloc Caractère Contrôleurs de périphériques Contrôle de la partie matérielle Version Octobre 2012 N°19 Principales caractéristiques Langage de haut niveau Le noyau : plus d'1 million de lignes de C y p g Expressivité et simplicité de l'interface Construction de programmes: des primitives élémentaires Un système de fichiers « hiérarchique » Un format cohérent de fichier (octet) Accès aux périphériques ccès au pé p é ques Multi-utilisateurs et multitâches … Indépendance avec l'architecture matérielle 54 % du code Mémoire virtuelle (versions actuelles) 8 Version Octobre 2012 N°21 Notion d’interprète de commandes Shell : Interface textuelle vers le système Fonctionnalités Fonctionnalités Message d'invitation (prompt) Attend la saisie d'une commande Commandes internes Commandes externes (charg. + exec. programmes) Historique des commandes précédentes Historique des commandes précédentes Redirections et tubes Structures de contrôles (boucles, tests, fonctions, ...) Mécanisme d'alias, variables d'environnement Gestion de processus Version Octobre 2012 N°22 Différents shells unix possibles Bourne shell Bourne shell (historiquement, le 1er) Toujours utilisé par les scripts internes du système Toujours utilisé par les scripts internes du système C- -shell shell (csh, tcsh) syntaxe différente Évolutions du Bourne shell Évolutions du Bourne shell ksh (Korn shell) bash (Bourne Again shell): le shell du projet GNU Où indiquer le shell par défaut ? bash (Bourne Again shell): le shell du projet GNU zsh: Évolution prétendument "ultime" du bourne shell Améliorations : historique, complétion, ... Possibilité de (demander à) changer le shell par défaut lancé automatiquement au début de session 9 Version Octobre 2012 N°23 Quelques éléments d’administration /etc/passwd /etc/passwd nom_du_compte : mot_de_passe : numero_utilisateur : numero_de_groupe : nom_du_compte : mot_de_passe : numero_utilisateur : numero_de_groupe : commentaire : répertoire : programme de demarrage commentaire : répertoire : programme de demarrage root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:daemon:/sbin:/bin/bash news:x:9:13:News system:/etc/news:/bin/bash user1:x:500:100:Mr User 1......:/home/user1:/bin/bash commentaire : répertoire : programme_de_demarrage commentaire : répertoire : programme_de_demarrage /etc/group /etc/group nom_de_groupe : champ_special : numero_de_groupe : membre1, membre2 nom_de_groupe : champ_special : numero_de_groupe : membre1, membre2 root:x:0:root bin:x:1:root,bin,daemon daemon:x:2: users:x:100: Version Octobre 2012 N°28 Caractéres spéciaux du shell Certains caractères ont une signification spéciale pour le shell * : 0 ou plusieurs caractères quelconques Pas en C Pas en C p q q t*o : nom de fichier qui débute par t et finit par o ? : 1 (et un seul) caractère quelconque t?t? : désigne toto ou titi ou ttta, ... \ : enlève la signification spéciale du caractère qui suit t\*to : désigne t*to Certaines constructions ont une signification spéciale [a-z] : un caractère entre a et z (a ou b ou c ... ou z) [aefgij] : un caractère (et un seul) parmi a,e,f,g,i,j t[oau]t[oau] : toto, ou totu, ou tata, ou tato, ... {mot1,mot2} : soit mot1, soit mot2 10 10 Version Octobre 2012 N°34 Notions de base: Le manuel Principales sections (environ 20 Mo) taille dépendante des paquetages - nyx : (≈20 Mo de “.gz”) man1: Commandes utilisateurs à partir shell (≈1800) man2: Primitives du noyau (≈250) man3: Routines C (≈1400) man4: Fichiers uploads/Ingenierie_Lourd/ cours-systeme-2012-2013-part1-pdf.pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 20, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 2.1955MB