Subject: Re: Emulation pointer wanted
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Matt Thomas <>
List: tech-kern
Date: 09/14/1999 15:02:08
At 02:29 PM 9/14/99 , der Mouse wrote:
>I was pondering some of the "build lab" problems, and it occurred to me
>that while cross-compiling is nice, it would be nicer to run native
>compilers for the slow ports (such as sun3 and vax).  But of course
>you'd really like to run them on fast hardware.

I've had the exact same thoughts.  

>I was thinking of doing this as an emulation package in the kernel,
>having the kernel load the emulator executable somewhere "out of the
>way" (as if by an address-unspecified mmap) and then turn control over
>to it after loading the executable itself "normally".  Then you could
>use, say, the VAX native toolchain, building VAX native executables,
>but running on some killer Alpha or something, far faster than a real
>VAX.  Of course, the emulation wouldn't be perfect; any kmem groveler,
>for example, is instant toast.  But it should be fairly straightforward
>to make it good enough to run the toolchain.

It should be done so that you can run nested emulations (Linux on i386 on

>This shouldn't be hard to do.  I believe I could build, say, a VAX
>emulator to run on a SPARC (I pick those simply because they are the
>two architectures I know best).  As I see it, there are three issues:
>(a) Emulating the instructions
>(b) Emulating failure modes

This includes writing out core's appropriate for the emulated

>(c) Emulating syscalls

This may also depend on the emulations.  However, maybe some
of the netbsd32 work may be useful.

>(d) Getting it started

I just got faster hardware instead.  (I'm still looking for a
DS5000/260 and a VS4000/96 :-)
Matt Thomas               Internet:
3am Software Foundry      WWW URL:
Cupertino, CA             Disclaimer: I avow all knowledge of this message