The Fox Project

FoxNet

The FoxNet is an implementation of the standard TCP/IP networking protocol stack using the Standard ML (SML) langauge. SML is a type-safe (no type casts allowed) programming language with garbage collection, a unique and advanced module system, and machine-independent semantics. The FoxNet is a user-space implementation of TCP/IP that is built in SML by composing modular protocol elements; each element independently implements one of the standard protocols. One specific combination of these elements implements the standard TCP/IP stack. Other combinations are also possible and can be used to easily and conveniently build custom, non-standard networking stacks.

The following paper describes in detail the final design and implementation of the FoxNet. A more complete bibliography is also available.

A Network Protocol Stack in Standard ML Edoardo Biagioni, Robert Harper, and Peter Lee.

Submitted for publication to Higher-Order and Symbolic Computation.

Substantial portions of the FoxNet 2.0 release have been updated to reflect the Revised (1997) Definition of Standard ML, to work with the latest versions of SML/NJ, and to work on machines running Linux. A snapshot of this work is available.

FoxNet 2.0 was released in September 1996.

FoxNet 1.0 was released in September 1994.

The Hello project at the University of Hawi'i has developed an operating system in Standard ML which includes a port of the FoxNet to run directly on a bare machine.

The FoxNet was implemented using the Standard ML of New Jersey compiler.

The x-kernel project at the University of Arizona has developed a framework for building and composing modular network protocol elements.

The Spin project at the University of Washington has developed an operating system in the type-safe, strongly-typed language Modula-3.

Philip Wadler maintains a page on Functional Programming in the Real World.

[ Home | Contact Information | Publications | Researchers ]

[ FoxNet | Typed Intermediate Languages | Proof-Carrying Code ]

[ Logical Frameworks | Staged Computation | Language Design ]

Fox_Project@cs.cmu.edu

http://www.cs.cmu.edu/~fox/