Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF1533  Gr. 01
Titre : Linux : concepts et programmation système
Session : Été 2014  Horaire et local
Professeur : Touati, Hédi
1. Description du cours paraissant à l'annuaire :

Objectifs

Permettre à l'étudiante, l'étudiant de maîtriser par la pratique le système d'exploitation Linux, des concepts de base à la programmation système.

Contenu

Installation et administration Linux. Interface utilisateur. Structure et services du système d'exploitation Linux. Système de gestion de fichiers. Shell et noyau. Les appels système. Filtres et tubes. Les expressions régulières. Construction de scripts. Sémaphores. Processus et traitement concurrentiel. Les fils de contrôle de Posix.
2. Objectifs spécifiques du cours :
A la fin de ce cours, l'étudiant(e) doit être en mesure de bien utiliser une station de travail Linux
3. Stratégies pédagogiques :
Cours magistral ; exercices de cours et laboratoires
4. Heures de disponibilité ou modalités pour rendez-vous :
Sur rendez-vous.

Demande de rendez-vous par courriel : Hedi.touati@uqo.ca

5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1    Introduction, historique & philosophie
  • Présentation du syllabus
  • Introduction : de Unix à Linux
05 mai 2014 
2    Survol pratique & familiarisation :
  • Compte utilisateur et connexion
  • Systèmes de fichiers
  • Interpréteur de commandes
  • Les fichiers : arborescence de répertoires, répertoires généraux, chemin d'accès à un fichier
  • Manipulation des fichiers
  • Visualisation/Édition des fichiers
  • Liens symboliques et physiques
  • Les permissions : propriétaire/membres du groupe/autres utilisateurs

Laboratoire 1 : Linux Ubuntu installation - Le 8 mai 2014

07 mai 2014 
3    Interpréteur de commandes : Shell
  • Interpréteur de commandes : le shell
  • Ligne de commandes, commandes multiples, groupe de commandes, redirection des entrées/sorties
  • vi: un éditeur en ligne!
  • Redirection des erreurs
12 mai 2014 
4    Interpréteur de commandes (suite)
  • Exécution conditionnelle
  • Les tubes de communications : les pipes
  • Les variables : variables locales en C shell, variables d'environnement
  • Les substitutions, les alias, les tableaux
  • Laboratoire 2 : Linux installation et navigation dans le système de fichiers - 15 mai 2014

14 mai 2014 
5    Férié - Journée nationale des Patriotes 19 mai 2014 
6    Outils Linux de base
  • Méta caractères
  • Expressions régulières
  • Commandes et filtres : Pipe
  • Grep : recherche de motifs dans un fichier
  • Find : recherche dans le système de fichiers
21 mai 2014 
7    La programmation en Shell
  • Introduction
  • Déclaration et utilisation des variables
  • Les instructions de programmations
  • Les structures de contrôle : boucles et tests conditionnels
26 mai 2014 
8    Pratique des scripts
  • Utilisation des utilitaires système
  • Appels aux fonctions système
  • Gestion des signaux

Laboratoire 3 : Le Shell et ses variables et le méta caractère - Le 29 mai 2014

28 mai 2014 
9    Examen de mi-session 02 juin 2014 
10    Outils et Interfaces
  • Linux et le C
    • Appels système, bibliothèques standards, Interface shell
    • Accès aux arguments de la commande, accès à l'environnement shell, code de retour
    • Lancement d'une commande shell
    • Les entrées-sorties, contrôle des entrées-sorties, lecture/écriture dans un fichier
  • Édition, programmation
    • La compilation et Make : format d'une règle, exemple de Makelife, macros dans un makefile
    • Source code control system
    • Archivage et compression de fichiers : tar et gzip

    Laboratoire 4 : Programmation avec le Shell - Le 5 juin 2014

04 juin 2014 
11    Programmation multithread
  • Traitement concurrentiel
  • Threads (fils d'exécution) et processus
  • Threads utilisateurs et threads noyaux
  • LinuxThreads
  • Interblocages et race conditions : Sémaphores
09 juin 2014 
12    Pratique de la configuration d'une machine Linux
  • Division de l'espace disque en partitions : pourquoi
  • Mount
    • Monter une disquette, un cd ou une clé USB
    • Monter une autre partition Linux
  • Fichier/etc/fstab/pour les automount
  • Les différents types de systèmes de fichiers
  • Faire le partitionnement
    • Fdisk
    • Parted
  • Configuration de l'environnement graphique (Desktop Environment)
  • Aspects réseaux : Réseau TCP/IP,fichiers de configuration réseau
  • Configurations des serveurs : NFS, FTP, WEB
  • Commandes réseaux
  • Laboratoire 5 : Pratique de l'administration du système et automatisations des tâches grâce aux scripts - Le 12 juin 2014

11 juin 2014 
13    Pratique de l'administration d'une machine Linux
  • Gestion des processus
  • Gestion des utilisateurs
  • Gestion des tâches différées (cron job)
  • Gestion de la sécurité
16 juin 2014 
14    Révision et exercices 18 juin 2014 
15    Examen final 23 juin 2014 
6. Évaluation du cours :
  • 30% Examen Intra
  • 40% Examen Final
  • 30% Laboratoires

L'étudiant doit obtenir la moyenne de 35/70 dans les examens pour que la note des laboratoires soit prise en compte.

7. Politiques départementales et institutionnelles :
8. Principales références :
  • William Stallings, Operating systems, Prentice Hall, 6e éd, 2009
  • Neil Matthew, Richard Stones, Beginning Linux programming, Wrox, 4e edition, 2008
  • Claudia Salzberg Rodriguez, Gordon Fischer, Steven Smolski, The Linux Kernel Primer, Prentice Hall, 2005
  • Robert Love, Linux Kernel development, Pearson, 2005
  • Armspach, J.-P. LINUX : COURS ET EXERCICES CORRIGÉS DUNOD, 2e éd., 2004, 312 p.
9. Page Web du cours :
https://moodle.uqo.ca