Programmation Système et Réseau (sous Linux)

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

GEF 243B Programmation informatique appliquée
Premier programme en C :
Module 5 : Implémentation de l'impression
Chapitre annexe. Récursivité
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Développement logiciel sur micro-contrôleurs PIC en C
Master Professionnelle Sciences et Techniques 2 juillet
Introduction au langage C++
MySQL I / Présentation. II / Administration et Outils.
Appropriation et extensions d'un logiciel libre de traitement de réseaux bayésiens complexes pour l’appréciation quantitative des risques alimentaires.
(Classes prédéfinies – API Java)
C.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Programmation Orientée Objet (POO)
Paramètres et pointeurs
Introduction : Compilation et Traduction
FLSI602 Génie Informatique et Réseaux
Formation Linux :exécutables et processus
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Récursivité.
Introduction Langage C
TRAITEMENT DE STRUCTURES
Séances de soutien Projet informatique 2A
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Démo I : INF3135 Construction et maintenance de logiciels Groupe : 10
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Formation Python Modules (d'après "Learning Python", de Mark Lutz)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Amorçage des compilateurs Un compilateur est un programme écrit dans un langage Peut-il être écrit dans le langage cible ? dans le langage source ? comment.
IFT 6800 Atelier en Technologies d’information
Module 2 : Préparation de l'analyse des performances du serveur
1. 2 Toolkits Il existe 4 principales boites à outils (toolkits) graphiques : –Xt / Motif –Gtk –Windows –Qt Seul certaines fonctionnent sur toutes les.
Standard Template Library
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Une introduction à Java
La librairie assert.h.
Programmer en langage c
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
La notion de type revisitée en POO
ALGORITHMIQUE ET PROGRAMMATION C
Argc et argv Utilisation des paramètres de la ligne de commande.
Autres éléments du langage
Créer des packages.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Master 1 ère année Sécurité des Systèmes Informatique 1 Gestion de modules  Un module est un morceau de code qui peut être chargé à la volée dans le noyau.
Programmation Système et Réseau
Novembre 2014J.Callot L.Piedfort1 TP1 Enoncé. novembre 2014J.Callot L.Piedfort2 Objectifs Générer un environnement de travail avec Code Warrior Prendre.
Les types composés Les enregistrements.
Les surcharges d'opérateurs
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
ISBN Chapitre 10 L'implémentation des sous- programmes.
8PRO100 Éléments de programmation Les pointeurs de caractères.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
UE MAREP Cours 12 : Révisions
Le Langage C MIAGE 2. Détails techniques Moniteur: Vincent Barreaud Responsable: Laurent.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Exemple d’utilisation de l’outil de profilage prof La commande prof de Unix.
1.1: notions de bases de l’informatique
Automne 2002 Martin Dubois Programmation système IFT Semaine 02 Retour sur la semaine 01 Les outils de développement logiciel Les outils que nous.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

Programmation Système et Réseau (sous Linux) T. KOUKI tarkou2001@yahoo.fr

Plan du module Chapitre 0 : Rappels et outils de développement. Chapitre 1 : La gestion des processus. Chapitre 2 : La gestion des signaux. Chapitre 3 : La gestion des entrées/sorties. Chapitre 4 : Programmation réseau avec les sockets.

Chapitre 0: Rappels et outils de développement. Programme et arguments. La commande gcc et ses principales options. Création des librairies ou bibliothèques. Utilitaires intéressants: strip, nm, strace, …

Programme & arguments int main(int argc, char **argv, char **arge) argc : argument count : Compte le nombre d'arguments passés au programme à l'exécution. argv : argument variable : Tableau de chaînes de caractères : Contient la liste des paramètres passés au programme à l'exécution. arge : argument environment : Tableau de chaînes de caractères : Contient l'environnement de travail de l'user. Exemple : Écrire un programme qui calcule et affiche le factoriel d'un entier passé comme paramètres.

La commande gcc et ses principales options gcc: Gnu C Collection : Collection C de GNU Par défaut : gcc génère un binaire exécutable a.out. Accepte plusieurs options; à titre d'exemple : -g  Ne pas effacer les informations de débogage. -c  Compiler uniquement. -o  Output : Générer l'exécutable. -E  S'arrêter après le prétraitement (pas de compilation) -S  S'arrêter après la compilation (pas d'assemblage) -Wall  Afficher tous les messages d'avertissement.

Création de bibliothèques statiques Extraire le code de la fonction et le recopier dans le binaire exécutable  Chargement direct en mémoire du programme à exécuter. Les bibliothèques correspondantes sont construites avec l'utilitaire ar et ont .a comme extension.  Le code de la fonction est chargé en mémoire centrale autant de fois qu'il y a de processus qui l'utilisent. Les applications construites sont figées.  Si la bibliothèque est modifiée  les applications déjà construites utiliseront toujours l'ancienne version.

Création de bibliothèques statiques (suite) Compile: gcc -Wall -c ctest1.c ctest2.c Créer la bibliothèque "libctest.a": $ar -cvq libctest.a ctest1.o ctest2.o Lister les fichiers contenus dans la bibliothèque $ar -t libctest.a Lier avec la bibliothèque:  $gcc -o executable-name prog.c libctest.a  $gcc -o executable-name prog.c -L/path/to/library-directory -lctest

Création de bibliothèques statiques (suite) ctest1.c void ctest1(int *i) { *i=100; } void ctest2(int *i) { *i=90; }

Création de bibliothèques statiques (suite) $vi prog.c #include <stdio.h> void ctest1(int *); void ctest2(int *); int main() { int x; ctest1(&x); printf("Valx=%d\n",x); return 0; } $

Création de bibliothèques statiques (suite) Remarque. Les bibliothèques ".a" sont conceptuellement les mêmes que les bibliothèques statiques ".lib" du Visual C++ (ou du d'un compilateur C classique sous DOS/Windows)

Création de bibliothèques dynamiques Motivation : ? Comment générer un shared object: (Dynamically linked object library file.) Créer le programme objet. Créer la bibliothèque. Optionnellement: Créer une version par défaut en utilisant un lien symbolique.

Création de bibliothèques dynamiques (suite) gcc -fPIC -c objfile1.c gcc -fPIC -c objfile2.c gcc -fPIC -c objfile3.c gcc -shared -o libmylib.so objfile1.o objfile2.o objfile3.o gcc -o foo -L. -lmylib foo.c

Commandes utiles strip : Éliminer les symboles des fichiers objets. nm : Afficher la table des symboles. Principaux symboles (man nm) strace : Ensemble d'appels système + Ensemble des signaux reçus. gprof : Détailler combien de temps processeur dure chaque fonction et combien de fois elle a été appelée (profil plat) ainsi que le nombre de fois où elle a été appelée par différentes fonctions (graphe d'appels)  Fonctions prenant la majorité du temps processeur  les optimiser.

Commandes utiles (suite) gdb: gnu debugger : Outil de mise au point de programmes. Intègre pas mal de fonctionnalités : notamment l'exécution étape par étape, visualisation du contenu des variables, … $ man gdb Commandes intéressantes : (voir document joint)