Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Dec 1997 02:03:40 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        jamil@acroal.com (J. Weatherbee - Senior Systems Architect)
Cc:        tlambert@primenet.com, hackers@freebsd.org
Subject:   Re: OS Ports (The Terry Lambert Challenge, Part II)
Message-ID:  <199712120203.TAA05412@usr02.primenet.com>
In-Reply-To: <Pine.BSF.3.96.971210164925.26293A-100000@acroal.com> from "J. Weatherbee - Senior Systems Architect" at Dec 10, 97 04:54:20 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Ok, terry I'll make you a deal.  Show me some processor that has virtual
> memory constructs that are not ridiculous (like intels), and if you write
> the code for real<->virtual hardware (i.e. console, disk, etc.)
> I will code the virtual instruction set.  A motorola product would be
> prefferred because getting detailed manuals from them is painless (and
> usually free).

I'm more interested in running Sun3, HP345 (I have one), and Amiga
SunOS/HPUX/SVR4/NetBSD/OpenBSD binaries under x86 FreeBSD.

There is currently someone working on being able to run MIPS R3000
MIPS OS and NetBSD binaries on FreeBSD.

I think it's much less interesting to try and build a virtual machine
in it's entirety.

The current approach being taken is to emulate the processor to run
native instructions, and convert the traps into native system calls
in and out.

For example, MIPS code to do a statically linked:

main()
{
	write( 1, "hello world!\n", 13);
}

is built on a NetBSD/MIPS box, and the code is mapped into a virtual
address data space in a SPIM binary.

When the SPIM binary is asked to execute the trap call after pushing
the stack, it enulates the trap call by converting it into a NetBSD
native system call (this saves converting the call arguments in user
space in each emulator, vs. in kernel space using the existing NetBSD
execution class glue code).

This is what I was talking about.

The "deal" you have is interesting, but it's tantamount to you
wanting to write the 68k processor from Executor while I write all
of the Apple Mac hardware and Quickdraw stuff (8-)), so it's not a
deal I'm willing to commit to.

I will work with you if you want to help me make HP345 binaries from
NetBSD run on x86 FreeBSD.  The HP345 binaries for NetBSD are the
same ones for the Amiga, Sun, and Macintosh NetBSD, so this would
cover a*lot* of binary compatability.  Besides, they are easy for me
to come by.  8-).

I'd be willing to help you with Sun3/SunOS, HP345/HPUX, and Mac2/AUX
binary emulation as well, but I have less ability to compile for any
but the HP345, since that's the only one I own (I have an Amiga, but
it only has a 68010 and an old SVR3.2 port without PMMU; it can run
NCR Tower 16 binaries, but that's not a growth industry).

So we probably are not talking about solving the same problems.  8-(.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712120203.TAA05412>