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 : Automne 2006   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 :
 
5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1    Introduction, historique & philosophie
  • Présentation du syllabus
  • De Unix à Linux : Histoire, Concept Open Source, arbre généalogique et versions commerciales
07 sept. 2006 
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
14 sept. 2006 
3    Interpréteur de commandes
  • 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
  • Exécution conditionnelle
21 sept. 2006 
4    Interpréteur de commandes (suite)
  • Connecter des commandes : les pipes
  • Les variables : variables locales en C shell, variables d'environnement
  • Les substitutions, substitution de commandes
  • Les alias
  • Les tableaux
28 sept. 2006 
5    Commandes et filtres
  • Méta caractères
  • Commandes et filtres, filtres simples, expressions régulières
  • Syntaxe shell, exemple de la syntaxe shell: recherche de fichiers
  • Expressions régulières de commandes, exemple: recherche de motifs dans un fichier grep
05 oct. 2006 
6    Semaine d'études 12 oct. 2006 
7    Les scripts Shell
  • Introduction
  • Déclaration et utilisation des variables
  • Boucles et tests conditionnels
19 oct. 2006 
8    Examen de mi-session 26 oct. 2006 
9    Pratique des scripts
  • Utilisation des fonctions système
  • Gestion des signaux
  • Scripts d'installation
02 nov. 2006 
10    Outils et Interfaces
  • Linux et le C
  • Appels système, bibliothèques standard, 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
  • SCCS : source code control system
  • Opérations de base, terminologie, création de fichiers SCCS et récupérer les fichiers pour la compilation
  • SCCS et make
  • Compression de fichiers par compress et gzip
  • Encryption de fichiers binaires uuencode
  • Manipulation de fichiers archives tar
09 nov. 2006 
11    Programmation multithread
  • Traitement concurrentiel
  • Threads (fils d'éxécution) et processus
  • Threads utilisateurs et threads noyaux
  • LinuxThreads
  • Interblocages et race conditions : Sémaphores
16 nov. 2006 
12    Pratique de la configuration d'une machine Linux
  • Configuration de l'environnement graphique (Desktop Environment)
  • Aspects réseaux : Réseau TCP/IP, fichiers de configuratiosn réseau
  • Configurations des serveurs : NFS, FTP, WEB
  • Commandes réseaux
23 nov. 2006 
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é
30 nov. 2006 
14    Révision et exercices 07 déc. 2006 
15    Examen final 14 déc. 2006 
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 :
Armspach, J.-P. LINUX : COURS ET EXERCICES CORRIGÉS DUNOD, 2e éd., 2004, 312 p.
9. Page Web du cours :
http://w3.uqo.ca/touati/inf1533