CzAN Read more...

"The heart of MorphOS is the Quark kernel. It's a small kernel,
with multitasking, multthreading, multiproc, memory protection,
virtual address space, resource tracking, etc. support.
Quark knows nothing about 68k or AmigaOS. It only runs native
ppc tasks/threads.

One of the tasks running under Quark is the Amiga emulation box.
This task basically contains an exec clone and a 68k emulator.
The main difference between the exec clone and the actual exec,
is that it handles ppc tasks instead of 68k ones. Those ppc tasks
can switch between running native ppc code, or 68k code via the
emulator.

AmigaOS executables are started with the emulator, and ELF ones
are run natively (but inside the emulation box). When a program
does a library call, the mode is switched automatically according
to the type of code the library contains. The calling program
doesn't know about it, and doesn't need to. This allows replacing
68k libraries by ppc ones. All programs benefit automatically from
such a replacement. A large part of the kickstart has been replaced
by ppc code that way, and eventually it will completely be replaced.

The programs and libraries on the http://www.morphos.de/fileslinks.php3
page contain native ppc code (*), that run inside the emulation box.

Currently, only a few system tasks run outside the emulation box.


The "two emulations" thing is a different story. MorphOS only contains
one emulator (**) at a time. But Ralph originally wrote two different
68k emulators. The first one was a "simple" compact one. The second
one was much bigger, but also faster. This is the one currently used.


(*) except of course the cross-compiler that is intended to run
on AmigaOS 68k and produce ppc-morphos code.
(**) until the JIT is ready :-)" - Emmanuel Lesueur