[Prev][Next][Index][Thread]

patches available to use SMLNJ on bare x86 PC hardware using oskit




In ftp://ftp.ai.mit.edu/pub/projects/express/mlos/ (aka
http://www.ai.mit.edu/projects/express/mlos/) I have made available some
preliminary code to run Standard ML of New Jersey (see their web site,
http://cm.bell-labs.com/cm/cs/what/smlnj/) in kernel mode on bare x86 PC
hardware, using the the OSKit.

This is based on SMLNJ working version 110.10 from Bell Labs
(ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.10/).

Please see the README.oskit file contained in the patches for more details.

This system is the basis of ongoing research at the MIT Express Project;
see our web page http://www.ai.mit.edu/projects/express/ for out of date
and uninformative lack of detail on what we're doing.


This is a very basic port, just stuck in the oskit and got it up and
running.  It suffers from the canonical trivial oskit port limitations:
busy wait on every block inside the oskit, including i/o such as the
console or ethernet (halt the whole machine until your read completes).  It
uses the oskit's disk device drivers, netbsd ffs filesystem, and simple
virtual memory with paging to disk, which all works.  The ethernet device
drivers, freebsd network stack and sockets are initialized and available
through the usual SML sockets entrypoints, but this is totally untested;
blocking on a socket will busy wait and wedge the machine until its packet
arrives.

The oskit port (for now) can use the bin.x86-unix bin files and heap
images, and provides all the Posix and Unix entrypoints from SML (though
many won't actually work).


Enjoy,

Roland McGrath		<roland@ai.mit.edu> / <roland@cs.utah.edu>
MIT Express Project &	http://www.ai.mit.edu/projects/express/
University of Utah	http://www.cs.utah.edu/projects/flux/
   Flux Project