How does picoJava-II interact with the JVM and OS?

I have a problem understanding how a system based on picoJava-II (picoJava, respectively) works in detail. I think it's easy to answer/confirm for someone who has already worked with picoJava.

Let's assume a typical systems which consists of the picoJava-II core (embedded in hardware of course), an OS, a VM and a java application:

Let's begin: :-) The JVM and OS are written in C (or C++) and compiled to java (extended) bytecode with a C++2Bytecode compiler (e.g. Metaware). Is this right so far?

If the java application wants to create a new object the VM allocates memory from the OS (how does it call the OS? Via an extended bytecode?). The OS then calls an extended bytecode instruction which is trapped by picoJava who jumps to and executes the adequate subroutine. Is this right so far? (To which software does the subroutines of the extended bytecode belong to?)

If you can just confirm this or correct me, it would give me great pleasure. :-)