Asmweb
Description
Asmweb est un petit serveur web écrit en assembleur juste pour montrer que c'est possible de le faire en un nombre raisonnable de lignes de code. Bien entendu, le support de PHP, SSL et d'autres technologies sympas n'est pas prévu pour le moment... :-)
Utilité
Oui, ce programme a un interêt très limité :-) Néanmoins, il peut servir comme base pour apprendre ou enseigner des bases d'assembleur (cependant le code est actuellement pas très propre) ou le fonctionnement des appels systèmes du point de vue des programmes tournant en espace utilisateur.
Fonctionnement
Asmweb est entièrement écrit en assembleur x86 (syntaxe Gnu Assembler), n'utilise aucune bibliothèque extérieure et fonctionne uniquement sous Linux (n'importe quelle distribution utilisant un noyau 2.4 ou plus devrait fonctionner). Le code source documenté fait environ 300 lignes et le binaire pèse moins de 1 600 octets.
Pour le moment, il ne traite qu'une seule connexion à la fois et sa transformation en serveurs capable de traiter plusieurs connexions en même temps est laissée en exercice au lecteur (indice : juste après l'appel système accept, appelez fork, traitez la connexion dans le processus fils et revenez à l'accept dans le processus père).
Précautions d'utilisation
Attention : Par défaut, asmweb écoute le port 8081 sur toutes les interfaces réseau. La racine du serveur web est la racine du système de fichier. Donc soyez extrèmement prudents puisque n'importe qui pourra avoir accès au contenu de votre système en lecture. Je vous conseille de l'utiliser avec la commande chroot.