Ce cours propose une immersion dans la programmation système à l’aide du langage C++, en s’appuyant sur les fonctionnalités de bas niveau offertes par la bibliothèque standard C++.
Les étudiants y découvriront comment interagir directement avec le système d’exploitation pour développer des applications performantes, robustes et proches du matériel tout en gardant
une programmation un peu haut niveau proposé par le C++ moderne.
Au fil des séances, le cours aborde des notions fondamentales comme la gestion de fichiers et de répertoires, la programmation concurrente avec les threads (C++), la communication réseau via les sockets (TCP), ainsi que la compilation de projets complexes à l’aide de CMake.
Les notions abordées sont séquencées de la manière suivante :
Comprendre les concepts de bas niveau liés au système d’exploitation (processus, threads, fichiers, sockets).
Écrire des programmes C++ multithreadés avec synchronisation, gestion de mutex.
Communiquer entre processus via les sockets (TCP).
Gérer des fichiers et répertoires à bas niveau.
Utiliser CMake pour compiler et organiser des projets complexes.
Application directe du cours : programmation de petits programme mobilisant les connaissances acquises en cours.
Niveau débutant de C++.
.