Fabrice HARROUET - Ressources diverses

Quelques astuces.

Quelques programmes ``maison'' à vocation essentiellement pédagogique pour montrer la faisabilité de quelques points techniques.
Il ne s'agit en aucun cas d'outils utilisables dans un contexte ``sérieux'' ; à utiliser avec beaucoup de précautions...

MinGW-w64: use the GCC compiler suite under Windows

Voir ici

Color_cc: colorise compiler messages

This Python script is invoked as a compiler and colorises the messages generated by your system compiler. The main purpose is inspired from the no longer maintained colorgcc Perl script but this Python script goes a bit further.

Supported compilers are:
  gcc, g++, icc, icpc, cl.exe and icl.exe

For an explicit usage, simply do:
  color_cc.py mycompiler options ...

For an implicit usage under UNIX:
  ln -s color_cc.py mycompiler
You must ensure this symlink is found in your PATH before the true compiler executable, so that invoking
  mycompiler options ...
executes this Python script.

There is no implicit usage under Window$ since there are no symlinks :-(
A workaround consists in renaming this script as mycompiler.py.
Then invoking
  mycompiler.py options ...
will look for mycompiler.exe and colorise its messages.

The color_cc.py Python script is part of the TransProg library.

Dirdiff: compare directories

This Python script compares two directories and shows their differences.
These differences stand in:

Dirdiff - the script

The GpuElint library

A project that makes use of the OpenGL Compute-Shader technology.
See this page.

C# features

I use this set of examples as a kind of memo to test and keep track of a few things around C#.

msbuild (for .Net or Mono) is required to compile and run these examples.
Commands are:

The file named all.csproj provides common settings for all the projects as well as the machinery for the above commands, whereas each .csproj file is mush simpler and only contains specific settings for its associated example.

FiMoN : écoute d'un réseau

Fingers In the Middle Of the Nose ...
(man-in-the-middle with the fingers-in-the-nose)

Ce programme permet d'écouter le trafic de plusieurs postes derrière un switch par ARP-poisoning.

Il propose des facilités de redirection de trafic (notamment vers le programme Bounce) afin d'en faciliter la capture et d'expérimenter la démarche man-in-the-middle.

FiMoN - l'archive

Bounce : capture du trafic réseau

Ce programme permet de rediriger un trafic UDP/TCP/SSL vers sa destination en en capturant le contenu.

Il propose ainsi, conjointement avec le programme FiMoN, d'expérimenter la démarche man-in-the-middle.

Bounce - l'archive

IcmpTerm : contrôle d'un terminal via ICMP

Ce programme illustre de manière très simple comment on peut contrôler un terminal à l'intérieur d'un réseau depuis l'extérieur en se dissimulant dans un trafic ICMP.

IcmpTerm - le script

PoorOS : ébauche d'un système d'exploitation

Il s'agit d'un exemple sans prétention qui a juste pour ambition l'illustration de quelques points nécessaires à la réalisation d'un système d'exploitation (le choix du nom est d'ailleurs assez évocateur : Poor OS ;^)

Dans l'idée d'une démarche pédagogique, ce travail est présenté sous la forme d'un tutoriel en cinq étapes, la dernière étant un embryon de système multitâche écrit en C++ (avec un peu d'assembleur). Un fichier d'explications (rédigé à une heure tardive) est présent dans l'archive mais il n'est malheureusement pas complet ; des explications de vive voix sont encore nécessaires pour certains points délicats.

Les outils nécessaires pour faire fonctionner les exemples sont :

nb: bien que l'utilisation de l'assembleur soit ici indispensable, la vocation de ces exemples n'est pas l'enseignement de ce langage ni même des principes généraux de fonctionnement des processeurs (qui sont censés être connus).

PoorOS - l'archive