École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Écrit par

dans

Master Professionnel en Informatique, option Génie Logiciel (MGL) › Master 1 › Master GL · S1 · UE5 — Environnement système et sécurité

Linux et programmation système

Code LPS4152 3 crédits CM 10h · TD 10h · TP 10h · TPE 30h Évaluation : CC + ET

👤 MOUSSA HABIBOULAYE — Doctorant en Informatique

Se connecter pour s'inscrire Créer un compte

2 leçon(s) · 1 quiz · 0 inscrit(s)

Présentation

Linux fait tourner l’essentiel des serveurs web, des plateformes cloud, des conteneurs Docker et une grande partie des systèmes embarqués. Pour un ingénieur génie logiciel qui déploie des API, administre un serveur d’application dans une banque ou un opérateur de Niamey, ou écrit des services performants, la maîtrise de Linux et de son interface de programmation système est indispensable. Ce cours présente l’architecture du système, l’usage avancé du shell et des scripts Bash, la gestion des fichiers, des utilisateurs et des droits, puis la programmation système en C selon la norme POSIX : création et contrôle de processus, signaux, tubes et autres mécanismes de communication inter-processus, threads et sockets. Les TP guidés se déroulent sur une distribution Debian ou Ubuntu (machine virtuelle ou WSL).

Objectifs d’apprentissage

  • Expliquer l’architecture de Linux (noyau, appels système, espace utilisateur, arborescence FHS).
  • Automatiser des tâches d’exploitation avec des scripts Bash robustes (variables, tests, boucles, tubes, codes de retour).
  • Gérer fichiers, utilisateurs, groupes et permissions en appliquant le principe du moindre privilège.
  • Programmer en C la création et la synchronisation de processus (fork, exec, wait) et la gestion des signaux.
  • Faire communiquer des processus et des threads (tubes, mémoire partagée, mutex, sockets TCP).

Prérequis

Langage C (pointeurs, structures, compilation avec gcc), notions de systèmes d’exploitation (processus, mémoire, fichiers), bases des réseaux TCP/IP.

Plan du cours

  1. Leçon 1 — Architecture de Linux, shell et scripts Bash
  2. Leçon 2 — Fichiers, utilisateurs, droits et administration de base
  3. Leçon 3 — Processus en C : fork, exec, wait et signaux
  4. Leçon 4 — Communication inter-processus, threads et sockets

Modalités d’évaluation

Volume horaire : 10 h de cours magistral, 10 h de travaux dirigés, 10 h de travaux pratiques (30 h en présentiel) et 30 h de travail personnel (TPE), soit 60 h pour 3 crédits. Évaluation : contrôle continu (comptes rendus de TP guidés, scripts et programmes rendus) et examen terminal écrit (commandes, lecture de code C système, questions de cours).

Bibliographie

  • Michael Kerrisk, The Linux Programming Interface, No Starch Press.
  • W. Richard Stevens, Stephen A. Rago, Advanced Programming in the UNIX Environment, Addison-Wesley.
  • Christophe Blaess, Développement système sous Linux, Eyrolles.
  • Andrew S. Tanenbaum, Herbert Bos, Modern Operating Systems, Pearson.
  • Pages de manuel Linux (man7.org) et norme POSIX.1 (The Open Group, IEEE Std 1003.1).

Évaluation globale de la matière

Connectez-vous pour suivre votre progression.

Programme

  1. 🔒 Leçon 3 — Processus en C : fork, exec, wait et signaux · 90 min
  2. 🔒 Leçon 4 — Communication inter-processus, threads et sockets · 90 min
  3. 🔒 Quiz — Linux et programmation système · quiz

Évaluation globale de la matière

Connectez-vous pour suivre votre progression.