Clone en C++ du moniteur systeme GKrellM : modules (CPU, RAM, reseau, horloge...) empilables, avec double affichage nCurses (texte) et SFML (graphique).
Telecharger & tester
make puis ./MyGKrellm --ncurses ou ./MyGKrellm --sfml (double mode texte/graphique)
Rush 3 (B-PDG-300, "GNU Krell Monitors") demande de creer, en C++, un clone de GKrellM - le moniteur systeme empilant des modules (CPU, RAM, disque, reseau, horloge...) verticalement les uns sur les autres. Le sujet est volontairement le moins restrictif des trois rushes : l'architecture logicielle compte autant que les fonctionnalites.
Deux interfaces sont imposees comme fondation : Krell::IModule (comportement d'un module du moniteur) et Krell::IDisplay (un mode d'affichage), permettant de faire cohabiter plusieurs implementations interchangeables sans dependre de leur type concret - la modularite du programme repose entierement sur ce decouplage.
Le programme doit fonctionner en mode texte (affichage via la bibliotheque nCurses) et en mode graphique (affichage via SFML), avec les memes fonctionnalites dans les deux cas. Le developpement se fait en 3 etapes obligatoires et croissantes en difficulte : (1) le noyau orchestrant modules et affichages, (2) les modules hostname/OS-kernel/date-heure avec l'affichage nCurses, (3) les modules CPU et RAM avec l'affichage SFML.
Contraintes C++ specifiques : les fonctions *alloc, free, *printf, open, fopen ainsi que le mot-cle using namespace sont interdits. En bonus, le sujet suggere des modules supplementaires (reseau, batterie) et d'autres backends d'affichage (GTK, SDL2, Qt5), ainsi que des graphiques (histogrammes, courbes) plutot que du texte brut.
Sur le plan de la mise en oeuvre, la configuration des modules/affichages peut etre geree a la compilation (niveau debutant), en ligne de commande (intermediaire), ou de maniere entierement dynamique au runtime avec ajout/suppression/switch a la volee (niveau avance vise par le sujet).
Projet suivant
