[Oberon] Oberon V4 on the Raspberry Pi?

Liam Proven lproven at gmail.com
Mon Jan 11 19:37:19 CET 2021

On Mon, 11 Jan 2021 at 18:24, Joerg <joerg.straube at iaeth.ch> wrote:
> Liam, Paul
> It's all a question of definition aka wording__

It's not really. You need to be very careful about marketing BS. :-)

> There two kind of hypervisors

Here's an example. These are really the same thing. VMware ESX uses a
very cut-down Linux kernel, and they got in trouble for not releasing
the sources to it, after which they cut it down even more. They now
claim it boots directly, but TBH, I don't believe them.

Xen needs a dom0 which is really much the same.

Hyper-V needs Windows, it's just that MS offers a freebie version of
Windows that does nothing else:

They _say_ they are bare-metal, but this is, in polite terms,
marketing, and in impolite terms, a lie.

IBM POWER servers and mainframes have hypervisors in their firmware,
AIUI, and don't need this. So did many Sun, HP, DEC etc. workstations.

> Let's have a closer look into Linux: KVM almost always comes with QEMU. As the name says: QEMU is a "quick emulator".
> - QEMU provides all the "virtualized" resources like network card, graphics card and so on.
> So, what you call "virtualized" in your earlier post will Linux provide with a SW named "quick emulator" __

This is why I referred to Connectix VirtualPC.

VPC followed Insignia SoftWindows in the Mac market. SoftWindows
didn't emulate a whole PC, just enough to run DOS and later Win3 and
Win9x. It couldn't run NT, because NT is an OS and doesn't run on DOS.
VPC emulated a CPU, chipset etc. and so could boot x86 OSes.
Source: I personally interviewed Connectix founder and chief scientist
Jonathan Garber in about 2002. He flew from the UK to talk to me.
Sadly the magazine that ran the article is defunct and it's gone from
the WWW now.

But even when your CPU can natively do virtualisation, you still need
something to create a virtual disk, virtual network cards, virtual
graphics cards etc.

For that, Hyper-V uses code from VirtualPC, even now. Its virtual hard
disk format is the same. As an example, last month, I extracted the
old Mac version's IBM PC DOS 2000 virtual hard disk and converted it
to VirtualBox format, as I described in a blog post:

KVM uses QEMU.

But QEMU sets up the virtual machine. It doesn't run the VM. KVM is a
Linux kernel module that does that, using Intel VT or AMD-V. Your code
does not execute in QEMU at all. It executes natively, on the metal,
in a hardware context managed by VT and created by the code in KVM.

You can in fact do without the QEMU stuff _if_ you run a custom OS
that _knows_ it is running in a VM and which does not contain hardware
drivers, and which talks to the host PC over a virtual in-memory
network. Kata "containers" are an example:

Before Intel added virtualisation to its CPU, there were 2 ways to run
"VMs" on x86.

Traditional x86 has 3 protection rings: ring 0 (supervisor code), ring
2 (user code, which can't directly access hardware), and ring 1 which
almost nothing used. OS/2 2 has some bits in Ring 1.

What Innovision did for VirtualBox in the early days, before Sun
bought it, was persuade Ring 0 code to run in Ring 1, so it could be
interrupted when it accessed the hardware. VMware used a simpler
method: it trapped Ring 0 code and ran it in a true software emulator.

VirtualPC copied that. Connectix saw that VMware was selling well on
Windows and thought "we can do that". So, they ported their PowerPC
x86 emulator to x86. The chap who wrote it said to me "you'll be
surprised how efficiently you can emulate x86 when you're running on
x86. It's like a one-to-one match". And grinned.

They worked out a way to trap ring 0 accesses and ran them in
software; ring 2 code ran on the metal.

I literally wrote a book on this stuff.


Liam Proven – Profile: https://about.me/liamproven
Email: lproven at cix.co.uk – gMail/gTalk/gHangouts: lproven at gmail.com
Twitter/Facebook/LinkedIn/Flickr: lproven – Skype: liamproven
UK: +44 7939-087884 – ČR (+ WhatsApp/Telegram/Signal): +420 702 829 053

More information about the Oberon mailing list