Another EROS milestone

Jonathan S. Shapiro shap@eros.cis.upenn.edu
Thu, 7 Nov 1996 15:24:52 -0500


	The eros-announce list receives about one mailing every two
	months.  We anticipate that the next mailing will announce the
	availability of a very early alpha release.

	Requests for addition or removal should be send to

		eros-announce-request@eros.cis.upenn.edu

Since last we left our saga:

THANKS

The EROS effort has received a donation from Tandem of a MIPS
R4400-based machine.  We expect to start a 64-bit RISC port in a few
months.

FORTHCOMING

We are planning to do an early-access release (I won't even call it an
"alpha" release) by mid-April.  The principle goal of this release is
to allow others to reproduce our experiments and examine how the
system is constructed.  This release will provide:

	1. Real-time scheduling

	2. Diskless operation (while we have an early IDE driver
	   working, it seems unlikely that checkpointing will make it
	   into this release).  This release *is* suitable for
	   embedding.

	3. The core security architecture.

	4. TCP/IP support for a very limited number of network
	   interface cards.

We *hope* to include a source-level UNIX compatibility environment,
but that may get deferred.

This release will cross-build from linux.  Until we have a working
checkpoint mechanism, there's no point to doing a native build.

NATIVE-CONSTRUCTED DOMAINS

EROS has hit a major milestone.  Until yesterday, all of our running
programs have been crafted on linux and a cross-tool has been used to
generate the running image.

Yesterday, we crafted the first new domain from within the EROS system
itself.  Our test involved successfully running five domains in
collaboration:

        Domain		Purpose (role)
        ------		--------------
	DomCreTest	The test shell

	DCC		a primordial domain, the grandfather of most domains

	Space Bank	the disk space allocator

        Domain Creator	fabricated by DCC, a domain creator fabricates
			"unpopulated" domains

	Hello		A domain that says "hello world" (running this
			is the goal of the test).

The test consists of:

	DomCreTest calls DCC to obtain a new domain creator
		DCC buys space from the space bank
		DCC fabricates a new domain creator from this space
		DCC returns an "entry capability" to the new domain
		  creator to the test shell 

	DomCreTest calls the new domain creator to obtain an
	  unpopulated domain
		The domain creator buys space from the space bank
		The domain creator fabricates a new domain from this space
		The domain creator returns a "domain capability" to
		  the new domain to the test shell

	DomCreTest installs the "hello world" program segment, which
	  was built under linux.

	DomCreTest initializes the startup registers of the hello
	  making it callable

	DomCreTest calls the hello domain

		The hello domain prints "hello from hello" and returns

	DomCreTest exits
        
This test is significant for two reasons:

1. In order for this test to succeed, a great part of the kernel code
must be working correctly:

	Simple and short-circuit segments
	The domain control interface
	The IPC mechanism
	The pagein mechanism (object fault-in)
	All of the state caching architecture.

2. We have built a program using the essential mechanisms of the EROS
security model.  While the rest is not simple, it is straightforward.


Regards



Jonathan