[rescue] Virtualizing under Solaris 10/SPARC

Jonathan C. Patschke jp at celestrion.net
Mon Sep 24 19:24:53 CDT 2007

On Mon, 24 Sep 2007, Devin Ganger wrote:

> Thanks to the listing at
> http://seattle.craigslist.org/see/sys/430983175.html I'm going to be
> picking up a 220R this evening; I'll finally have a decent box to run
> Solaris 10 on.


> What are my options for running virtual machines on this hardware?
> Ideally, I'd like to run a few virtual x86 machines and clear out some
> of the clutter of older PC hardware I've been running.

Virtualization does not work across architectures.  Essentially,
virtualization involves running a supervisor-mode program (ie: an
operating system) in a user-mode environment.  When the "guest" program
tries to do something it believes it can do but really can't (like
direct hardware access), it causes a fault, which the virtualization
software catches and fakes an answer to.  So, the guest may think it's
really frobbing some memory-mapped disk controller, but it's just
generating protection faults, which the virtualization software is
intercepting, processing, and returning by pretending it's that model
disk controller.  For things that are not I/O intensive, virtualization
runs at approximately hardware speed (because instructions inside the
guest are run directly on the real CPU).

What you need to do is -emulation-, where you have a program that
pretends to be an entire computer (not just the I/O bits and supervisor
side of the processor).  Emulation is much more processor-intensive, so
the performance is 5 - 10% hardware speed.

> I thought that VMWare would do it, but they appear to not support
> Solaris as a host operating system (let alone not supporting the SPARC
> platform).

VMware does virtualization with some degree of neat instruction
translation to speed things up further.  This is a very different
problem from whole-ISA emulation.

> Am I stuck here, or is there a way I can run a couple of x86 VMs?

You can use bochs or qemu, but performance won't be great.  On a
reasonably fast CPU (1.6GHz PowerPC 7447a), response in XP is barely
good enough for simple things like word processing and HTML editing, but
still quite painful for the impatient (like me).  A < 500MHz SPARC
processor will be next-day service for all but the tiniest workloads.  I
briefly used VirtualPC on a 867MHz Power Macintosh for OpenBSD
development; it wasn't a lot of fun, as just about any junk PC I could
find was faster.

If the software you're running on those PCs will build on Solaris, you'd
be better off using native software in zones than doing emulation.

Jonathan Patschke     )  "So far, 99% of illegal activity has been caused
Elgin, TX            (    by criminals."
USA                   )                                    --David Willis

More information about the rescue mailing list