240 likes | 361 Views
Démo I : INF3135. Construction et maintenance de logiciels Groupe : 10 Monitrice : Kerlyne Fostine Courriel : fostinekerlyne@yahoo.fr. Plan de la démonstration. Utilisation de UNIX sur Rayon1 Connexion à distance au serveur Fonctions UNIX de base
E N D
Démo I : INF3135 Construction et maintenance de logiciels Groupe : 10 Monitrice : Kerlyne Fostine Courriel : fostinekerlyne@yahoo.fr
Plan de la démonstration • Utilisation de UNIX sur Rayon1 • Connexion à distance au serveur • Fonctions UNIX de base • Utilisation de l’éditeur de texte xemacs • Introduction à la programmation C • Structure d’un programme C • Un simple programme C • Les différentes étapes de réalisation d’un programme C
Utilisation de Unix sur rayon1 • Lancer le système d’exploitation UNIX • Entrer le nom d’utilisateur :Code accès MS. (Exemple : de172300) • Entrer le mot de passe : 3 premières lettres du nom de famille en majuscule +NIP. (Exemple nom de famille Pierre, NIP =23432, Mot de passe : PIE23432 • Dans le menu Lancer, choisir ApplicationsUtilitaires Terminal
Connexion à distance à rayon1 • Connexion dans les autres laboratoires UQAM • Choisir le menu Tous les programmesInternetPutty ssh • Entrer l’adresse : rayon1.labunix.uqam.ca • Connexion ailleurs (Ex: à la maison) • Avec Linux, ouvrir un terminal et taper la commande ssh Adresse du serveur (Exemple : ssh rayon1.labunix.uqam.ca) Identification requise (Code MS, mot de passe) • Avec Windows • Télécharger le logiciel Putty ou ssh secure shell client à l’adresse : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html http://www.filewatcher.com/m/SSHSecureShellClient-3.2.9.exe.5517312.0.0.html • Installer le logiciel Putty ou le ssh client • Lancer Putty ou ssh client et entrer l’adresse : rayon1.labunix.uqam.ca • Identification requise (Code MS, mot de passe)
Fonctions UNIX de base • Changer mot de passe • passwd : Permet de changer le mot de passe. • Aide en ligne • man commande : Affiche sur l’écran l’entrée correspondant à la commande donnée du manuel en ligne. • man passwd • A taper q pour sortir de la page du manuel • Commande --help : Fournit une description plus ou moins succincte de la commande. • passwd --help
Fonctions UNIX de base (Suite) • Système de fichiers • Contenu d’un répertoire et attribut de fichier • ls référence : Fournit pour chaque référence donnée les références(répertoires, fichiers) qu’il contient. • ls –l référence : Listing d’un répertoire avec un format d’impression long • mv fichier_source fichier destination : déplace ou renomme un fichier • Script nom_fichier : Capture la sortie à l’écran et de la sauvegarder dans un fichier (exit pour sortir) • More fichier : Affiche un fichier écran par écran(more fichier1.txt) • commande | more : affiche la sortie de commande écran par écran (ls | more) • Grep mot_clé fichier : Recherche mot clé dans fichier • -i : Ne tient pas compte de la casse • -n indique les numéros de ligne • Manipulation des répertoires • pwd : visualise la référence absolue du répertoire de travail • mkdir référence : Crée un ou plusieurs répertoires vide • mkdir tp1 tp2 • cd référence : Changer de répertoire • rmdir référence : Supprimer les répertoires referencees
Fonctions UNIX de base (Suite) • Modification des attributs de fichiers • Chmod modification référence • Modification : [ugoa][+-=] • u : le propriétaire • G : le groupe propriétaire • O : les autres usagers • A : l’ensemble de tous les usagers (valeur par defaut) • R : en lecture • W : en écriture • X : en exécution • + : Pour autoriser • - : Pour interdire • = : Pour forcer les droits spécifies aux catégories données • Ex : chmod ug+r
Fonctions Unix de base (Suite) • Copie, renommage et suppression d’un fichier • cp référence destination : Copie un ou plusieurs fichiers de références données • ln : source destination : Renomme le fichier source en destination • rm référence : Supprime un ou plusieurs fichiers en références.
Fonctions unix de base (Suite) • Sortir du shell • Ctrl +D • exit • logout
Utilisation de l’éditeur de texte xemacs • Appel de l’éditeur • Xemacs à partir du terminal • Fichiers, lecture, écriture et sortie de l’éditeur • Ctrl+x+Ctrl+f : Permet d’ouvrir un fichier (nouveau ou existant) • Ctrl+x+i : Insère le contenu du fichier à l’emplacement du curseur dans le tampon courant • Ctrl+x+Ctrl+s : Sauve le tampon courant sous son nom courant • Ctrl+x+Ctrl+w : Sauve le tampon courant après l’avoir renommé • Ctrl+x+Ctrl+c : Termine la session d’édition avec demande de confirmation
Commandes de manipulation des tampons • Ctrl+x+b : Place le tampon spécifié dans la fenêtre courante • Ctrl+x+Ctrl+b : Crée une nouvelle fenêtre contenant la liste des tampons. • Ctrl+x+k : Abandonne l’édition du tampon courant. Si le tampon n’a pas été sauvegardé une confirmation sera nécessaire.
Déplacement du curseur et suppression de caractères • Ctrl+a : Vers le début de la ligne • Ctrl+e : Vers la fin de la ligne • Alt+> : Vers la fin du tampon • Alt +< : Vers le début du tampon • Alt+v : D’une page vers l’arrière • Ctrl+v : D’une page vers l’avant • Ctrl+d : Supprime le caractère sous le curseur • Ctrl+k : Supprime la partie de la ligne du curseur jusqu’à la fin. Sur une ligne vide, elle supprime la ligne.
Structure d’un programme C • Importation des bibliothèques • #include <mabiblio.h> • Déclaration des constantes • #define TAILLE 3 • Déclaration des structures de données • struct Personne{ • char *nom; • char *prenom; • char *adresse; • … • }; • Déclaration des prototypes des sous programmes (fonctions et procédures) • int fonct(int, float, double); • Définition des sous programmes • int fonct (int a, float b, double c){ • } • Définition de la fonction main • int main(){ • return 0; • } • Ou • int main(int n, char *arguments){ return 0;}
Un simple programme (bonjour.c) • #include <stdio.h> • int main() • { • printf(« Bonjour\n »); • return 0; • }
Les diverses étapes de la compilation et de l’execution d’un programme C • La Precompilation : Appel au preprocesseur (cpp) • Traitements des directives # • La compilation • Réalisation des module d’assembleur fichier d’extension s • Réalisation des modules objets : fichier d’extension o • L’édition de lien • Constitution d’un module binaire exécutable
Compilation du programme bonjour.c • Afficher le travail du preprocesseur • gcc –E bonjour.c (Aucun fichier créé) • Générer le module objet • gcc –c bonjour.c (Le fichier bonjour.o est créé) • Générer le module exécutable(salutation) à partir du module objet • Gcc –static bonjour.o –o salutation • Exécution du programme salutation à partir du terminal • salutation
La precompilation • Directives de precompilation • Définition des constantes avec #define • Les macros (#define) • Les fichiers d’inclusions (#include <biblio.h> • Les directives de compilation conditionnelle • #if expression • #ifdef identificateur • #ifndef identificateur • Option de precompilation avec gcc • -E :Appel du preprocesseur et envoie les résultats sur la sortie standard • -C : Le processeur ne supprime pas les commentaires comme il le fait par défaut • -P : Aucun marquage des lignes de contrôle n’est généré par le preprocesseur • -I répertoire : Les fichiers à inclure sont recherchés, si leur référence n’est pas absolue, prioritairement dans répertoire.
La precompilation(Suite) • Exercice • Que fournit le preprocesseur au contenu du fichier essai.c • /*Juste un essai pour voir ce que ca donne*/ • #define TAILLE 1000 • #define f(x, y) (x*y) • int tab(TAILLE); • n= f(tab[0]+tab[1], tab[TAILLE-1]+2); • #undef TAILLE • int tab2[TAILLE]; • Quels sont les résultats avec l’option –E, -E et –C, -E –C et –P.
Les options de compilation • -S : Génération d’un module assembleur(fichier d’extension s) • -O[n] : Demande l’appel de l’optimiseur. La valeur [n] correspond au niveau d’optimisation[0, 3], 1 par défaut. • -c : Production de code objet (fichier d’extension o) • -o référence : permet de nommer la cible de la compilation
Compilation(Suite) • Exercice • Écrire un programme en c qui affiche les arguments passés en paramètres au programme(main) • Compiler le programme pour générer du code assembleur et en l’optimisant le plus que possible • Compiler le module assembleur créé pour générer du module objet et nommer le fichier objet « papa » • Effacer les fichiers assembleur et le fichier papa généré du répertoire et faire les 2 compilations précédentes en une seule commande.
Les options d’édition de lien avec gcc • -static : Permet de produire un exécutable autonome • -shared : Permet d’utiliser l’édition de lien dynamique et non pas un exécutable autonome(Voir édition statique et dynamique) • -lnom : Permet d’ajouter la bibliothèque de nom(fichier d’extension a, sl ou so) • -Lreference : permet d’ajouter le répertoire désigné par la référence en tête de la liste des répertoires de recherches des bibliothèques.
Édition de lien – Édition statique • Édition Statique • Extraire le code de la fonction et le recopier dans le fichier binaire • Le chargement du programme en mémoire en vue de son exécution se réalise directement • Toutes les informations nécessaires à l’exécution sont dans le fichier binaire • Le code de cette fonction est chargé en mémoire centrale autant de fois qu’il y a de processus qui l’utilise • Les applications construites sont figées même si la bibliothèque est modifiée. Les applications déjà construites utilisent toujours l’ancienne version.
Édition de lien – Édition dynamique • Édition dynamique • Les bibliothèques de fonctions reliable dynamiquement sont appelées objets partagés(fichiers d’extension a, sl ou so) • Redéfinition des fonctions de l’éditeur de liens et du module de chargement des programmes en mémoires. • Permet d’économiser de l’espace disque et de l’espace mémoire • Permet de prendre en compte automatiquement les nouvelles versions des bibliothèques • Ralentit la phase de chargement du programme