Présentation de MoofTCP

MoofTCP constitue une implémentation de remplacement pour l’ancienne bibliothèque MacTCP, destinée aux Macintosh 68 k fonctionnant sous System 6.0.8 avec 4 Mo de RAM. Le projet se présente comme un drop‑in compatible : les programmes qui utilisent l’interface .IPP de MacTCP (TCP, UDP, ICMP echo) et le résolveur dnrp fonctionnent sans modification. L’installation se fait via un installateur qui déplace les fichiers MacTCP existants, installe MoofTCP et propose un bouton Remove capable de restaurer l’état initial, même après une interruption.

Architecture et contraintes mémoire

Le cœur du logiciel est une pile TCP/IP écrite en C portable, dépourvue d’appels malloc et d’état global. Cette conception élimine les fuites de mémoire et les blocages liés à la fragmentation, deux problèmes récurrents sur les machines à 4 Mo. Le code a été soumis à des tests de sanitizers et de fuzzers sur des environnements de bureau, garantissant une robustesse comparable à celle des piles modernes tout en restant compatible avec le processeur 68 k. Une variante « Lite » supprime le client DHCP, réduisant la consommation résidente d’environ 5 KB, ce qui représente une part non négligeable du budget mémoire disponible.

Compatibilité et fonctionnalités

MoofTCP implémente le pilote .IPP ainsi que le résolveur dnrp, assurant une compatibilité totale avec les applications existantes. Le panneau de contrôle intégré permet de choisir entre une adresse IP fixe ou le DHCP, ce dernier étant géré par un client léger intégré. Le système est MultiFinder‑aware : lorsqu’une application se ferme, les connexions ouvertes sont automatiquement libérées, évitant les ressources orphelines. Un outil de diagnostic, MoofDiag, enregistre les événements réseau en mémoire et facilite la génération de rapports de bugs. L’ensemble du paquet est distribué sous forme de fichiers .dsk, .hqx ou .sit, compatibles avec l’utilitaire StuffIt Lite 3.6.

Évaluation des performances et limites

Les concepteurs ont priorisé la latence pour les usages interactifs, comme les sessions telnet, tout en maintenant un débit suffisant pour des scénarios « quasi‑modernes ». L’absence de malloc réduit le temps de traitement des paquets, mais la vitesse reste liée aux capacités du matériel Ethernet fourni par le pilote .ENET0 (ex. BlueSCSI v2 Wi‑Fi avec DaynaPORT). MoofTCP ne fournit pas de pilote Ethernet propre ; il dépend donc d’un adaptateur compatible. Le projet a été testé sur un Mac Classic réel, System 6.0.8, 4 Mo, mais aucune donnée de benchmark chiffré n’est fournie. En l’absence de mesures précises, on ne peut quantifier l’amélioration de latence ou de débit par rapport à MacTCP, même si les concepteurs affirment que la pile ne consomme pas plus de mémoire résidente que l’original.