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